Penggunaan Perintah netstat di Linux

Ketahui apa arahan netstat dan beberapa contoh masa nyata.

netstat (statistik rangkaian) adalah alat baris perintah yang memaparkan sambungan rangkaian (masuk dan keluar), jadual perutean, dan sejumlah statistik antara muka rangkaian.

Ia tersedia di sistem operasi Linux, seperti Unix, dan Windows. netstat sangat hebat dan boleh menjadi alat yang berguna untuk menyelesaikan masalah berkaitan rangkaian dan mengesahkan statistik sambungan.

Sekiranya anda menaip netstat -help, anda akan mendapat garis panduan penggunaan berikut.

[[dilindungi e-mel] ~] # netstat -membantu
penggunaan: netstat [-vWeenNcCF] [] -r netstat {-V | –versi | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [kelewatan]

-r, –rutee routing table
-I, –interfaces = jadual antara muka paparan untuk
-i, – jadual antara muka paparan antara muka
-g, –kumpulan memaparkan keahlian kumpulan pelbagai siaran
-s, – statistik paparan statistik rangkaian (seperti SNMP)
-M, –masquerade paparan penyambungan sambungan

-v, –verbose menjadi verbose
-W, – jangan sesekali memotong alamat IP
-n, – angka tidak menyelesaikan nama
–numeric-host tidak menyelesaikan nama host
–numeric-port tidak menyelesaikan nama port
–pengguna angka tidak menyelesaikan nama pengguna
-N, – nama perkakasan penyelesaian simbolik
-e, – seterusnya memaparkan maklumat lain / lebih
-p, –program memaparkan nama PID / Program untuk soket
-o, – timer memaparkan pemasa
-c, – penyenaraian berterusan berterusan

-l, – soket pelayan mendengar paparan mendengar
-a, –semua paparan semua soket (lalai: disambungkan)
-F, –fib display Forwarding Information Base (lalai)
-C, –cache paparan routing cache dan bukannya FIB
-Z, –konteks paparan konteks keselamatan SELinux untuk soket

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= Gunakan ‘-6 | -4’ atau ‘-A’ atau ‘-‘; lalai: masuk
Senarai keluarga alamat yang mungkin (yang menyokong penghalaan):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[dilindungi e-mel] ~] #

Izinkan saya menunjukkan beberapa contoh arahan. Berikut ini diuji di RHEL / CentOS, tetapi saya tidak melihat alasan untuk tidak bekerja di distro lain seperti Ubuntu.

Sambungan yang Terjalin

Sekiranya anda mencari semua sambungan yang dibuat dari pelayan.

[[dilindungi e-mel] ~] # netstat -natu | grep ‘DITUBUHKAN’
tcp 0 21 68.183.37.102:22 222.186.31.135:231714 DITUBUHKAN
tcp 0 36 68.183.37.102:22 52.148.155.182:49859 DITUBUHKAN
tcp 0 0 68.183.37.102:22 61.177.142.158:55481 DITUBUHKAN
[[dilindungi e-mel] ~] #

Sekiranya anda mempunyai banyak sambungan dan berminat mencari salah satu IP, anda boleh menggunakan grep lain.

[[dilindungi e-mel] ~] # netstat -natu | grep ‘DITUBUHKAN’ | grep 61.177.142.158
tcp 0 1280 68.183.37.102:22 61.177.142.158:33932 DITUBUHKAN
[[dilindungi e-mel] ~] #

Sambungan Mendengar

Katakan anda telah memulakan beberapa perkhidmatan, dan yang seharusnya didengar di IP tertentu: Port, ini akan berguna untuk mengesahkan.

[[dilindungi e-mel] ~] # netstat -an | grep ‘DAFTAR’
tcp 0 0 127.0.0.1:25 0.0.0.0:* DAFTAR
tcp 0 0 0.0.0.09111 0.0.0.0:* DAFTAR
tcp 0 0 0.0.0.0:22 0.0.0.0:* DAFTAR
tcp6 0 0 ::: 111 ::: * DAFTAR
tcp6 0 0 ::: 80 ::: * DAFTAR
tcp6 0 0 ::: 22 ::: * DAFTAR
[[dilindungi e-mel] ~] #

Atau, anda boleh menggunakan argumen -l untuk menunjukkan semua soket mendengar.

