1. 程式人生 > >Linux埠的關閉和啟用

Linux埠的關閉和啟用

Linux下面貌似沒有什麼直接開啟或者關閉埠的命令,因為若僅僅只是開啟了埠而不把它與程序相聯絡的話,埠的開啟與關閉就顯得毫無意義了(開了埠卻沒有程式處理進來的資料)。也就是說,Linux裡面埠的活動與程序是緊密相連的,如果想要關閉某個埠,那麼只要殺掉它對應的程序就可以了。



例如要關閉22號埠:



$ netstat -anp | grep :22
tcp   0    0 0.0.0.0:22      0.0.0.0:*     LISTEN     1666/sshd


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

# -n 以數字形式表示地址和埠號,不試圖去解析其名稱(number)

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




知道了22號埠對應的程序ID 1666,只要:

$ kill 1666
即可。



其中“-p”選項需要注意一個許可權的問題,如果在普通使用者登入的shell裡面執行netstat命令,那麼只能列出擁有該普通使用者許可權的相關程序,如果想要看到所有的埠情況,最好還是切到root。



附帶幾個netstat常用選項用法:



$ netstat -tn    # 列出所有TCP協議的連線狀態


# -t 只顯示與TCP協議相關的連線和埠監聽狀態,注意和-a有區別(tcp)



$ netstat -tuln    # 列出所有inet地址類的埠監聽狀態