Jak zobaczyć przychodzące adresy IP w systemie Linux?

21

Zastanawiam się, jakie jest polecenie / narzędzie do wyświetlania w czasie rzeczywistym przychodzących adresów IP na mój serwer, najlepiej wraz z portem i połączeniem.

alfish
źródło

Odpowiedzi:

25

Posługiwać się pktstat -n

interface: eth0
bps

   bps    % desc
 162.3   0% arp
 286.5   0% llc 802.1d -> 802.1d
 544.3   1% tcp 172.16.1.5:22 <-> 172.16.1.95:8074
 34.0k  87% udp 172.16.1.1:514 <-> 172.16.1.5:514
 350.1   0% udp 172.16.1.5:24330 <-> 209.18.47.62:53
 329.4   0% udp 172.16.1.5:34870 <-> 209.18.47.62:53
 388.3   0% udp 172.16.1.5:4470 <-> 209.18.47.62:53
 407.4   1% udp 172.16.1.5:47008 <-> 209.18.47.62:53
 741.6   1% udp 172.16.1.5:53 <-> 172.16.1.74:43289
 663.6   1% udp 172.16.1.5:53 <-> 172.16.1.74:44589
 647.7   1% udp 172.16.1.5:53 <-> 172.16.1.74:58223
 128.9   0% udp 172.16.1.74:5353 <-> 224.0.0.251:5353
 160.7   0% udp6 fe80::21c:bfff:fecf:a798,5353 <-> ff02::fb,5353

Kod źródłowy pktstat jest utrzymywana na miejscu Debiana, lub można je dostać od SourceArchive.com

Mike Pennington
źródło
1
Niesamowity. Dokładnie tego szukałem. Jest to dość oczywiste, ale aby uzupełnić odpowiedź, możesz dodać, że można ją zainstalować po prostu przez „apt-get install pkstat”.
Alfish
Ponadto, jeśli dostaniesz pktstat: pcap_lookupdev: no suitable device foundpodczas uruchamiania, być może będziesz musiał być rootem.
Tim Malone
10

Jeśli chodzi o wyświetlanie „purdy”, jestem częściowo zwolennikiem narzędzia o nazwie „iptraf”, które zrobi to, o czym wspomniasz, a także dla interfejsu i dla agregacji portów.

W przypadku podstawowych narzędzi Linuksa sprawdzony netstat załatwi sprawę ...

cienki lód
źródło
1
Iptraf jest najlepszym narzędziem Widziałem pod względem użyteczności i funkcjonalności - oczywiście można nadal skrypt niektóre rzeczy za pomocą standardowych narzędzi, takich jak netstat i ngrep i tcpdump ale dlaczego chcesz wyważać otwartych drzwi :)
Gyre
Dla kompletności, iftop jest podobny do iptraf - aplikacji opartej na ncurses, która wykorzystuje wykresy słupkowe, a nie tylko liczby - do wyświetlania wykorzystania przepustowości dla każdego adresu IP. Z opcją -P można również pobrać na port.
gsreynolds
7

A tcpdumppokaże ci to; jeśli chcesz tylko listę adresów IP, możesz filtrować pakiety SYN i wyświetlać tylko źródłowy adres IP. Coś jak:

tcpdump -i eth0 -n 'tcp[tcpflags] & tcp-syn != 0 and not src and dst net localnet' | sed 's/^.*IP \([^ ]*) >.*$/\1/'

Otrzymałbym listę adresów IP w czasie rzeczywistym. Możesz to również teezrobić z plikiem i okresowo to zrobić sort -u, aby uzyskać listę unikalnych adresów IP, które wysłały połączenia w twoją stronę.

womble
źródło
3

Oto jak zobaczyć cały ruch przychodzący do portu 2222:

tcpdump -ni any port 2222
Basj
źródło
0

Gdy uzyskasz wynik jednego z poleceń wymienionych w innych odpowiedziach, możesz użyć narzędzia „obserwuj”, aby mieć „w czasie rzeczywistym”. Na przykład „watch -n 5 ps” wykona polecenie „ps” co 5 sekund (argument „-n”). Zastąp „ps” poleceniem zainteresowania, a otrzymasz „monitoring”. Lub po prostu „tee” w pliku, jak w innej sugestii.

Nośnik
źródło