Firewalld 未在启动时启动

Firewalld 未在启动时启动

我已经使用以下命令进行安装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在启动时启动。

谢谢

答案1

在启动时启动防火墙的一种方法是在 cron 中使用以下属性运行它 @reboot

打开终端并输入:

sudo crontab -e

在文件末尾输入命令:

@reboot systemctl start firewalld

保存文件并退出。

每次计算机启动时,上述命令都会运行一次。

更新

方法 2

如果您可以访问 ubuntu 的 GUI,则点击开始按钮(Windows 键)打开仪表板。

输入startup Applications并单击启动应用程序图标。

您将看到如下屏幕:在此处输入图片描述

点击添加按钮并添加如下命令:

在此处输入图片描述

然后单击“添加”。

你已准备好出发。

答案2

我在新安装的 Ubuntu 16.04.4 上也遇到了与 OP 相同的问题。

我检查了服务文件 -/lib/systemd/system/firewalld.service 它说firewalld与以下冲突iptables.service ip6tables.service ebtables.service ipset.service

然后我发现 ebtables.service 已安装并启用;禁用并屏蔽它后

sudo systemctl disable ebtables
sudo systemctl mask ebtables

重启后,无需任何其他脚本/技巧即可启动firewalld,当然因为它应该被启用。

所以我的问题的根本原因是 -ebtables.service 阻止启动firewalld.service

答案3

在防火墙文档中稍微搜索了一下,结果发现这一页。看来您可能需要设置一个“永久配置”,它将在每次服务停止/重新启动或机器启动时加载。firewall-cmd --runtime-to-permanent将采用您现有的运行时配置(当然,一旦您正确设置并正常工作)并将其迁移到永久配置。

这是我能提供的唯一建议;希望它能有所帮助。

答案4

虽然我不相信这是原始海报的问题,但许多用户由于 ubuntu 19.04 中的一个错误遇到了这个问题。

https://bugs.launchpad.net/ubuntu/+source/firewalld/+bug/1826187

如果您需要解决此问题,只需运行以下命令。

sudo su
ln -s /sbin/iptables /usr/sbin/
ln -s /sbin/iptables-restore /usr/sbin/
ln -s /sbin/ip6tables /usr/sbin/
ln -s /sbin/ip6tables-restore /usr/sbin/
service firewalld restart
service firewalld status
exit

它应该输出类似这样的内容。

●firewalld.service -firewalld -动态防火墙守护进程 已加载:已加载(/lib/systemd/system/firewalld.service;已启用;供应商预设:已启用) 活动:活动(正在运行)自 2019-05-01 星期三 13:37:29 EDT;2 秒前 文档:man:firewalld(1) 主 PID:8568(firewalld) 任务:2(限制:19660) 内存:27.5M CGroup:/system.slice/firewalld.service └─8568 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid

5 月 01 日 13:37:28 prismatic systemd[1]: 正在启动 firewalld – 动态防火墙守护进程... 5 月 01 日 13:37:29 prismatic systemd[1]: 已启动 firewalld – 动态防火墙守护进程。

相关内容