如何在 CentOS 服务器上打开特定端口

如何在 CentOS 服务器上打开特定端口

我想在我的 Cent Os 远程服务器上打开一个端口。我在服务器上部署了一个使用端口 7500 的服务器应用程序,当我尝试从客户端与其建立连接时,客户端无法连接,然后我将端口更改为 8000,客户端便可以连接到它,端口 8000 允许从外部访问,但所有其他端口都受到限制,我如何在服务器上打开端口 7500 来访问它?

当我使用状态检查防火墙状态时,systemctl status firewalld它没有运行;当我使用状态 iptables.service 检查 iptables 状态时,

iptables.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

然后通过使用除了 8000 之外的其他端口的访问受到限制,因为firewalld 没有运行并且 iptables 处于非活动状态。我可以在哪里检查服务器上允许从外部访问的端口。

答案1

您使用的是 Centos 7。它使用默认的 Firewalld 来管理防火墙规则。您可以执行命令“systemctl status Firewalld”来检查 Firewalld 是否正在运行。

执行“firewall-cmd --list-all”列出当前firewalld配置

如果firewalld正在运行,请使用以下命令打开7500 tcp:

  • 获取区域名称

firewall-cmd --get-active-zone

  • 在当前配置中打开端口

firewall-cmd --zone=YOURZONE --add-port=7500/tcp

  • 在当前配置中打开端口,firewalld重启后生效

firewall-cmd --permanent --zone=YOURZONE --add-port=7500/tcp

答案2

您应该检查 SELinux 是否已启用。它很可能阻塞了端口。

您应该看到 getenforce 在命令行上返回的内容。如果它正在运行,则输出将是“enforced”

您可以通过运行“setenforce 0”暂时将 SELinux 置于“宽容”模式。

如果您的服务在执行此操作后运行,则意味着 SELinux 正在阻止它。

您可以在 audit.log 文件中查看它阻止您的服务的原因。

虽然有人可能会说禁用 SELinux,但我更愿意说找出服务被阻止的原因,使用 audit2why 等工具收集详细信息,然后更改 SELinux 策略以支持该服务。关闭 SELinux 并不是正确的解决方案。

端口 8000 对您有用的原因是,端口 8000 在 SELinux 策略中默认是允许的,对于端口 7000 或 7500,您需要调整策略并明确将它们标记为允许。

看看你能找到什么。

相关内容