[[dilindungi e-mel] ~] # netstat -l
Sambungan Internet aktif (hanya pelayan)
Proto Recv-Q Send-Q Alamat Tempatan Alamat Negara Asing
tcp 0 0 localhost: smtp 0.0.0.0:* DAFTAR
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* DAFTAR
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* DAFTAR
tcp6 0 0 [::]: sunrpc [::]: * DAFTAR
tcp6 0 0 [::]: webcache [::]: * DAFTAR
tcp6 0 0 [::]: ssh [::]: * DAFTAR
udp 0 0 0.0.0.0:805 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp 0 0 localhost: 323 0.0.0.0:*
udp6 0 0 [::]: 805 [::]: *
udp6 0 0 [::]: sunrpc [::]: *
udp6 0 0 ip6-localhost: 323 [::]: *
Soket domain UNIX aktif (hanya pelayan)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ACC] STREAM DAFTAR 15108 / run / dbus / system_bus_socket
unix 2 [ACC] STREAM DAFTAR 8202 / run / systemd / jurnal / stdout
unix 2 [ACC] SEQPACKET MENDAFTAR 12813 / run / udev / control
unix 2 [ACC] MENDAFTAR LANGKAH 17542 orang awam / pengambilan
unix 2 [ACC] MENDAFTAR STREAM 15165 /var/run/rpcbind.sock
unix 2 [ACC] STREAM DAFTAR 17546 orang awam / pembersihan
unix 2 [ACC] DAFTAR STREAM 15605 /var/lib/gssproxy/default.sock
unix 2 [ACC] STREAM DAFTAR 12706 / run / systemd / private
unix 2 [ACC] MENDAFTAR LANGKAH 17549 awam / qmgr
unix 2 [ACC] STREAM DAFTAR 17571 public / flush
unix 2 [ACC] DAFTAR STREAM 17553 peribadi / tlsmgr
unix 2 [ACC] MENDAFTAR LANGKAH 17586 awam / showq
unix 2 [ACC] STREAM DAFTAR 17556 peribadi / tulis semula
unix 2 [ACC] STREAM DAFTAR 17559 peribadi / melantun
unix 2 [ACC] STREAM DAFTAR 17562 peribadi / tertunda
unix 2 [ACC] STREAM DAFTAR 17565 peribadi / jejak
unix 2 [ACC] STREAM DAFTAR 17568 peribadi / sahkan
unix 2 [ACC] STREAM DAFTAR 17574 peribadi / proksi
unix 2 [ACC] STREAM DAFTAR 17577 peribadi / proksi
unix 2 [ACC] STREAM DAFTAR 17580 peribadi / smtp
unix 2 [ACC] STREAM DAFTAR 17583 peribadi / relay
unix 2 [ACC] STREAM DAFTAR 17589 peribadi / ralat
unix 2 [ACC] STREAM DAFTAR 17592 peribadi / cuba lagi
unix 2 [ACC] STREAM DAFTAR 17595 peribadi / buang
unix 2 [ACC] STREAM DAFTAR 17598 swasta / tempatan
unix 2 [ACC] STREAM DAFTAR 17601 peribadi / maya
unix 2 [ACC] STREAM DAFTAR 17604 peribadi / lmtp
unix 2 [ACC] STREAM DAFTAR 17607 peribadi / landasan
unix 2 [ACC] STREAM DAFTAR 17610 peribadi / scache
unix 2 [ACC] STREAM DAFTAR 15606 /run/gssproxy.sock
[[dilindungi e-mel] ~] #

Manfaatkan grep untuk menapis hasilnya.

Nombor Port yang digunakan oleh PID

Anda tahu aplikasi anda dimulakan dan mengetahui PID (Process Identifier) ​​tetapi tidak pasti nombor port yang digunakannya. Contoh di bawah adalah untuk PID 3937

