如何使 CentOS 5.6 上的所有端口均可访问?

如何使 CentOS 5.6 上的所有端口均可访问?

我已经在 Virtual PC 2007 下设置了一个 CentOS 5.6 开发服务器作为虚拟机运行,以便进行操作Node.js。一切都正常运行,但我似乎无法访问端口 8234,这是 Node 服务器正在运行的端口。

我知道服务器正在运行,因为我可以wget localhost:8234检索包含“Hello World”的 HTML 文件,这是正确的。

如果我使用端口扫描器,我可以看到“允许传入”部分中提到的所有端口都处于打开状态并且响应 ping,但没有其他任何内容。

我已经运行setup并设置如下:

防火墙配置

端口配置

在我看来,这些设置应该关闭防火墙并允许任何东西进入eth0(唯一的虚拟网络接口),但事实似乎并非如此。

我怎样才能完全禁用防火墙,或者如果做不到这一点,让端口 8234 可供外界访问?

答案1

您的网络服务器仅绑定到本地主机。

确保您的网络服务器正在监听除本地主机(127.0.0.1)或本地链接(169.254.*.*)以外的 IP 地址

netstat -tl将有助于

答案2

system-config-securitylevel-tui应用程序提供非常对主机防火墙的控制有限。如果您想完全禁用防火墙,您应该执行以下操作:

chkconfig iptables off
service iptables stop

这将阻止防火墙在运行级别更改时启动,并且如果它正在运行则将其关闭。

允许访问您的单个端口

iptables -A INPUT -p tcp  -m tcp --dport 8234 -j ACCEPT
service iptables save

答案3

如果防火墙已禁用,则无需自定义防火墙。我相信您也可以在安装完成后关闭防火墙;我手边没有 CentOS 系统可以查找,但互联网似乎推荐

service iptables save
service iptables stop
chkconfig iptables off

这将保存您的规则,并在后续启动时禁用防火墙。可能还有一个图形工具,这就是我们所说的 Red Hat。;)

防火墙是必备的。您可以将 8234:tcp 添加到其他端口字段(和/或 udp,如果您的服务需要的话)。

运行@Lucas 提供的 iptables 命令会起作用,但不会禁用防火墙,只是允许所有流量。在这种情况下,让防火墙继续运行就没什么意义了。

答案4

使用以下命令查看你的 Web 服务器正在监听哪个端口

(我假设你正在使用 apache)

netstat -an | grep httpd

确保它绑定到你的公共 IP,而不仅仅是本地环回

相关内容