如何永久关闭一个端口?

如何永久关闭一个端口?

我首先尝试添加防火墙规则

sudo ufw deny 22

$ sudo ufw status
To                         Action      From
--                         ------      ----
22                         DENY        Anywhere 
22 (v6)                    DENY        Anywhere (v6)

但它没有起作用所以我试图停止与之对应的服务

  sudo systemctl stop ssh

它暂时有效,当我们重新启动系统时,相同的端口将再次打开。如何永久关闭端口?

答案1

通常,您可以添加防火墙规则来拒绝ufw防火墙中特定端口号(例如 22)上的所有流量,方法如下:

sudo ufw deny 22

当然,请注意,ufw必须启用该规则才能生效:

sudo ufw enable

使用以下命令检查状态、默认值和所有规则的列表:

sudo ufw status verbose

gufw如果您更喜欢使用命令行,您还可以安装防火墙 GUI来管理这些规则和默认值。

这样就只能通过网络使端口无法访问,在你的计算机之外localhost。您仍然可以访问或上的端口127.0.0.1,因为本地流量不会被防火墙过滤。侦听此端口的服务仍可运行,并且不受任何防火墙规则的影响。


如果要阻止 systemd 服务在启动时自动启动,可以禁用它。例如,要禁用 ssh 服务器,请使用:

sudo systemctl disable ssh

此命令仅禁用服务的自动启动。如果其他服务或目标需要,它仍然可以自动启动,或者您也可以手动启动它。它不会影响服务使用的端口,只是停止服务在该端口上运行和监听,但一旦启动,它就会再次监听。


如果您通常不想在您的机器上运行 ssh 服务器,您可以完全卸载该软件包:

sudo apt remove openssh-server

这会卸载(当然也停止) ssh 服务器应用程序,但不会影响任何端口和防火墙规则。

相关内容