CentOS7 上的 nc 命令和 iptables

CentOS7 上的 nc 命令和 iptables

我已经在 CentOS 7 上练习使用 iptables(它是 Virtual Box 上的访客计算机)。起初我禁用了firewalld

systemctl disable firewalld
systemctl stop firewalld

然后我安装了 iptables:

yum -y install iptables-services
systemctl enable iptables
systemctl start iptables

毕竟,我尝试使用nc -l 1025命令在本地计算机上打开 tcp 端口,但命令挂断了。我查遍了互联网,发现我可以在这篇文章中刷新 iptables 规则netcat 命令无法访问开放端口但此后我根本无法连接到互联网。所以我把我的 CentOS7 恢复到刚刚安装 iptables 时的状态。这是我的 iptables 规则:

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

这是详细模式nc -vl 1025

Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Listening on :::1025
Ncat: Listening on 0.0.0.0:1025

结果是ss -lnt

State      Recv-Q Send-Q        Local Address:Port          Peer    Address:Port
LISTEN     0      128                       *:22                       *:*
LISTEN     0      100               127.0.0.1:25                       *:*
LISTEN     0      128                      :::22                      :::*
LISTEN     0      100                     ::1:25                      :::*

另一种详细模式例如端口 2000 nc -vl 2000

Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Listening on :::2000
Ncat: Listening on 0.0.0.0:2000

的结果ss -lnt是相同的:

State      Recv-Q Send-Q        Local Address:Port          Peer  Address:Port
LISTEN     0      128                       *:22                       *:*
LISTEN     0      100               127.0.0.1:25                       *:*
LISTEN     0      128                      :::22                      :::*
LISTEN     0      100                     ::1:25                      :::*

那么我该怎么做才能让我的nc命令正常工作并且可以在 CentOS7 上打开一些 tcp 端口呢?

答案1

在评论中得到了解决 - 最重要的几点的快速总结:

  • ncat以及可能的其他netcat实现,仅侦听一次传入连接,并在第一次尝试时停止这样做(除非程序中有一个切换)

  • 无论当前 iptables 设置是什么,程序都可以开始侦听端口

相关内容