netcat 命令无法访问开放端口

netcat 命令无法访问开放端口

我有两台服务器,我试图在其中安装一些软件。一个是server1(IP 10.1.2.205),另一个是server2(IP 10.1.2.206)。两者都能够通过名称和 IP 地址互相 ping 通(即,我可以从 server2ping server1ping 10.1.2.205

netstat -lnt当我在 server1 上输入时,有以下输出

    Proto Recv-Q Send-Q Local Address ForeignAddress State  
    tcp        0      0 0.0.0.0:111    0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:22     0.0.0.0:*     LISTEN 
    tcp        0      0 127.0.0.1:631  0.0.0.0:*     LISTEN 
    tcp        0      0 127.0.0.1:25   0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:52666  0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:6817   0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:6818   0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:5672   0.0.0.0:*     LISTEN 
    tcp        0      0 :::111         :::*          LISTEN 
    tcp        0      0 :::22          :::*          LISTEN 
    tcp        0      0 ::1:631        :::*          LISTEN 
    tcp        0      0 :::36483       :::*          LISTEN 
    tcp        0      0 :::5989        :::*          LISTEN  

现在,当我尝试使用 server2 中的 netcat 命令时,我得到以下结果:

nc -v 10.1.2.205 22
Connection to server1 22 port [tcp/ssh] succeeded! SSH-2.0-OpenSSH_5.3

nc -v server1 22
Connection to server1 22 port [tcp/ssh] succeeded! SSH-2.0-OpenSSH_5.3

但问题在于以下输出:
nc -v server1 5989
nc: connect to server1 port 5989(tcp) failed: No route to host
我在每个其他端口上都得到相同的响应。
server1 上没有其他端口响应。我感兴趣的端口是 6817 和 6818 端口。我有一个应用程序需要在这两台机器之间的这些端口上侦听和响应。

输出:iptables -L

    Chain INPUT (policy ACCEPT)
    target  prot opt source   destination         
    ACCEPT  all  --  anywhere anywhere  state RELATED,ESTABLISHED           
    ACCEPT  icmp --  anywhere anywhere            
    ACCEPT  all  --  anywhere anywhere            
    ACCEPT  tcp  --  anywhere anywhere  state NEW tcp dpt:ssh 
    REJECT  all  --  anywhere anywhere  reject-with icmp-host-prohibited 

    Chain FORWARD (policy ACCEPT)
    target  prot opt source   destination         
    REJECT  all  --  anywhere anywhere    reject-with icmp-host-prohibited 

    Chain OUTPUT (policy ACCEPT)
    target  prot opt source   destination    

可能出什么问题了?

答案1

我认为你使用的是 Centos。正如您在 iptables 规则中看到的,除了端口 22 之外的所有 tcp 连接都被阻止。

尝试通过以下方式刷新 iptables 规则:

$ sudo iptables -F

这应该删除所有 iptables 规则。让我知道这是否有效。

答案2

按照上面讨论的方法解决了防火墙规则之后,从其他机器连接到 631 上的 cups admin 可能仍然存在一些困难。

如果您注意 netstat 输出中端口号之前的 IP 地址格式,您可能会发现在端口 631 上运行的服务似乎正在侦听与其他服务不同的 IP 范围。看起来只监听 IP 地址 127.0.0.1:631 和 ::1:631,而不是 0.0.0.0:631 :::631。

这表明它正在监听环回接口 lo0,而不是主以太网接口。

您可以通过比较输出来确认这一点

netstat -L lo0
netstat -L eth0  (or the name of your default network interface)

这是 CUPS 管理工具的默认配置和行为。

它只接受来自本地主机的网页的管理访问。有关配置 cups 服务器以允许远程管理访问的更多信息,请参阅 /etc/cupsd.conf (man 5 cupsd.conf)。

您可能需要将“Listen localhost:631”更改为“Listen *:631”,并添加一行“Allow 10.1.2.206”或在“Allow @LOCAL”(本地接口)行下方指定 IP 和网络掩码在配置文件的 /admin 部分中,然后重新启动 cupsd ("/etc/init.d/cups restart")

相关内容