新聞中心
,sudo lsof -i :80 | grep LISTEN,“在Linux系統(tǒng)中,端口是進程間通信的一種方式,每個進程都有一個或多個端口與之關(guān)聯(lián),用于接收和發(fā)送數(shù)據(jù),當我們在瀏覽器中訪問一個網(wǎng)站時,實際上是通過HTTP協(xié)議與服務器的某個端口進行通信,了解如何查看80端口被哪個進程占用,對于排查網(wǎng)絡問題和系統(tǒng)故障非常有幫助。

十多年的延邊朝鮮族網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整延邊朝鮮族建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“延邊朝鮮族網(wǎng)站設(shè)計”,“延邊朝鮮族網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
本文將介紹如何在Linux系統(tǒng)中查看80端口被哪個進程占用的方法。
1. 使用lsof命令
lsof(list open files)是一個列出當前系統(tǒng)打開文件的工具,我們可以使用它來查看哪些進程正在使用某個端口,要查看80端口被哪個進程占用,可以使用以下命令:
sudo lsof i :80
執(zhí)行該命令后,你將看到類似以下的輸出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 12345 wwwdata 7u IPv4 12345 0t0 TCP *:http (LISTEN) nginx 12346 wwwdata 7u IPv4 12346 0t0 TCP *:http (LISTEN)
從輸出中可以看出,有兩個名為nginx的進程正在監(jiān)聽80端口,PID為12345的進程是主進程,PID為12346的進程是工作進程。
2. 使用netstat命令
netstat(network statistics)是一個顯示網(wǎng)絡狀態(tài)的命令,我們可以使用它來查看哪些進程正在使用某個端口,要查看80端口被哪個進程占用,可以使用以下命令:
sudo netstat tuln | grep :80
執(zhí)行該命令后,你將看到類似以下的輸出:
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN off (12345/nginx) tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN off (12346/nginx)
從輸出中可以看出,有兩個名為nginx的進程正在監(jiān)聽80端口,PID為12345的進程是主進程,PID為12346的進程是工作進程。
3. 使用ss命令
ss(socket statistics)是一個顯示套接字統(tǒng)計信息的命令,我們可以使用它來查看哪些進程正在使用某個端口,要查看80端口被哪個進程占用,可以使用以下命令:
sudo ss tuln | grep :80
執(zhí)行該命令后,你將看到類似以下的輸出:
LISTEN 0 128 *:http *:* users:(("nginx",pid=12345,fd=7),("nginx",pid=12346,fd=7))
從輸出中可以看出,有兩個名為nginx的進程正在監(jiān)聽80端口,PID為12345的進程是主進程,PID為12346的進程是工作進程。
4. 使用top命令
top命令可以實時顯示系統(tǒng)中各個進程的資源占用情況,我們可以使用它來查看哪些進程正在使用某個端口,要查看80端口被哪個進程占用,可以在終端中輸入top命令,然后按下Shift + F9鍵,切換到“內(nèi)存”視圖,接著按下Shift + F7鍵,切換到“按CPU使用率排序”視圖,最后按下Shift + F8鍵,切換到“按內(nèi)存使用率排序”視圖,此時,你將看到類似以下的輸出:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12345 wwwdata 20 0 12345 7896 6564 S 0.3 0.1 0:15.69 httpd 12346 wwwdata 20 0 12346 7896 6564 S 0.3 0.1 0:15.69 httpd 1 root 20 0 0 0 0 S 0.0 0.0 0:01.29 systemdjournal 1 root 20 0 0 0 0 S 0.0 0.0 0:03.75 kthreadd ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
從輸出中可以看出,有兩個名為httpd的進程正在監(jiān)聽80端口,PID為12345的進程是主進程,PID為12346的進程是工作進程,這兩個進程可能是Nginx服務器的組件。
相關(guān)問題與解答:
問題1:為什么在lsof命令的輸出中,有的主進程的PID比工作進程的PID?。?/p>
解答:這可能是因為主進程在啟動時創(chuàng)建了工作進程,所以它的PID會比工作進程小,但這并不影響它們之間的關(guān)聯(lián)關(guān)系,我們可以通過查看其他信息(如COMMAND列)來判斷它們之間的關(guān)系。
問題2:為什么在netstat和ss命令的輸出中,沒有顯示進程的名稱?
解答:這是因為這些命令默認不顯示進程的名稱,如果需要顯示進程的名稱,可以使用p選項或者結(jié)合grep命令來實現(xiàn)。sudo netstat tuln | grep ':80' | grep 'nginx'。
問題3:為什么在top命令的輸出中,有些進程的名稱是數(shù)字?
文章題目:linux如何查看80端口被哪個進程占用了
標題網(wǎng)址:http://m.fisionsoft.com.cn/article/ccehsic.html


咨詢
建站咨詢
