Linux如何查看端口狀態,啟用和關閉


轉:https://blog.csdn.net/qiaqia609/article/details/79697111

系統服務中,端口不是獨立存在的,它是依附於進程的。某個進程開啟,那么它對應的端口就開啟了,進程關閉,則該端口也就關閉了。下次若某個進程再次開啟,則相應的端口也再次開啟。所以,不要純粹的認為你要去關閉掉某個端口了。但是,禁用某個端口是可行的。因為,Linux里面端口的活動與進程是緊密相連的,如果想要關閉某個端口,那么只要kill掉與它對應的進程就可以了。

1.     可以通過"netstat -anp" 來查看哪些端口被打開。

說明:

# -a顯示所有活動的TCP連接,以及正在監聽的TCP和UDP端口

# -n以數字形式表示地址和端口號,不試圖去解析其名稱(number),參數'-n'會將應用程序轉為端口顯示,即數字格式的地址,如:nfs->2049,ftp->21

# -p列出與端口監聽或連接相關的進程(有個地方需要注意,下面會提到)(pid)

注意:

“-p”選項存在權限問題,如果在普通用戶登錄的shell里面執行netstat命令,那么只能列出擁有該普通用戶權限的相關進程,如果想要看到所有的端口情況,最好還是切到root用戶進行操作。

 

然后可以通過"lsof-i:$PORT"查看應用該端口的程序($PORT指對應的端口號)。或者你也可以查看文件/etc/services,從里面可以找出端口所對應的服務(可通過"chkconfig"查看系統服務的開啟狀態)。

 

2.     (注:有些端口通過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"退出進程ssh.

 

例如要關閉22號端口:

$ netstat -anp | grep :22

tcp 0  0 0.0.0.0:22   0.0.0.0:*  LISTEN  988/sshd

如此,知道了22號端口對應的進程ID 988,只要kill掉該進程即可關閉該端口:

$ kill 988

 



netstat命令各個參數說明如下:

  –a :本選項顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請求(LISTENING)的那些連接,斷開連接(CLOSE_WAIT)或者處於聯機等待狀態的(TIME_WAIT)等

  -t : 指明顯示TCP端口

  -u : 指明顯示UDP端口

  -l : 僅顯示監聽套接字(所謂套接字就是使應用程序能夠讀寫與收發通訊協議(protocol)與資料的程序)

  -p : 顯示進程標識符和程序名稱,每一個套接字/端口都屬於一個程序。

  -n : 不進行DNS輪詢,顯示IP(可以加速操作)

即可顯示當前服務器上所有端口及進程服務,於grep結合可查看某個具體端口及服務情況··

netstat -ntlp   //查看當前所有tcp端口·

netstat -ntulp |grep 80   //查看所有80端口使用情況·

netstat -an | grep 3306   //查看所有3306端口使用情況·

netstat –tuln ——列出所有inet地址類的端口監聽狀態

查看一台服務器上面哪些服務及端口

netstat  -lanp

查看一個服務有幾個端口。比如要查看mysqld

ps -ef |grep mysqld

查看某一端口的連接數量,比如3306端口

netstat -pnt |grep :3306 |wc

查看某一端口的連接客戶端IP 比如3306端口

netstat -anp |grep 3306

netstat -an 查看網絡端口 

lsof -i :port,使用lsof -i :port就能看見所指定端口運行的程序,同時還有當前連接。 

nmap 端口掃描
netstat -nupl  (UDP類型的端口)
netstat -ntpl  (TCP類型的端口)
netstat -anp 顯示系統端口使用情況


/etc/init.d/vsftp start


      是用來啟動ftp端口~!


免責聲明!

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



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