J'utilise cette simple commande pour surveiller les connexions (pour faire face à certaines attaques DoS récentes) sur mon serveur Debian:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Comment puis-je l'exécuter en continu? Ainsi, il se rafraîchira une fois par minute (ou toute quantité de temps donnée, bien sûr). J'ai essayé de regarder:
watch -n 30 "netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n"
Mais cela a changé la sortie de la liste Nice avec nombre de connexions en quelque chose comme ceci:
1 tcp 0 10015 [LOCAL IP]
...
1 Proto Recv-Q Send-Q Local Address Foreign Address State
1 Active Internet connections (w/o servers)
L'IP externe n'est donc pas affichée. Y a-t-il quelque chose que j'ai manqué?
Voici à quoi ressemble la sortie d'origine:
2 [IP ADDRESS]
4 [IP ADDRESS]
4 [IP ADDRESS]
4 [IP ADDRESS]
7 [IP ADDRESS]
16 [IP ADDRESS]
71 [IP ADDRESS]
Et quand je dis [LOCAL IP]
Je veux dire l'IP de ma machine.
Quand je l'exécute avec -c
il gèle juste.
netstat -c
peut vous aider si je n'ai pas mal compris votre problème. -c signifie --continuous.
EDIT: c'est parti:
watch -n 30 "netstat -ntu | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"
J'ai ajouté un\avant $.
La recherche de commande pour macos se termine ici. Pour les utilisateurs Mac qui souhaitent voir les connexions en temps réel d'un processus:
nettop -p 60683
Vous pouvez également restreindre le type d'interface, comme le wifi ou le filaire ...
nettop -t wifi -n -p 60683
Exécutez simplement une boucle while qui dort pendant 60 secondes
[root@Host] $ while true
> do
> netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
> sleep 60
> done
Cela vous donnera la même sortie toutes les 60 secondes