Linux 下查看端口是否被占用

netstat 命令

在 Linux 下,netstat 命令用于顯示網(wǎng)絡(luò)狀態(tài),包括與 IP、TCP、UDP、ICMP 協(xié)議相關(guān)的統(tǒng)計(jì)數(shù)據(jù),一般用于校驗(yàn)本機(jī)各個(gè)端口的網(wǎng)絡(luò)連接情況。

輸出結(jié)果

命令 netstat 的輸出結(jié)果如下:

[jamza@A23488811 scp]$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 A23488811:ssh           10.40.150.192:58105     ESTABLISHED
tcp        0      0 A23488811:rfb           10.40.150.192:60593     ESTABLISHED
tcp        0      0 A23488811:microsoft-ds  10.40.150.192:63671     ESTABLISHED
tcp        0      0 A23488811:39334         192.168.222.101:ssh     ESTABLISHED
tcp        0     36 A23488811:ssh           10.40.150.192:60939     ESTABLISHED
tcp        0      0 A23488811:40468         192.168.222.101:ssh     ESTABLISHED
tcp        0      0 A23488811:60784         10.136.147.101:7788     ESTABLISHED
tcp        0      0 A23488811:nfs           192.168.222.102:1019    ESTABLISHED
tcp        0      0 A23488811:ssh           10.40.150.192:60030     ESTABLISHED
tcp        0      0 A23488811:40470         192.168.222.101:ssh     ESTABLISHED
tcp        0      0 A23488811:ssh           10.40.150.192:58115     ESTABLISHED
tcp        0      0 A23488811:nfs           192.168.222.101:781     ESTABLISHED
tcp        0      0 A23488811:nfs           192.168.222.103:880     ESTABLISHED
tcp        0      1 A23488811:54622         10.46.75.9:webcache     SYN_SENT
tcp        0      0 A23488811:nfs           192.168.222.104:947     ESTABLISHED
tcp        0      0 A23488811:ssh           10.40.150.192:58094     ESTABLISHED
tcp        0      1 A23488811:54624         10.46.75.9:webcache     SYN_SENT
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    3737037  /var/lib/samba/private/msg.sock/32132
unix  2      [ ]         DGRAM                    3735758  /var/lib/samba/private/msg.sock/32133
unix  2      [ ]         DGRAM                    3728159  /var/lib/samba/private/msg.sock/32134
unix  2      [ ]         DGRAM                    3735789  /var/lib/samba/private/msg.sock/32163
unix  2      [ ]         DGRAM                    38712407 /var/lib/samba/private/msg.sock/761
unix  2      [ ]         DGRAM                    1405     /run/systemd/notify
unix  2      [ ]         DGRAM                    1407     /run/systemd/cgroups-agent
unix  8      [ ]         DGRAM                    1419     /run/systemd/journal/socket
unix  32     [ ]         DGRAM                    1421     /dev/log
unix  2      [ ]         DGRAM                    35313364 /var/titanagent/webshell_monitor.socket
unix  2      [ ]         DGRAM                    35308343 /var/titanagent/jar/java_monitor_1377
unix  2      [ ]         DGRAM                    35308371 /var/titanagent/jar/java_monitor_1386
unix  2      [ ]         DGRAM                    9135     /run/systemd/shutdownd

命令 netstat 的輸出分為了兩個(gè)部分,分別是 Active Internet connections (w/o servers),與 Active UNIX domain sockets (w/o servers)。

Active Internet connections (w/o servers) 被稱為有源 TCP 連接,其中的 Recv-QSend-Q 指的是接收隊(duì)列與發(fā)送隊(duì)列,這些數(shù)字正常情況下應(yīng)該為 0,如果非 0 則表示軟件包正在隊(duì)列中堆積。

Active UNIX domain sockets (w/o servers) 被稱為有源 Unix 域套接口。

Proto 顯示連接使用的協(xié)議,RefCnt 表示連接到本套接口上的進(jìn)程數(shù)量,Type 顯示套接字的類型,State 顯示套接字的當(dāng)前狀態(tài),Path 顯示連接到套接字的其他進(jìn)程使用的路徑名。

狀態(tài)說(shuō)明:

  1. LISTEN:監(jiān)聽(tīng)來(lái)自遠(yuǎn)端的 TCP 端口連接請(qǐng)求
  2. ESTABLISHED:表示一個(gè)打開(kāi)的連接
  3. SYN-SENT:在發(fā)送連接請(qǐng)求后,等待匹配的連接請(qǐng)求
  4. SYN-RECEIVED:在收到和發(fā)送一個(gè)連接請(qǐng)求后,等待對(duì)方連接請(qǐng)求的確認(rèn)
  5. CLOSE-WAIT:等待從本地用戶發(fā)送的連接中斷請(qǐng)求
  6. CLOSING:等待遠(yuǎn)程 TCP 對(duì)連接中斷的確認(rèn)
  7. CLOSED:沒(méi)有任何連接狀態(tài)

選項(xiàng)參數(shù)

  1. -a 或者 --all:顯示所有連接狀態(tài)中的套接口
  2. -n 或者 --numeric:直接使用 IP 地址,而不通過(guò)域名服務(wù)器
  3. -p 或者 --programs:顯示正在使用套接口的程序 PID 與程序名稱
  4. -r 或者 --route:顯示 routing table
  5. -s 或者 --statistics:顯示網(wǎng)絡(luò)工作信息統(tǒng)計(jì)表
  6. -t 或者 --tcp:顯示 TCP 傳輸協(xié)議的連接狀況
  7. -u 或者 --udp:顯示 UDP 傳輸協(xié)議的連接狀況
  8. -v 或者 --verbose:顯示指令執(zhí)行過(guò)程

檢測(cè)端口是否被占用

通過(guò)常用的命令 netstat -anp | grep 端口號(hào),查詢當(dāng)前的端口被哪個(gè)進(jìn)程所占用。

比如,查詢當(dāng)前環(huán)境中,端口號(hào) 666610000 是否被占用:

[root@vm_rp0_cpu0_docker ~]# netstat -anp | grep 6666
[root@vm_rp0_cpu0_docker ~]#
[root@vm_rp0_cpu0_docker ~]# netstat -anp | grep 10000
tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTEN      27366/./ADM
tcp        0      0 127.0.0.1:46028         127.0.0.1:10000         ESTABLISHED 30693/telnet
tcp        0      0 127.0.0.1:10000         127.0.0.1:46028         ESTABLISHED 27366/./ADM
udp        0      0 0.0.0.0:10000           0.0.0.0:*                           27366/./ADM
[root@vm_rp0_cpu0_docker ~]#

可以看出,端口 6666 未被占用,但是端口 10000 被 PID 為 27366 的 ADM 進(jìn)程所占用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容