我在这台机器上安装了 Fedora,它是一个网关/防火墙系统。
安装后,我运行' yum upgrade
',所以它应该是最新的Fedora 21 - 我故意落后了一点(不是Fedora 22),所以希望解决任何问题(现在意识到也许我应该有Fedora 20 不见了?!)...
启动后,我为盒子中的两个 NIC 配置了各自的 IP 地址,重新启动,确认它们没问题,然后开始“防火墙”设置。首先,我跑了:
# firewall-cmd --list-all-zones
我确认 firewalld 正在使用的接口名称与其他工具一致(不像过去的 Fedora 版本,例如 19 - 请参阅请求的 FC19 FirewallD 调试帮助:端口未转发)
要将接口放入正确的区域,然后我运行:
firewall-cmd --permanent --zone=external --change-interface=enp2s0
firewall-cmd --permanent --zone=internal --change-interface=enp5s4
..并继续尝试设置端口转发等。有几个步骤,例如打开端口,然后转发它。然而,这些都没有奏效。经过一番挖掘,我发现这篇文章仅在几天前发布,所以我认为它是最新的 - http://www.certdepot.net/rhel7-get-started-firewalld/ - 并按照它的建议进行编辑/etc/sysctl.conf
和添加一行阅读net.ipv4.ip_forward=1
并激活它# sysctl -p
,然而,不幸的是,事情实际上“倒退”了......
以前,与转发端口的连接尝试挂起,但现在它们正在返回:
ssh: connect to host 167.101.97.2 port 6543: No route to host
所以,我试图通过取消端口转发和对 sysctl.conf 的编辑来恢复正常,但事情并没有回到“原始!”
令人难以置信的是,我重新启动,一切都设置为默认设置,我可以安装的条件 - 除了那些区域更改;他们能有什么害处?!但是当系统恢复正常时,接口已经回到了默认区域!
然后我又试了一遍。没有!无论我做什么,重启后接口都停留在“FedoraServer”区域中。我已经在命令行的几个不同位置尝试了 --permanent 。每次响应都是“成功”,然而,每次结果都是它无法在重新启动后幸存下来,即使这是重新启动之间系统上唯一要做的事情。
...足以动摇一个人对他们(否则)最喜欢的 Linux 发行版的忠诚度!...不要让我告诉你我的真实想法!
好的,这肯定是经过测试的;这是怎么做的?(是的,我想了解端口转发,但在这里我只询问在重新启动后幸存的接口的区域更改。)
附加数据:
所以,我有这样的想法,可能是 NetworkManager 妨碍了它,就像它过去经常做的那样。然而,我在那里的任何努力都没有结果。第一个努力是在接口文件中简单地设置 NM_CONTROLLED="no" ,/etc/sysconfig/network-scripts
但这会使系统没有接口!
然后我不得不回到我的过去来记住它是以前存在的“network.service”,谢天谢地它已经安装了。所以,我跑了:
systemctl disable NetworkManager.service
systemctl enable network.service
然后接口就可用了。但是,重新启动后 - 并确保执行了必要的firewall-cmd
命令(见上文) - 不幸的是,它再次不起作用。
然后我尝试将 NM_CONTROLLED 值更改为“否”,但这也不起作用。
我不确定 firewalld 命令是否可以这样做,但您可以在 ifcfg 文件中更改区域
/etc/sysconfig/network-scripts
— 分别在 editifcfg-enp2s0
andifcfg-enp5s4
和 addZONE=external
and中更改ZONE=internal
。这篇文章中的另一个解决方案:Centos7 无法将接口保留在指定区域中
在我的环境中测试并正常工作