我正在尝试在 iptables 中打开端口 80,但遇到了几个问题。我正在运行 CentOS 5.7。
首先我尝试运行这个命令:
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j 接受
但我收到一条错误消息:
iptables:未找到命令
因此我运行了相同的命令但添加了 sbin:
/sbin/iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j 接受
现在我收到此错误:
iptables:没有该名称的链/目标/匹配
在此先感谢所提供的任何帮助。
答案1
如果您service iptables stop
按照某人在您发布的其他问题中建议的方式运行,那么所有 iptables 规则都已被刷新,并且不存在“RH-Firewall-1-INPUT”链。
假设您使用的是默认防火墙,请执行service iptables start
。iptables -n --list
按照 Zoredache 的建议运行,以验证是否存在名为“RH-Firewall-1-INPUT”的链。如果存在,则您显示的命令应该有效。service iptables save
之后运行以将其保存到配置文件中,这样下次重新启动时它就会出现在那里。
如果没有“RH-Firewall-1-INPUT”链,请编辑您的问题以显示结果iptables -n --list
,然后我们可以从那里继续。
答案2
运行“iptables -nvL”,查看链的正确名称,然后运行如下命令将规则附加到链中:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
这是我用来学习 IPtables 的一个很棒的链接:https://help.ubuntu.com/community/IptablesHowTo
希望这可以帮助