(我是新手!)我正在运行一个运行 CentOS 的虚拟服务器。我正在尝试运行一个侦听端口 37760 的服务器。我正在运行的代码执行成功,因此我运行
netstat -lptu
显示正在侦听的端口列表,以及
tcp 0 0 localhost.localdomain:37760 *:* LISTEN 15006/node
是条目之一。但是,当我在浏览器中访问 ip:37760 时,连接超时!
我确信这是非常明显的,但是一些帮助将会非常有帮助!
谢谢
答案1
输出netstat
显示node
仅在本地主机上侦听,因此您需要在该虚拟控制台上使用浏览器并导航到或更新要侦听所有地址localhost:37760
的任何配置。node
答案2
您的本地防火墙很有可能阻止连接。
检查您的本地iptables
防火墙。您可以通过运行以下命令来查看当前状态:
iptables -vnL
这将产生如下所示的输出:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9192K 3593M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
18 740 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
1763K 180M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
6124 367K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
这四个规则是这样的:
- 允许与现有连接关联的流量
- 允许 ICMP 流量。
- 允许所有流量通过环回接口
- 允许 TCP 端口 22 (ssh) 上的新连接
您可以在 中看到持久状态/etc/sysconfig/iptables
。如果您需要 GUI 配置机制,则可以使用该system-config-firewall
工具,或者您可以利用此机会了解有关防火墙配置如何从命令行工作的更多信息。
答案3
CentOS 默认情况下会转IP表并通过 SELinux 执行相当严格的安全策略。如果您尝试从另一台计算机访问该端口,默认的 IPTables 设置会删除除 SSH 之外的所有传入连接。如果您不担心安全性,您可以简单地运行
sudo service iptables stop
完全关闭 IPTables。
在 CentO 上,另一件可能阻碍你的事情是SELinux。这充当进程和文件系统上的第二层安全性,并防止某些服务器默认拥有提供文件服务的权限,因为它们无权访问提供文件服务的目录。您在这里有几个选择。
1) 通过更改设置来关闭 SELinux,/etc/selinux/config
如下所示:
SELINUX=disabled in /etc/selinux/config
2) 更可取的是,用于audit2allow
检查 SELinux 是否阻止您的服务器,如果是,则生成新的安全策略以允许该服务器。看到这个中央操作系统维基条目以及这博客条目。
最后,如果您在虚拟机上运行,请确保您的虚拟机具有网络访问权限和使用底层硬件的 NIC 设置的权限。