首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法保存Google实例上的iptables规则(CentOS 7)

问无法保存Google实例上的iptables规则(CentOS 7)
EN

Stack Overflow用户
提问于 2015-10-28 18:28:05
回答 1查看 2.8K关注 0票数 1

我在8080端口的Google实例中在CentOS7上运行CentOS7。我设置了iptables规则来将所有外部连接映射到端口80到8080

代码语言:javascript
复制
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

在那之后,我用

代码语言:javascript
复制
service iptables save

Tomcat工作良好,可通过80端口从外部进入。规则保存在/etc/sysconfig/iptables中。

代码语言:javascript
复制
...
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
...

但是,在服务器重新启动之后,规则就不适用了。它仍然在文件/etc/sysconfig/iptables中,但当我运行

代码语言:javascript
复制
iptables-save

似乎iptables规则是从其他地方恢复的。

我如何正确地坚持这个规则,以便在重新启动后保留它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-29 18:46:45

为了解决IPtables的问题,您可以执行以下操作:

代码语言:javascript
复制
yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables

然而,Centos7现在正在使用FirewallD。为了应用防火墙,您需要首先通过运行以下命令来检查哪些可用区域以及哪些区域在FirewallD上处于活动状态:

代码语言:javascript
复制
firewall-cmd --list-all-zones
firewall-cmd --get-active-zones

例如,如果公用区域处于活动状态,您可以运行这些命令来启用端口转发(在您的示例中,端口80到8080 ):

代码语言:javascript
复制
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

一旦完成,您就可以重新加载规则,通过运行以下命令确保一切正常:

代码语言:javascript
复制
firewall-cmd --reload

您可以查看man firewall-cmd以获得更多信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33398841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档