當前位置: 首頁>>技術教程>>正文


如何關閉 Ubuntu 中的開放端口?

問題描述

我需要一個命令來列出我 PC 中所有打開的端口,以及另一個命令來關閉端口。

有什麽建議麽?

我需要關閉一些應用程序的端口。

最佳辦法

netstat 可用於查看端口統計信息。

sudo netstat -lnp

列出所有偵聽端口號以及每個負責的進程。終止或終止進程以關閉端口。 ( kill , pkill …)

沒有進程終止,這是不可能的! .見 Manually closing a port from command line 。您可能會尋找防火牆解決方案的其他方式(如將該端口與網絡隔離)

次佳辦法

要在 ubuntu 中關閉開放端口,您可以使用以下命令

sudo kill $(sudo lsof -t -i:3000)

代替 3000 你可以指定你的端口號

lsof 命令將提供有關進程打開的文件的信息

-t :此標誌指定 lsof 應僅生成帶有進程標識符且沒有標頭的簡潔輸出 – 例如,以便可以將輸出通過管道傳輸到 kill(1)。此選項選擇 -w 選項。

-i :此標誌選擇任何 Internet 地址與 i 中指定的地址匹配的文件列表。如果未指定地址,此選項將選擇所有 Internet 和 x.25 (HP-UX) 網絡文件的列表。

第三種辦法

sudo ufw allow 22

sudo ufw deny 22

第四種辦法

您可以使用 iptables 在網絡級別阻止端口,而無需關閉應用程序。該端口仍將顯示為打開,但將無法訪問。

或者,這取決於應用程序,有些允許禁用某些端口(想想 dovecot 和 pop3 或 imap 端口),有些則不能。某些應用程序也可以配置為僅偵聽 localhost 或特定地址。

第五種辦法

您可以使用 netstat -nalplsof -i:port 工具來識別打開端口後麵的進程/二進製文件。

如果要關閉端口,則必須終止進程或停止相關服務。如果隻想為本地機器運行服務,則可以將相應的服務配置為偵聽 localhost/127.0.0.1 而不是所有可用的 (0.0.0.0) ips。

第六種辦法

要顯示所有開放端口的列表:

netstat -lnp

關閉一個打開的端口:

fuser -k port_no/tcp

例子:

fuser -k 8080/tcp

如果需要,您可以在兩者中使用 sudo

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12780.html,未經允許,請勿轉載。