以下命令如果不存在,使用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
