一、命令行方式
1、使用netstat命令查看端口占用情況
netstat -anp | grep 端口號(hào)
其中“-a”選項(xiàng)表示列出所有連接,即LISTEN和非LISTEN連接狀態(tài);“-n”選項(xiàng)表示以數(shù)字形式顯示地址和端口號(hào);“-p”選項(xiàng)表示顯示與端口或進(jìn)程相關(guān)的程序名。通過(guò)在“grep”命令后添加所要查找的端口號(hào)即可顯示該端口的連接進(jìn)程。
2、使用lsof命令查看端口占用情況
lsof -i:端口號(hào)
其中“-i”選項(xiàng)表示僅顯示網(wǎng)絡(luò)相關(guān)的文件;“:端口號(hào)”表示具體要查找的端口號(hào)。使用lsof命令可以查找某個(gè)端口對(duì)應(yīng)的進(jìn)程,同時(shí)還能查看該進(jìn)程打開(kāi)的文件和網(wǎng)絡(luò)連接信息。
3、使用ss命令查看端口占用情況
ss -lntp | grep 端口號(hào)
其中“-l”選項(xiàng)表示只顯示監(jiān)聽(tīng)端口的連接;“-n”選項(xiàng)表示以數(shù)字形式顯示地址和端口號(hào);“-t”選項(xiàng)表示只顯示TCP連接;“-p”選項(xiàng)表示顯示與端口或進(jìn)程相關(guān)的程序名。ss命令與netstat類似,但ss命令更加快速和有效。
二、圖形化界面方式
除了使用命令行方式查看端口占用情況外,我們還可以使用一些圖形化界面工具來(lái)進(jìn)行查看。
1、使用System Monitor(系統(tǒng)監(jiān)視器)
System Monitor是一個(gè)內(nèi)置于CentOS上的系統(tǒng)監(jiān)視器工具,它可以實(shí)時(shí)監(jiān)視CPU、內(nèi)存、網(wǎng)絡(luò)和硬盤等系統(tǒng)性能信息,也可以查看當(dāng)前的進(jìn)程和網(wǎng)絡(luò)連接情況。
在菜單中找到“System Tools” - “System Monitor”,然后選擇“Processes”選項(xiàng)卡。點(diǎn)擊“View” - “All Process”即可查看所有進(jìn)程,包括它們打開(kāi)的文件和端口。
2、使用htop命令
htop是一個(gè)更加強(qiáng)大的系統(tǒng)進(jìn)程監(jiān)視器工具,它可以顯示當(dāng)前的CPU使用情況、內(nèi)存使用情況和進(jìn)程信息等。我們可以通過(guò)htop命令來(lái)查看某個(gè)端口對(duì)應(yīng)的進(jìn)程信息。
yum install htop
htop
在htop界面中,按下“F4”鍵,輸入要查找的端口號(hào)即可顯示該端口對(duì)應(yīng)的進(jìn)程信息。
三、使用Python腳本方式
可以使用Python編寫(xiě)腳本來(lái)查看端口占用情況。下面是一個(gè)簡(jiǎn)單的Python腳本示例:
# -*- coding: utf-8 -*-
import os
def check_port(port):
cmd = "lsof -i:%s" % port
response = os.popen(cmd)
content = response.read()
if content:
print("Port %s is using:\n%s" % (port, content.strip()))
else:
print("Port %s is not in use." % port)
if __name__ == '__main__':
check_port(80)
該P(yáng)ython腳本使用了os模塊和popen函數(shù)來(lái)執(zhí)行系統(tǒng)命令,查找端口占用情況。可以把要查找的端口號(hào)作為參數(shù)傳遞給check_port函數(shù),然后執(zhí)行該腳本即可。