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地址類的埠監聽狀態
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地址類的埠監聽狀態