在Linux服务器上configuration端口设置

我试图让互联网stream量端口7778在我的服务器上,但无法做到这一点。 可能在这里犯了一些菜鸟的错误。 你能帮我诊断和解决这个问题吗?

我只是做了以下几点:

 sudo iptables -A TCP -p tcp -m tcp --dport 7778 -j ACCEPT 

如果我做iptables -S ,我会看到列表中附加的规则,例如:

 -A TCP -p tcp -m tcp --dport 22 -j ACCEPT -A TCP -p tcp -m tcp --dport 80 -j ACCEPT -A TCP -p tcp -m tcp --dport 443 -j ACCEPT -A TCP -p tcp -m tcp --dport 7778 -j ACCEPT 

但是,如果我从另一台服务器 – telnet example.com 7778 ping这个特定的端口,我看到:

telnet:无法连接到远程主机:连接被拒绝

我还能在这里做什么? 端口44322工作正常。


注意:我的服务器使用Azure基础结构(经典VM)。 我采取的额外步骤是在Azure门户中为端口7778添加endpoint 。 因此这部分被覆盖。

通过使用-A开关,您将规则添加到链的末尾。 这几乎肯定会把它放在丢弃/阻塞数据包的规则之后。

当iptables / netfilter正在检查,看看应该如何处理数据包。 第一个匹配胜。 在你的情况下,它可能会匹配一个类似于-A INPUT -j REJECT --reject-with icmp-port-unreachable ,这将导致连接被拒绝的消息之前匹配您的允许消息。

解决方法是使用-I将规则插入INPUT链中适当的位置。

根据错误日志,似乎你的服务不听。

为了更有效地解决这个问题,我build议检查如下:

1.检查虚拟机中的服务。

netstat -ant | grep 7778

请确保端口正在侦听。

  1. 使用本地主机IP进行testing

telnet 127.0.0.1 7778

据我所知,如果你的防火墙有一些缺失的configuration,你会得到以下错误。

telnet:无法连接到远程主机:连接超时