Как посмотреть входящие IP-адреса в Linux?

21

Мне интересно, что это за команда / утилита для просмотра в реальном времени входящих IP-адресов на мой сервер, в идеале вместе с портом и подключенным.

alfish
источник

Ответы:

25

использование 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

Источник pktstat код размещен на сайте Debian, либо вы можете получить его от SourceArchive.com

Майк Пеннингтон
источник
1
Удивительно. Именно то, что я искал. Это совершенно очевидно, но чтобы завершить ответ, вы можете добавить, что его можно установить просто с помощью «apt-get install pkstat».
Alfish
Кроме того, если вы получаете pktstat: pcap_lookupdev: no suitable device foundпри запуске этого, вам может потребоваться быть пользователем root.
Тим Мэлоун
10

Что касается отображения «purdy», я неравнодушен к инструменту под названием «iptraf», который будет делать то, что вы упомянули, а также для каждого интерфейса и для совокупности портов.

Для основных инструментов Linux верный netstat сделает свое дело ...

тонкий лед
источник
1
IPtraf - лучший инструмент, который я когда-либо видел с точки зрения удобства использования и функциональности - очевидно, вы все еще можете писать сценарии с помощью стандартных инструментов, таких как netstat и ngrep и tcpdump, но зачем вам изобретать велосипед :)
gyre
Для полноты, iftop похож на iptraf - приложение на основе ncurses, которое использует гистограммы, а не только цифры - для отображения использования полосы пропускания для каждого IP-адреса. С опцией -P вы также можете получить его для каждого порта.
Грейнольдс
7

А tcpdumpпокажет вам это; если вы просто хотите получить список IP-адресов, вы можете фильтровать пакеты SYN и выводить только IP-адрес источника. Что-то типа:

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

Получит ли вы список IP-адресов, в режиме реального времени. Вы также можете teeсделать это в файл и периодически делать для sort -uнего список уникальных IP-адресов, которые отправили вам соединения.

romble
источник
3

Вот как можно увидеть весь трафик, поступающий на порт 2222:

tcpdump -ni any port 2222
Basj
источник
0

Как только вы получите выходные данные одной из команд, упомянутых в других ответах, вы можете использовать инструмент «смотреть», чтобы иметь «в режиме реального времени». Например, «watch -n 5 ps» будет выполнять команду «ps» каждые 5 секунд (аргумент «-n»). Замените «ps» на интересующую вас команду, и вы получите «мониторинг». Или просто "тройник" в файле, как в другом предложении.

Перевозчик
источник