tips dan trik netstat

13

Dalam nada yang sama dengan pertanyaan "Useful Command-line" (untuk Windows , Linux , dan Mac ), saya pikir akan lebih mudah untuk memiliki "cara yang berguna untuk menggunakan pertanyaan utilitas x". Halaman manual memberi tahu Anda parameter apa yang dilakukan, tetapi belum tentu mengapa Anda akan menggunakannya, apa artinya hasilnya, hal-hal berguna apa yang dilakukan perintah yang tidak akan pernah Anda ketahui tanpa eksperimen yang luas, atau bagaimana mendapatkan jawaban yang benar-benar Anda inginkan.

Saya ingin tahu tentang netstat . Tampaknya saya harus dapat mengetahui proses mana yang menggunakan bandwidth, dan, memang, seberapa cepat sistem menggunakan bandwidth. Ini juga terlihat berguna untuk mendeteksi koneksi yang tidak diinginkan (kemungkinan virii), dan memberikan semua jenis informasi routing (yang saya hanya harus mainkan ketika mencoba membuat PDA Zaurus Sharp menggunakan TCP / IP melalui USB.) Dengan kata lain, itu Kedengarannya seperti tambang emas, dan saya berharap beberapa dari Anda akan berbagi nugget informasi yang Anda temukan.

Harap sertakan versi netstat dan OS Anda dalam balasan Anda. Akan menyenangkan untuk melihat beberapa contoh output dan tahu artinya. Saya telah menandai pertanyaan ini sebagai komunitas wiki, dan saya harap Anda akan melakukan hal yang sama dalam jawaban Anda, sehingga orang lain, yang mengetahui OS yang berbeda, dapat meletakkan perintah yang hampir sama jika mereka tahu, dalam jawaban yang sama, dan maka kita dapat memilih jawaban mana yang paling berguna.

Clinton Blackmore
sumber

Jawaban:

4

Tampilkan port TCP / UDP mendengarkan lokal, dan proses yang menjadi tempatnya:

sudo netstat -tulpn
cmcginty
sumber
4
Mac yang hampir setara tampaknya "sudo lsof -i -n -P | grep LISTEN". (Memastikan flag -n dan -P akan membuatnya mencari nama host dan port).
Clinton Blackmore
1
Clinton - itu adalah satu perintah yang fantastis.
SpacemanSpiff
3

Tabel routing Netstat

[Ini diuji pada Mac OS X 10.5.7. Saya menduga hasilnya hampir sama di semua platform, seperti yang ditunjukkan bekerja pada Solaris.]

netstat -r 

akan memberi Anda tabel routing.

netstat -nr

adalah sama, tetapi akan memberi Anda IP mentah alih-alih mencari nama mesin. Outputnya terlihat seperti ini (hanya lebih lama):

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.40.250     UGSc       19        1    en1
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH          1     3140    lo0
169.254            link#5             UCS         0        0    en1
169.254.33.92      127.0.0.1          UHS         0        0    lo0
192.168.40         link#5             UCS        11        0    en1
192.168.40.1       0:17:f2:ca:a0:94   UHLW        0        0    en1   1150
...

Internet6:
Destination                             Gateway                         Flags      Netif Expire
::1                                     link#1                          UHL         lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc          lo0
fe80::1%lo0                             link#1                          UHL         lo0
fe80::%en0/64                           link#4                          UC          en0
...
ff02::/32                               link#7                          UC          en2
ff02::/32                               link#8                          UC          en3

Kolom:

Tujuan dan Gateway: Tujuan adalah alamat (atau kisaran alamat) yang mungkin ingin kami kirimi informasinya. Semua data yang dikirim ke tujuan itu akan pergi ke gateway terkait. Gateway tahu ke mana harus mengirim data untuk 'hop' berikutnya dalam perjalanan. Jika kami ingin mengirim data ke tujuan yang tidak memiliki entri dalam tabel perutean, itu akan melalui gateway default.

