我尝试先添加防火墙规则
sudo ufw deny 22
$ sudo ufw status
To Action From
-- ------ ----
22 DENY Anywhere
22 (v6) DENY Anywhere (v6)
但它没有用所以我试图停止与之对应的服务
sudo systemctl stop ssh
它暂时工作,当我们重新启动系统时,相同的端口将再次打开。如何永久关闭一个端口?
通常,您添加防火墙规则以拒绝防火墙中特定端口号(如 22)上的所有流量,
ufw
使用:注意
ufw
必须启用,这样这个规则才能生效,当然:检查状态、默认值和所有规则的列表:
您还可以安装防火墙 GUI
gufw
来管理这些规则和默认值,如果您更喜欢命令行的话。这种方式使端口只能通过网络从您的计算机外部访问。您仍然可以访问
localhost
或上的端口127.0.0.1
,因为本地流量不会被防火墙过滤。侦听此端口的服务仍然可以运行,并且不受任何防火墙规则的影响。如果您想阻止 systemd 服务在启动时自动启动,您可以禁用它。要禁用例如 ssh 服务器,请使用:
此命令只是禁用服务的自动启动。如果另一个服务或目标需要它,它仍然可以自动启动,或者您也可以手动启动它。它不会影响服务使用的端口,只是停止服务在该端口上运行和侦听,但一旦启动,它将再次侦听。
如果您通常不希望在您的机器上运行 ssh 服务器,您可以完全卸载该软件包:
这会卸载(当然也会停止)ssh 服务器应用程序,但不会影响任何端口和防火墙规则。