一、Netstat命令
Netstat(網路統計)是Linux下常用的網路工具,可以用來顯示和斷開網路連線,以及查詢網路介面和路由表等信息。
查詢埠號也是常見的用途之一,下面是Netstat命令的一些常用選項:
netstat -a //顯示所有socket
netstat -t //顯示所有TCP傳輸socket
netstat -u //顯示所有UDP傳輸socket
netstat -n //使用數字地址不進行反向域名解析
例如,下面的命令可以查詢TCP傳輸socket的埠號:
netstat -tn
輸出結果類似於:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53969 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:39218 151.101.193.69:443 ESTABLISHED
...
可以看到,這個命令可以列出當前系統的所有TCP連接,包括本地地址,外部地址和連接狀態,進而查詢埠號。
二、Lsof命令
Lsof(List Open Files)是一個列出當前系統打開的文件的工具,可以用來識別和分析進程所打開的所有文件和網路連接。
下面是Lsof命令的一些常見選項:
lsof -i //只顯示網路連接
lsof -i :埠號 //顯示使用特定埠號的網路連接
lsof -i TCP //只顯示TCP連接
lsof -i UDP //只顯示UDP連接
例如,下面的命令可以查詢佔用埠號為80的進程:
lsof -i :80
輸出結果類似於:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1223 root 4u IPv6 11116457 0t0 TCP *:http (LISTEN)
httpd 1788 apache 4u IPv6 11116457 0t0 TCP *:http (LISTEN)
httpd 1789 apache 4u IPv6 11116457 0t0 TCP *:http (LISTEN)
httpd 1790 apache 4u IPv6 11116457 0t0 TCP *:http (LISTEN)
httpd 1791 apache 4u IPv6 11116457 0t0 TCP *:http (LISTEN)
httpd 1792 apache 4u IPv6 11116457 0t0 TCP *:http (LISTEN)
可以看到,這個命令可以列出所有使用埠號80的進程。
三、ss命令
ss(Socket Statistics)是Linux下的另一個網路工具,用於顯示網路套接字的狀態信息。
下面是ss命令的一些常用選項:
ss -a //顯示所有socket
ss -t //顯示所有TCP傳輸socket
ss -u //顯示所有UDP傳輸socket
ss -n //使用數字地址不進行反向域名解析
例如,下面的命令可以查詢TCP傳輸socket的埠號:
ss -tn
輸出結果類似於:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
ESTAB 0 0 192.168.1.100:22 192.168.1.101:39910
可以看到,這個命令可以列出當前系統所有的TCP連接狀態,包括本地地址,遠端地址和連接狀態,進而查詢埠號。
四、pidof命令
pidof命令可以根據程序的名稱查詢其進程ID(PID)。
例如,下面的命令可以查詢nginx進程的PID:
pidof nginx
輸出結果類似於:
2500 2497 2495
可以看到,這個命令同時列出了nginx啟動的多個進程的PID。
五、總結
通過以上幾種方式,我們可以查詢當前系統的埠號信息,這對於網路調試、安全檢查和運維管理都非常有幫助。
例如,可以使用Netstat命令列出整個系統所有的TCP/UDP連接狀態,如果需要查詢特定埠號或進程的信息,則可以使用Lsof或pidof命令來進行查詢。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/191137.html