Bendera: Halaman man / info mencantumkan semua bendera. Berikut adalah maksud pengaturan pada gateway default saya:

UGSc
U       - RTF_UP           Route usable
 G      - RTF_GATEWAY      Destination requires forwarding by intermediary
  S     - RTF_STATIC       Manually added
   c    - RTF_PRCLONING    Protocol-specified generate new routes on use

Itu aneh bahwa ia mengklaim ditambahkan secara manual, karena datang melalui DHCP.

Referensi: "Bidang refcnt memberikan jumlah saat ini menggunakan aktif rute. Protokol berorientasi koneksi biasanya berpegangan pada satu rute selama durasi koneksi sementara protokol tanpa koneksi mendapatkan rute saat mengirim ke tujuan yang sama." (Halaman manual)

Gunakan: "Bidang penggunaan menyediakan hitungan jumlah paket yang dikirim menggunakan rute itu."

Netif: "Entri antarmuka menunjukkan antarmuka jaringan yang digunakan untuk rute."

Di Mac saya,

  • lo0 adalah antarmuka loopback.
  • en0 adalah ethernet.
  • en1 adalah nirkabel.
  • en2 dan en3 digunakan oleh mesin virtual.

Kedaluwarsa: Dari halaman manual untuk versi netstat yang berbeda: "Menampilkan waktu (dalam menit) tersisa sebelum rute berakhir."

Clinton Blackmore
sumber
2

Di windows:

c:>netstat -a | find /c "TCP"
68

Menunjukkan jumlah koneksi TCP / IP. Berguna jika Anda memecahkan masalah sistem jaringan tinggi yang kehabisan port TCP dan perlu meningkatkan MaxUserPorts .

Christopher_G_Lewis
sumber
OS X 10.5.7 equiv: netstat -a | grep -c tcp
Clinton Blackmore
2

Tingkat Transmisi / Penerimaan

Di Mac [OS X 10.5.7]:

netstat -i -w 10

[Lihat jawaban chuck untuk catatan tentang penggunaan pada Solaris dan Linux.]

Outputnya terlihat seperti ini:

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
       794     0    1166796        763     0      50358     0
       789     0    1167773        765     0      52542     0
       792     0    1166548        765     0      51174     0
       796     0    1167262        598     0      40152     0
       929     0    1278561        846     0      65625     0
       563     0     815570        530     0      36828     0
        32     0       4360          1     0        774     0
         9     0        705          0     0        684     0
         9     0        631          0     0          0     0

Ini menunjukkan berapa banyak paket dan byte yang ditransfer dalam interval waktu tertentu. (10 detik dalam contoh ini). Saya terkoneksi ke youtube dan mengunduh lebih dari 1 MB setiap interval, sampai saya menutup tab browser dan kecepatannya turun.

Ini terbukti bermanfaat jika Anda menunggu unggahan atau unduhan selesai. Pantau laju, dan ketika turun drastis, Anda tahu itu selesai.

Perhatikan bahwa perintah di atas menunjukkan semua throughput pada semua antarmuka. Untuk cakupan ke antarmuka tertentu (WiFi dalam contoh ini), gunakan -Ibendera, seperti:

netstat -I en1 -w 10
Clinton Blackmore
sumber
1

Windows:

Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Menunjukkan koneksi TCP aktif, tetapi tidak ada aktivitas UDP.

