我已经在Virtual PC 2007下build立了一个作为虚拟机运行的CentOS 5.6开发服务器,以便和Node.js一起玩。 一切正常,并且正在运行,但似乎无法访问端口8234,这是运行节点服务器的端口。
我知道服务器正在运行,因为我可以使用wget localhost:8234并检索包含“Hello World”的HTML文件,这是正确的。
如果我使用端口扫描器,我可以看到“允许传入”部分中提到的所有端口都打开并响应Ping,但没有其他任何东西。
我已经运行setup并设置如下:


在我看来,这些设置应该已经closures了防火墙,并允许eth0 (唯一的虚拟networking接口)出现的任何东西,但似乎并非如此。
我怎样才能完全禁用防火墙,否则,使外部世界可以访问端口8234?
你的web服务器只绑定到localhost。
确保您的Web服务器正在侦听除localhost(127.0.0.1)或本地链接(169.254。*。*)以外的IP地址
netstat -tl将有所帮助
system-config-securitylevel-tui应用程序对主机防火墙提供了非常有限的控制。 如果你想完全禁用防火墙,你应该这样做:
chkconfig iptables off service iptables stop
这将阻止防火墙从运行级别更改开始,并在目前正在运行时将其closures。
允许访问您的单个端口
iptables -A INPUT -p tcp -m tcp --dport 8234 -j ACCEPT service iptables save
如果禁用,则不需要定制防火墙。 我相信你也可以在安装完成后closures防火墙。 我没有一个CentOS系统方便查找,但互联网似乎推荐
service iptables save service iptables stop chkconfig iptables off
这将保存您的规则,并在后续启动时禁用防火墙。 也许还有一个graphics工具,这就是我们正在谈论的Red Hat。 ;)
防火墙是一件体面的事情。 您将添加8234:tcp到其他端口字段(和/或udp如果您的服务需要它)。
运行@Lucas提供的iptables命令可以工作,但不会禁用防火墙,只允许所有stream量。 在这种情况下,运行防火墙没有太多的意义。
iptables -P INPUT ACCEPT
作为根
使用以下命令查看您的Web服务器正在侦听的端口
(我假设你使用的是Apache)
netstat -an | grep httpd
确保它绑定到您的公共IP,而不仅仅是本地环回