Linux查看端口占用情況


以下命令如果不存在,使用yum install -y xxx安裝。

一、netstat或ss命令

1. netstat

注:yum install -y net-tools

netstat -anlp | grep 8888
# netstat命令各個參數說明如下:
# -t : 指明顯示TCP端口 
# -u : 指明顯示UDP端口 
# -l : 僅顯示監聽套接字(所謂套接字就是使應用程序能夠讀寫與收發通訊協議(protocol)與資料的程序) 
# -p : 顯示進程標識符和程序名稱,每一個套接字/端口都屬於一個程序。 
# -n : 不進行DNS輪詢,顯示IP(可以加速操作) 

對輸出的每一項進行說明:

(1) Proto:協議名(tcp協議還是udp協議)

(2) Recv-Q:網絡接收隊列。表示收到的數據已經在本地接收緩沖,但是還有多少沒有被進程取走。如果接收隊列Recv-Q一直處於阻塞狀態,可能是遭受了拒絕服務 denial-of-service 攻擊。通常應該為0,如果不為0可能是有問題的。packets在兩個隊列里都不應該有堆積狀態。可接受短暫的非0情況。

(3) Send-Q:網路發送隊列。對方沒有收到的數據或者說沒有Ack的,還是本地緩沖區。如果發送隊列Send-Q不能很快的清零,可能是有應用向外發送數據包過快,或者是對方接收數據包不夠快。通常應該為0,如果不為0可能是有問題的。packets在兩個隊列里都不應該有堆積狀態。可接受短暫的非0情況。

(4) Local Address

  • 0.0.0.0:22 表示監聽服務器上所有ip地址的所有(0.0.0.0表示本地所有ip)
  • :::22 也表示監聽本地所有ip的22端口,跟上面的區別是這里表示的是IPv6地址,上面的0.0.0.0表示的是本地所有IPv4地址。
  • 127.0.0.1:9100這個表示監聽本機的loopback地址的9100端口(如果某個服務只監聽了回環地址,那么只能在本機進行訪問,無法通過tcp/ip 協議進行遠程訪問)

(5) Foreign Address:與本機端口通信的外部socket。顯示規則與Local Address相同

(6) State:鏈路狀態,共有11種。state列共有12中可能的狀態,前面11種是按照TCP連接建立的三次握手和TCP連接斷開的四次揮手過程來描述的。

LISTEN:監聽來自遠方TCP端口的連接請求
ESTABLISHED:代表一個打開的連接,雙方可以進行或已經在數據交互了。
UNKNOWN:未知的socket狀態

(7)  PID/Program:PID即進程id,Program即使用該socket的應用程序。

(2) ss

ss -anlp | grep 80

二、lsof命令

這個命令是查看進程占用哪些文件的

lsof -i:80

注:yum install -y lsof

三、fuser命令

fuser命令和lsof正好相反,是查看某個文件被哪個進程占用的。Linux中,萬物皆文件,所以可以查看普通文件、套接字文件、文件系統。而套接字文件就包含了端口號。比如查看22端口。

fuser 22/tcp -v

注:yum install -y psmisc

四、nmap工具

nmap默認總是會掃描端口,要掃描本機端口,很方便。

nmap localhost


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM