Linux檢視埠使用狀態、關閉埠方法

婉和發表於2012-04-18

前提:首先你必須知道,埠不是獨立存在的,它是依附於程式的。某個程式開啟,那麼它對應的埠就開啟了,程式關閉,則該埠也就關閉了。下次若某個程式再次開啟,則相應的埠也再次開啟。而不要純粹的理解為關閉掉某個埠,不過可以禁用某個埠。

1. 可以通過"netstat -anp" 來檢視哪些埠被開啟。
(注:加引數'-n'會將應用程式轉為埠顯示,即數字格式的地址,如:nfs->2049, ftp->21,因此可以開啟兩個終端,一一對應一下程式所對應的埠號)
2. 然後可以通過"lsof -i:$PORT"檢視應用該埠的程式($PORT指對應的埠號)。或者你也可以檢視檔案/etc/services,從裡面可以找出埠所對應的服務。
(注:有些埠通過netstat查不出來,更可靠的方法是"sudo nmap -sT -O localhost")
3. 若要關閉某個埠,則可以:
1)通過iptables工具將該埠禁掉,如:
"sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
"sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"   
2)或者關掉對應的應用程式,則埠就自然關閉了,如:
"kill -9 PID" (PID:程式號)
如:    通過"netstat -anp | grep ssh"
有顯示:    tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh
則:    "kill -9 7546"

(可通過"chkconfig"檢視系統服務的開啟狀態)

 

轉自:http://apps.hi.baidu.com/share/detail/1192651

相關文章