5

我的服务器上运行着 UFW。当我重新启动它时:

$sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
1194/udp                   ALLOW       Anywhere                  
5550                       ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
8000                       ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
1194/udp (v6)              ALLOW       Anywhere (v6)             
5550 (v6)                  ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
8000 (v6)                  ALLOW       Anywhere (v6)

但是,当我尝试运行它时,我的端口 8000 和 1194 目前被阻止了。

当我运行时:

$sudo ufw disable
$sudo ufw enable

然后端口打开。之后我运行状态时,它与之前粘贴的完全相同。

4

4 回答 4

6

感谢@Nicholas 的提醒。问题是由iptables-persistent确实引起的。但是,简单地删除iptables-persistent不是一个好的解决方案,因为可能还有其他规则通过iptables. 因此,如果iptables-persistent已安装,更好的方法可能是使用持久化 ufw 规则iptables-persistent,即

sudo ufw reload
sudo netfilter-persistent save
于 2019-11-26T15:45:01.180 回答
4

真正的解决方案是卸载iptables-persistent及其依赖项:sudo apt remove iptables-persistentsudo apt autoremove.

根据:https ://github.com/pivpn/pivpn/issues/414

于 2019-06-17T00:50:29.643 回答
3

我的 http 和 https 端口也有同样的问题,它们通过重启被 ufw 阻止。在我禁用并启用 UFW 后,所有端口都从我的 UFW 防火墙规则运行。与 sudo ufw reload 命令相同。

所以我用我的机器创建了一个解决方法,并创建了一个 system.d 服务,它在 /etc/systemd/system/firewall.service 中启动一个简单的脚本。

[Unit]
Description=Firewall restart blocking solution.

[Service]
Type=simple
ExecStart=/var/scripts/firewall.sh

[Install]
WantedBy=multi-user.target

然后我的脚本很简单

#!/bin/bash
sudo ufw reload

至少我设置在启动时启动我的 init.d

sudo systemctl enable firewall.service

然后我的所有端口在重新启动后都可以正常工作。这也许是这个问题的解决方法。

于 2017-08-29T00:19:00.587 回答
2

我的印象是使用 ufw 所做的更改尚未保存并且是暂时的。重新启动而不保存新规则会导致加载以前保存的旧规则。

保存新规则:

iptables-save > /etc/iptables.rules

这些规则应在引导时由系统自动重新加载。或者它们可以重新加载:

iptables-restore < /etc/iptables.rules
于 2018-07-27T01:23:56.860 回答