天天看點

如何在Linux中顯示網絡連接配接、路由表等資訊?Netstat了解一下!

作者:wljslmz

Netstat 是一個用于顯示網絡連接配接、路由表、接口統計等資訊的指令行工具。它在 Linux 和其他類 Unix 系統中都有提供,可以幫助我們分析和診斷網絡問題。本文将介紹 Netstat 指令的基本用法和常見選項。

如何在Linux中顯示網絡連接配接、路由表等資訊?Netstat了解一下!

Netstat 指令的文法

Netstat 指令的基本文法如下:

netstat [選項] [位址族]
           

其中,選項可以用來指定顯示的資訊類型和格式,位址族可以用來過濾顯示的協定類型,如 inet(IPv4)、inet6(IPv6)、unix(Unix 域套接字)等。如果不指定位址族,則預設顯示所有協定類型的資訊。

Netstat 指令的常見選項

Netstat 指令有很多選項,可以根據不同的需求進行組合使用。下面列舉一些常見的選項及其含義:

  • -a:顯示所有套接字(socket),包括監聽(listening)和非監聽(non-listening)的。
  • -l:隻顯示監聽狀态的套接字。
  • -n:以數字形式顯示位址和端口,不進行域名或服務名的解析。
  • -p:顯示每個套接字對應的程序辨別符(PID)和程式名。
  • -t:隻顯示 TCP 協定的套接字。
  • -u:隻顯示 UDP 協定的套接字。
  • -r:顯示路由表(routing table)。
  • -i:顯示網絡接口(network interface)的統計資訊。
  • -s:顯示網絡協定的統計資訊。

Netstat 指令的示例

下面給出一些使用 Netstat 指令的示例,以便更好地了解其用法。

顯示所有 TCP 連接配接

netstat -at
           

這個指令會顯示所有 TCP 協定的套接字,包括本地位址(Local Address)、遠端位址(Foreign Address)和連接配接狀态(State)。例如:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 192.168.1.100:ssh       192.168.1.101:49210     ESTABLISHED
tcp        0      0 192.168.1.100:49212     172.217.160.78:https    ESTABLISHED
           

其中,LISTEN 表示監聽狀态,ESTABLISHED 表示已建立連接配接,其他可能的狀态還有 SYN_SENT、SYN_RECV、FIN_WAIT1、FIN_WAIT2、TIME_WAIT、CLOSE、CLOSE_WAIT、LAST_ACK、CLOSING 等。

顯示所有 UDP 連接配接

netstat -au
           

這個指令會顯示所有 UDP 協定的套接字,包括本地位址和遠端位址。例如:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 192.168.1.100:ntp       0.0.0.0.0:*
udp 0 0 192.168.1.100:mdns 0.0.0.0:*
           

其中,bootpc 表示 DHCP 用戶端端口,domain 表示 DNS 服務端口,ntp 表示網絡時間協定(Network Time Protocol)端口,mdns 表示多點傳播 DNS(Multicast DNS)端口。

顯示所有監聽套接字

netstat -l
           

這個指令會顯示所有監聽狀态的套接字,包括 TCP 和 UDP 協定的。例如:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 192.168.1.100:mdns      0.0.0.0:*                          
           

顯示所有套接字及其對應的程序

netstat -p
           

這個指令會顯示所有套接字及其對應的程序辨別符(PID)和程式名,如果有權限的話。例如:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        1      1 localhost:49214         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49216         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49218         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49220         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49222         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49224         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49226         localhost:domain        CLOSE_WAIT  -                   
tcp        1      1 localhost:49228         localhost:domain        CLOSE_WAIT
           

繼續閱讀