Netstat -an
  (Show all connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Menunjukkan semua koneksi TCP aktif, serta mendengarkan koneksi TCP dan UDP. Tidak menunjukkan aktivitas UDP keluar di sini.

Mike
sumber
Saya akan menambahkan komentar untuk saat ini, tetapi ketika saya memiliki cukup perwakilan, saya akan mengedit jawabannya. netstat pada Mac OS X 10.5.7 setara - tambahkan -p tcp sehingga terbatas pada tcp protocoal. yaitu. netstat -p tcp -n, ataunetstat -p tcp -an
Clinton Blackmore
Beberapa switch lain yang bermanfaat di Windows adalah -o (tampilkan PID yang memiliki masing-masing soket) dan -b (perlihatkan nama proses kepemilikan masing-masing soket). Sangat berguna saat menyelidiki mesin yang Anda curigai telah dikompromikan.
Murali Suriar
-nt netstat melakukan hal yang sama (numerik dan tcp saja)
Jauder Ho
1

Windows

netstat -b

Tampilkan proses menggunakan koneksi

pengguna640
sumber
1

Windows 7 (mungkin sejak sebelumnya):

netstat -ano

daftar sesi aktif dengan PID terkait

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING       1724

atau untuk menyimpan langkah

netstat -anb

(dari prompt CMD tinggi) memberikan nama proses

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2048           0.0.0.0:0              LISTENING
TristanK
sumber
1

Saya yakin saya menemukan kembali roda tetapi di sini adalah skrip Perl sederhana untuk menjalankan netstat dan mengurutkan output sehingga IP saat ini sebagian besar terhubung keluar di atas. Ini paling baik digunakan dengan program 'menonton' untuk pembaruan dalam interval 2 detik.

Pembaruan: tulis ulang yang signifikan 2013-02-11 untuk menyingkirkan banyak masalah dan menampilkan nama host

Output sampel:

Distant inbound connections: 2
   85.93.216.17:772               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
   80.90.47.155:443               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
Distant outbound connections: 3
   80.90.63.61                    --> 80.90.63.48:25      :    2        smtp.m-plify.net                      2 x TIME_WAIT
   85.93.216.17                   --> 85.93.216.18:772    :    1        maya.m-plify.net                      1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
   127.0.0.1                      --> 127.0.0.1:9355      :   20                                              1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:4713      :   10                                             10 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:9353      :    9                                              4 x TIME_WAIT, 5 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:3306      :    8                                              6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:5445      :    5                                              1 x ESTABLISHED, 4 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:9354      :    2                                              2 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:7998      :    1                                              1 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:3351      :    1                                              1 x ESTABLISHED
   127.0.0.1                      --> 127.0.0.1:32000     :    1                                              1 x ESTABLISHED
David Tonhofer
sumber
0

Solaris:

netstat -nr
(displays routing table)
Milner
sumber
0

Dari buku Wicked Cool Shell Scripts:

Script # 90.1 : Setiap menit, ambil nilai netstats (via crontab)

Script # 90.2 : Menganalisis log kinerja berjalan netstat, mengidentifikasi hasil penting dan tren.

(Suka buku ini - layak dibeli!)

gharper
sumber
0

Di Solaris, banyak orang terbiasa melakukan "netstat -i 1" untuk mendapatkan jumlah paket yang berjalan. Netstat Linux memiliki versi yang tidak berguna dari fitur ini, karena ia menunjukkan kepada Anda hitungan mentah dan bukan delta. Untuk mendapatkan hasil yang serupa, lakukan "sar -n DEV 1 0". Pertimbangkan sebenarnya "LANG = C sar -n DEV 1 0 | grep interfacename" (sar menempatkan waktu dengan AM dan PM di awal baris di lokasi tertentu, jadi sebaiknya biasakan selalu berlari "LANG = C sar "seandainya Anda akan menguraikannya).

carlito
sumber
Untuk sampel keluaran dan penggunaan Mac, lihat serverfault.com/questions/11289/netstat-tips-and-tricks/… .
Clinton Blackmore
0

Tentang Solaris,

netstat -k

Menampilkan ringkasan dari berbagai statistik. Berguna untuk memeriksa kesalahan dll.

Jauder Ho
sumber
0

Karena belum ada yang menyebutkannya:

netstat -s 

menyediakan banyak statistik yang berguna berdasarkan protokol di linux.

dmourati
sumber