我已经使用以下命令安装firewalld
和卸载:ufw
sudo apt install firewall-applet
sudo systemctl start firewalld
sudo systemctl enable firewalld
它可以工作,但在重新启动时不会自行启动。
$ sudo systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset
Active: inactive (dead)
May 10 18:39:03 Yyyy systemd[1]: Stopped firewalld - dynamic firewall daemon. lines 1-5/5 (END)
我的笔记本电脑运行的是 Ubuntu 16.04 LTS。
的输出sudo systemctl status iptables.service
:
● iptables.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
已安装 iptables。的输出dpkg -s iptables
Package: iptables
Status: install ok installed
Priority: important
Section: net
Installed-Size: 1624
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Version: 1.6.0-2ubuntu3
Depends: libxtables11 (= 1.6.0-2ubuntu3), libc6 (>= 2.14), libnfnetlink0
Description: administration tools for packet filtering and NAT
iptables is the userspace command line program used to configure
the Linux packet filtering ruleset. It is targeted towards system
administrators. Since Network Address Translation is also configured
from the packet filter ruleset, iptables is used for this, too. The
iptables package also includes ip6tables. ip6tables is used for
configuring the IPv6 packet filter
Homepage: http://www.netfilter.org/
Original-Maintainer: iptables devel team <[email protected]>
我试过sudo firewalld-cmd --runtime-to-parmanent
了,但它无助firewalld
于在启动时启动。
谢谢
在firewalld 文档中翻找了一下,就出现了这个页面。看来您可能需要设置一个“永久配置”,它将在每次服务停止/重新启动或机器启动时加载。
firewall-cmd --runtime-to-permanent
将采用您现有的运行时配置(当然,一旦您正确设置并工作)并将其迁移到永久。这是我能提供的唯一建议;希望它有所帮助。
在启动时启动防火墙的一种方法是使用 cron 使用
@reboot
属性运行它:打开一个终端并输入:
在文件末尾输入命令:
保存文件并退出。
上述命令将在每次计算机启动时运行一次。
更新
方法二
如果您可以访问 ubuntu 的 GUI,则通过点击开始按钮(Windows 键)打开破折号。
输入
startup Applications
并单击启动应用程序图标。你会得到这样的屏幕:
单击添加按钮并添加命令,如下所示:
然后单击添加。
你已准备好出发。
我在新安装的 Ubuntu 16.04.4 上也遇到了与 OP 相同的问题。
我检查了服务文件 - /lib/systemd/system/firewalld.service 它说 firewalld 与iptables.service ip6tables.service ebtables.service ipset.service冲突
然后我发现 ebtables.service 已安装并启用;禁用并屏蔽它后
重新启动后,firewalld 可以在没有任何其他脚本/技巧的情况下启动,因为它应该被启用。
所以我的问题的根本原因是-ebtables.service 阻止firewalld.service 被启动。
虽然我不相信这是最初的海报问题,但由于 ubuntu 19.04 中的一个错误,许多用户遇到了这个问题。
https://bugs.launchpad.net/ubuntu/+source/firewalld/+bug/1826187
如果您需要解决此问题,只需运行以下命令。
它应该输出这样的东西。