更新時間:2021-01-05 17:58:58 來源:動力節點 瀏覽2004次
在使用計算機的過程中,有時會碰到端口被占用的情況,這時候需要查看端口占用情況進行問題排查。在linux系統中,端口占用的情況也時有發生,一般情況下可以使用lsof和netstat兩個命令來查看端口占用情況。
下面我們就分別介紹Linux查看端口占用用到的lsof和netstat命令:
1、lsof命令
lsof(list open files)命令功能:列出當前系統打開文件。在linux系統中,一切皆文件,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。像TCP、UDP 套接字等,系統中都存在對應的文件描述符,該文件描述符為應用程序與操作系統之間的交互提供了通用接口。因為應用程序打開文件的描述符列表提供了大量關于這個應用程序本身的信息,因此通過lsof命令可以查看這個列表對系統進行監測。
查看某個端口的占用情況使用命令:
lsof -i:port,比如查看9090端口使用情況:lsof -i:9090。
# lsof -i:9090
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Thriftc 32551 root 6u IPv6 23200961 0t0 TCP *:websm (LISTEN)
lsof命令參數:
2、netstat命令
Netstat是控制臺命令,是一個監控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的狀態信息。Netstat用于顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。因此可以使用netstat命令查看系統中端口占用情況。查看指定端口號的進程情況使用命令:netstat -tunlp | grep port,比如查看9090端口的進程:netstat -tunlp | grep 9090。
# netstat -tunlp?
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address ? ? ? ? ? ? ? Foreign Address ? ? ? ? ? ? State ? ? ? PID/Program name ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:34797 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?1554/rpc.statd ? ? ?
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?1497/rpcbind ? ? ? ?
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?31165/nginx ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:22 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?1988/sshd ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:25 ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?2102/master ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:443 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?31165/nginx ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 :::9090 ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?32551/./Thriftc ? ??
tcp ? ? ? ?0 ? ? ?0 :::53705 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1554/rpc.statd ? ? ?
tcp ? ? ? ?0 ? ? ?0 :::111 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1497/rpcbind ? ? ? ?
tcp ? ? ? ?0 ? ? ?0 :::22 ? ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?1988/sshd ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 ::1:25 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?2102/master ? ? ? ??
udp ? ? ? ?0 ? ? ?0 0.0.0.0:111 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1497/rpcbind ? ? ? ?
udp ? ? ? ?0 ? ? ?0 127.0.0.1:882 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1554/rpc.statd ? ? ?
udp ? ? ? ?0 ? ? ?0 192.168.0.16:123 ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2013/ntpd ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 127.0.0.1:123 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2013/ntpd ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 0.0.0.0:123 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2013/ntpd ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 0.0.0.0:48037 ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1554/rpc.statd ? ? ?
udp ? ? ? ?0 ? ? ?0 0.0.0.0:824 ? ? ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1497/rpcbind ? ? ? ?
udp ? ? ? ?0 ? ? ?0 0.0.0.0:68 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1585/dhclient ? ? ??
udp ? ? ? ?0 ? ? ?0 :::33758 ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1554/rpc.statd ? ? ?
udp ? ? ? ?0 ? ? ?0 :::111 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1497/rpcbind ? ? ? ?
udp ? ? ? ?0 ? ? ?0 fe80::f816:3eff:fe49:fae:123 :::* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2013/ntpd ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 ::1:123 ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2013/ntpd ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 :::123 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2013/ntpd ? ? ? ? ??
udp ? ? ? ?0 ? ? ?0 :::824 ? ? ? ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1497/rpcbind ??
# netstat -tunlp | grep 9090
tcp ? ? ? ?0 ? ? ?0 :::9090 ? ? ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?32551/./Thriftc
netstat命令參數:
-a (all) 顯示所有連線中的Socket
-t (tcp) 僅顯示tcp相關選項
-u (udp) 僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
linux查看端口占用一直是使用操作系統的過程中容易遇見的問題,我們很難避免這樣的情況發生,只有采取相應的措施,查看端口占用的情況然后加以解決。在本站的Linux教程中有對端口占用的解決方案,感興趣的小伙伴可以前去觀看學習,通過實踐操作檢驗方案的可行性。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習