一、使用netstat命令
netstat(network statistic)是一個命令行工具,可以用來查看網絡相關的運行狀態,包括網絡連接,路由表,接口狀態等等。在Ubuntu中,可以使用以下命令查看端口佔用情況:
$ netstat -tuln
該命令的參數解釋如下:
- -t:表示只顯示TCP協議的連接
- -u:表示只顯示UDP協議的連接
- -l:表示只顯示正在監聽的連接
- -n:表示不顯示域名,而是直接顯示IP地址
命令執行後,會輸出類似下面的結果:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN udp 0 0 127.0.0.53:53 0.0.0.0:* udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:5353 0.0.0.0:* udp6 0 0 :::5353 :::*
其中,Local Address 列的地址是本地的IP地址和端口號。Foreign Address 列的地址為遠程的IP地址和端口號。如果顯示為「127.0.0.1」或「::1」,則表示該端口只能在本地訪問。
二、使用lsof命令
lsof(list open files)是一個命令行工具,可以列出當前系統打開的文件列表。在Ubuntu中,可以使用以下命令查看端口佔用情況:
$ sudo lsof -i :端口號
例如,查看佔用80端口的進程:
$ sudo lsof -i :80
命令執行後,會輸出含有佔用該端口的進程信息:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 12345 root 10u IPv4 54321 0t0 TCP *:http (LISTEN) nginx 12345 root 11u IPv6 54322 0t0 TCP *:http (LISTEN)
其中,COMMAND 表示進程名,PID 表示進程號,USER 表示進程的運行用戶,TYPE 表示連接類型,FD 表示連接的文件描述符,SIZE/OFF 表示佔用的資源大小等。
三、使用ss命令
ss 命令是 netstat 命令的替代品,可以列出更詳細的網絡連接狀態信息。在Ubuntu中,可以使用以下命令查看端口佔用情況:
$ ss -tulwn
該命令的參數解釋如下:
- -t:表示只顯示TCP協議的連接
- -u:表示只顯示UDP協議的連接
- -l:表示只顯示正在監聽的連接
- -n:表示不顯示域名,而是直接顯示IP地址
- -w:表示顯示完整的socket信息
命令執行後,會輸出類似下面的結果:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 :::22 :::* udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:5353 0.0.0.0:* udp UNCONN 0 0 :::5353 :::*
其中,Local Address 列的地址是本地的IP地址和端口號。Peer Address 列的地址為遠程的IP地址和端口號。如果顯示為「127.0.0.1」或「::1」,則表示該端口只能在本地訪問。
原創文章,作者:SOHM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/148024.html