仅本地主机上的 netcat 和其他程序的连接被拒绝

仅本地主机上的 netcat 和其他程序的连接被拒绝

我刚刚发现我的 Arch Linux 安装有一个问题,我认为这很奇怪。为了说明这个问题,我将使用 netcat,但我编写的用于测试它的 ac 程序似乎也发生了同样的情况。

如果我像这样启动一个 netcat 监听器:

netcat -l 5656

该过程按预期工作,netcat 等待连接到它。如果我使用相应的 netcat 命令,我会得到以下结果:

$ netcat -v localhost 5656
localhost [127.0.0.1] 5656: Connection refused

如果我在另一台已通过 SSH 连接的计算机上启动侦听器,我可以通过 netcat 向其发送消息,但如果侦听器位于 Arch 计算机上,无论是在本地还是远程发送消息,我总是会收到连接被拒绝的消息。

编辑:

$ ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 29243  bytes 2094780 (1.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 29243  bytes 2094780 (1.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    303    0        0 wlp2s0
192.168.8.0     0.0.0.0         255.255.255.0   U     303    0        0 wlp2s0
192.168.8.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0
192.168.8.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

$ ip rule
0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

$ ip route show table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 
broadcast 192.168.8.0 dev wlp2s0 proto kernel scope link src 192.168.8.7 
local 192.168.8.7 dev wlp2s0 proto kernel scope host src 192.168.8.7 
broadcast 192.168.8.255 dev wlp2s0 proto kernel scope link src 192.168.8.7 

# Static table lookup for hostnames.
# See hosts(5) for details.

$ cat /etc/hosts
127.0.0.1   localhost
::1     localhost
127.0.1.1   arch.localdomain    arch

答案1

因为有不同的实现。看来你可以尝试这个,在 debian 10 上运行:

服务器:

netcat -l -p 5656

客户:

netcat -v 127.0.0.1 5656
Hello
World
<ctrl-C>

所以看来网络不是问题,即使您已将相同的路由增加到表中的默认路由的三倍。

BTWnetcat是作为链接实现的nc。所以在 debian 中使用nc或没有什么区别netcat

相关内容