Surveiller le nombre d'octets transférés vers / depuis l'adresse IP sur le port
19
Quelqu'un peut-il recommander un outil de ligne de commande Linux pour surveiller le nombre d'octets transférés entre le serveur local et une adresse IP / un port spécifié.
La commande tcpdump équivalente serait:
tcpdump -s 0 -i any -w mycapture.trc port 80 host google.com
qui génère:
46 packets captured
131 packets received by filter
0 packets dropped by kernel
J'aimerais quelque chose de similaire qui génère:
54 bytes out, 176 bytes in
J'aimerais qu'il fonctionne sur RHEL et qu'il soit gratuit / open-source. Ce serait bien s'il existait un outil qui me manquait aussi!
Vous pouvez utiliser iptables. Si vous ne l'utilisez pas déjà, vous pouvez utiliser une configuration Accepter ouverte, mais avoir une règle en place pour effectuer le comptage.
Par exemple, sur RHEL, votre /etc/sysconfig/iptablesfichier pourrait ressembler à:
Où 10.10.1.1:80 est l'hôte: port sur lequel vous souhaitez compter le trafic (vous ne pouvez pas utiliser de nom d'hôte). Vous pouvez ensuite vérifier le trafic compté avec la commande en iptables -nvxLtant que root.
Il est également tout à fait légal d'avoir une règle sans cible, uniquement à des fins de comptage, par exemple iptables -A INPUT -d 1.2.3.4 -p tcp --dport 3456. Cela ne fera rien au trafic, car il n'y a pas d'argument "-j", mais chaque paquet correspondant augmentera le nombre.
MadHatter prend en charge Monica
9
J'étais sur le point de suggérer Wireshark (car il s'agit de nombreuses fonctionnalités de « conversation »), mais ce n'est pas un outil en ligne de commande. Vous pouvez cependant essayer tshark , qui est un outil d’analyseur de ligne de commande qui se ferme à Wirehark. La sortie devrait avoir (quelque peu) ce que vous recherchez (exemple ci-dessous):
Il existe également un outil appelé «iftop» qui affiche l'utilisation de la bande passante sur une interface par hôte. Je pense que iftop peut faire ce que vous avez décrit mais normalement son interface est quelque chose comme 'top'.
Donc, pour votre exemple, je pense que vous pouvez simplement créer un fichier de configuration pour fournir votre code de filtre.
Voici donc mon code de filtre dans mon fichier de configuration.
$ cat /tmp/conf
filter-code: port http and host google.com
Ensuite, j'ai exécuté ce qui suit pour voir le réseau traffice.
$ sudo iftop -c /tmp/conf
Je ne sais pas si c'est la meilleure option mais certainement une façon d'atteindre ce dont vous avez besoin. HTH.
Vous pouvez également spécifier le filtre sur la ligne de commande sans utiliser de fichier de configuration:iftop -f 'port 80 and host google.com'
gioele
J'aimerai le nombre total d'octets transférés, pas la bande passante. Pouvez-vous le iftopmontrer?
arainone
3
Vous pouvez également essayer "iptraf", c'est léger et simple. Il peut filtrer par port et vous donne des informations de haut niveau, aucune donnée de charge utile, etc.
J'étais sur le point de suggérer Wireshark (car il s'agit de nombreuses fonctionnalités de « conversation »), mais ce n'est pas un outil en ligne de commande. Vous pouvez cependant essayer tshark , qui est un outil d’analyseur de ligne de commande qui se ferme à Wirehark. La sortie devrait avoir (quelque peu) ce que vous recherchez (exemple ci-dessous):
Résultat:
la source
Il existe également un outil appelé «iftop» qui affiche l'utilisation de la bande passante sur une interface par hôte. Je pense que iftop peut faire ce que vous avez décrit mais normalement son interface est quelque chose comme 'top'.
Donc, pour votre exemple, je pense que vous pouvez simplement créer un fichier de configuration pour fournir votre code de filtre.
Voici donc mon code de filtre dans mon fichier de configuration.
Ensuite, j'ai exécuté ce qui suit pour voir le réseau traffice.
Je ne sais pas si c'est la meilleure option mais certainement une façon d'atteindre ce dont vous avez besoin. HTH.
la source
iftop -f 'port 80 and host google.com'
iftop
montrer?Vous pouvez également essayer "iptraf", c'est léger et simple. Il peut filtrer par port et vous donne des informations de haut niveau, aucune donnée de charge utile, etc.
la source