如何在centos 7上使用iptables?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我安装了CentOS 7(os + dev工具)。我想为httpd服务打开80端口,但是我的iptables服务出了问题

# ifconfig/sbin/service iptables save
bash: ifconfig/sbin/service: No such file or directory


# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# sudo service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# sudo service iptables start
Redirecting to /bin/systemctl start  iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.
提问于
用户回答回答于

在RHEL 7 / CentOS 7中,引入了firewalld来管理iptables。firewalld更适合工作站而不是服务器环境。

iptables设置。首先,停止并屏蔽firewalld服务:

systemctl stop firewalld
systemctl mask firewalld

然后,安装iptables-services包:

yum install iptables-services

在启动时启用服务:

systemctl enable iptables

管理服务

systemctl [stop|start|restart] iptables

保存防火墙规则可以按如下方式完成:

service iptables save

要么

/usr/libexec/iptables/iptables.init save
用户回答回答于

RHEL和CentOS 7使用firewall-cmd而不是iptables。你应该使用这种命令:

# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent

然后,可以重新加载规则以确保一切正常

firewall-cmd --reload

这比使用iptable-save更好,特别是如果你打算使用lxc或docker容器。启动Docker服务将添加一些iptable-save命令将提示的规则。如果你保存结果,你将会有很多不应该保存的规则。因为docker容器可以在下次重启时更改它们的IP地址。

具有永久选项的Firewall-cmd对此更好。

扫码关注云+社区