Bagaimana cara melihat IP yang masuk di Linux?

21

Saya bertanya-tanya apa perintah / utilitas untuk memiliki tampilan real-time dari IP yang masuk ke server saya, idealnya bersama dengan port dan terhubung.

alfish
sumber

Jawaban:

25

Menggunakan 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

The kode sumber pktstat di-host di situs Debian, atau Anda bisa mendapatkannya dari SourceArchive.com

Mike Pennington
sumber
1
Luar biasa. Persis apa yang saya cari. Ini cukup jelas tetapi untuk menyelesaikan jawaban Anda mungkin ingin menambahkan bahwa itu dapat diinstal hanya dengan 'apt-get install pkstat'.
alfish
Juga, jika Anda dapatkan pktstat: pcap_lookupdev: no suitable device foundketika menjalankan ini, Anda mungkin harus root.
Tim Malone
10

Untuk tampilan 'purdy', saya sebagian ke alat yang disebut 'iptraf' yang akan melakukan apa yang Anda sebutkan, serta per antarmuka, dan per agregat port.

Untuk perangkat inti Linux, netstat yang terpercaya akan melakukan ...

es tipis
sumber
1
IPtraf adalah alat terbaik yang pernah saya lihat dalam hal kegunaan dan fungsionalitas - jelas Anda masih dapat membuat skrip beberapa hal menggunakan alat standar seperti netstat dan ngrep dan tcpdump tetapi mengapa Anda ingin menemukan kembali roda :)
gyre
Untuk kelengkapan, iftop mirip dengan iptraf - aplikasi berbasis ncurses yang menggunakan grafik batang dan bukan hanya angka - untuk menampilkan penggunaan bandwidth per alamat IP. Dengan opsi -P Anda bisa mendapatkannya per port juga.
gsreynolds
7

A tcpdumpakan menunjukkan itu kepada Anda; jika Anda hanya menginginkan daftar IP, Anda bisa memfilter pada paket SYN dan hanya menampilkan alamat IP sumber. Sesuatu seperti:

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

Akan memberi Anda daftar IP, secara realtime. Anda juga teedapat melakukannya ke file, dan secara berkala lakukan sort -udi atasnya untuk mendapatkan daftar alamat IP unik yang telah mengirim koneksi ke Anda.

womble
sumber
3

Berikut ini cara melihat semua lalu lintas yang datang ke port 2222:

tcpdump -ni any port 2222
Basj
sumber
0

Setelah Anda mendapatkan output dari salah satu perintah yang disebutkan dalam jawaban lain, Anda dapat menggunakan alat "tonton" untuk memiliki "waktu nyata". Sebagai contoh, "watch -n 5 ps" akan melakukan perintah "ps" setiap 5 detik (argumen "-n"). Ganti "ps" dengan perintah yang menarik, dan Anda akan mendapatkan "pemantauan". Atau, cukup "tee" pada file, seperti pada saran lain.

Pembawa
sumber