[[dilindungi e-mel] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * DAFTAR 3937 / httpd
unix 3 [] JALAN BERSAMBUNG 2442387 3937 / httpd
[[dilindungi e-mel] ~] #

Seperti yang anda lihat, port 80 digunakan untuk PID 3937.

Semua Statistik Protokol

Kerap kali terputus kerana paket dibuang? argumen -s akan menunjukkan kepada anda statistik keseluruhan di mana anda boleh memperhatikan paket-paket yang dibuang.

[[dilindungi e-mel] ~] # netstat -s
Ip:
731422 jumlah paket yang diterima
0 dimajukan
0 paket masuk dibuang
731399 paket masuk dihantar
787732 permintaan dihantar
16 jatuh kerana tiada laluan
Icmp:
5277 mesej ICMP diterima
120 mesej ICMP input gagal.
Kesalahan InCsum: 6
Histogram input ICMP:
destinasi tidak dapat dicapai: 193
tamat masa dalam perjalanan: 16
permintaan gema: 5060
balasan gema: 2
9355 mesej ICMP dihantar
0 mesej ICMP gagal
Histogram output ICMP:
destinasi tidak dapat dicapai: 4295
balasan gema: 5060
IcmpMsg:
Dalam Jenis0: 2
Dalam Jenis3: 193
Dalam Jenis8: 5060
Dalam Jenis11: 16
OutType0: 5060
OutType3: 4295
Tcp:
42 bukaan sambungan aktif
35226 bukaan sambungan pasif
1693 percubaan sambungan gagal
645 tetapan semula sambungan diterima
2 sambungan terjalin
646705 segmen diterima
648037 segmen dihantar
99463 segmen dihantar semula
27377 segmen buruk diterima.
150893 set semula dihantar
Kesalahan InCsum: 27377
Udp:
74547 paket diterima
4814 paket ke port yang tidak diketahui diterima.
56 paket menerima ralat
74584 paket dihantar
0 menerima ralat penyangga
0 hantar ralat penyangga
Kesalahan InCsum: 56
UdpLite:
TcpExt:
177 kuki SYN tidak sah diterima
1693 reset diterima untuk soket SYN_RECV embrio
316 soket TCP selesai masa menunggu dalam pemasa cepat
3 paket menolak dalam sambungan yang dibuat kerana cap waktu
70248 permintaan tertunda dihantar
6 acks yang tertunda terus ditangguhkan kerana soket terkunci
Mod cepat ack diaktifkan 3082 kali
17 SYN ke DAFTAR soket jatuh
28179 paket langsung beratur ke recvmsg prequeue.
9802 bait diterima secara langsung dalam konteks proses dari prequeue
72106 header paket diramalkan
94182 pengakuan tidak mengandungi muatan data yang diterima
40094 pengakuan diramalkan
332 kali pulih dari kehilangan paket dengan pengakuan terpilih
8 tetingkap kesesakan pulih tanpa permulaan yang perlahan oleh DSACK
1173 tingkap kesesakan pulih tanpa permulaan yang perlahan selepas sebahagian separa
Tamat masa 1029 selepas pemulihan SACK
8 tamat masa dalam keadaan kehilangan
329 penghantaran semula cepat
3 penghantaran semula ke hadapan
32 menghantar semula dalam permulaan perlahan
44785 masa tamat TCP yang lain
TCPLossProbes: 9763
Pemulihan TCPLossProbe: 1732
54 penghantaran semula SACK gagal
3144 DSACK dihantar untuk paket lama
4 DSACK dihantar untuk paket yang tidak dipesan
695 DSACK diterima
1 DSACK untuk paket yang tidak diterima diterima
44 sambungan diset semula kerana data yang tidak dijangka
76 sambungan diset semula kerana penutupan pengguna awal
6079 sambungan dibatalkan kerana tamat masa
TCPDSACKDiabaikanNoUndo: 448
TCPSpuriousRTO: 5
TCPSackShiftFallback: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
TCPOFOQueue: 4313
TCPOFOMerge: 4
TCPC ChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IpExt:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
DalamNoECTPkts: 731338
InECT1Pkts: 3
InECT0Pkts: 1568
InCEPkts: 108
[[dilindungi e-mel] ~] #

Maklumat penghalaan kernel

Mengalami masalah penghalaan? atau, kesambungan tidak berfungsi seperti yang diharapkan kerana sambungan melalui jalan yang berbeza?

Periksa jadual penghalaan dengan cepat.

[[dilindungi e-mel] ~] # netstat -r
Jadual penghalaan IP Kernel
Destinasi Gateway Genmask Bendera MSS Window irtt Iface
gateway lalai 0.0.0.0 UG 0 0 0 eth0
10.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
68.183.32.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
pautan-tempatan 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[dilindungi e-mel] ~] #

PID digunakan oleh Port Number

Sangat berguna untuk menyelesaikan masalah konflik pelabuhan. Katakan anda cuba memulakan pelayan Apache atau Nginx, yang mendengar di port 80 tetapi tidak dapat dilakukan kerana beberapa proses lain sudah menggunakan port 80.

[[dilindungi e-mel] ~] # netstat -anlp | grep 80 | grep DAFTAR
tcp6 0 0 ::: 80 ::: * DAFTAR 3937 / httpd
[[dilindungi e-mel] ~] #

Dan, anda dapat melihat PID 3937 menggunakan port tersebut.

Sekiranya anda menggunakan AIX, maka

netstat -Aan | grep $ portnumber

Ini akan memaparkan alamat Blok Kawalan Protokol dalam heksadesimal

Setelah anda mempunyai perenambelasan, maka boleh jalankan di bawah ini untuk mendapatkan proses yang memegang nombor port.

rmsock $ alamat_of_pcb tcpcb

Senarai antara muka rangkaian

Mempunyai pelbagai antara muka ethernet? atau tidak pasti dan ingin mengetahui?

[[dilindungi e-mel] ~] # netstat -i
Jadual Antaramuka Kernel
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
et0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[dilindungi e-mel] ~] #

Mendengar secara berterusan

Pilihan yang sangat baik ketika menyelesaikan masalah berkaitan masalah kemalangan. Katakanlah aplikasi mogok secara rawak setiap beberapa minit. Tetapi, tidak pasti bila tepat. Anda boleh menggunakan argumen -c yang akan terus menunjukkan hasilnya.

[[dilindungi e-mel] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * DAFTAR 11766 / httpd
tcp6 0 0 ::: 8080 ::: * DAFTAR 11766 / httpd
tcp6 0 0 ::: 8080 ::: * DAFTAR 11766 / httpd
tcp6 0 0 ::: 8080 ::: * DAFTAR 11766 / httpd

Apabila ia berhenti dikemas kini, maka anda akan mengetahui bahawa ia rosak.

Kesimpulannya

netstat adalah salah satu arahan yang banyak digunakan oleh sysadmin dan saya harap contoh di atas memberi anda idea tentang apa yang boleh anda lakukan dengannya. Sekiranya anda ingin mengetahui lebih lanjut mengenai pentadbiran Linux, maka periksa ini Kursus Udemy.

TAG:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.