尝试使用 CentOS 打开端口

尝试使用 CentOS 打开端口

(我是新手!)我正在运行一个运行 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 设置的权限。

相关内容