localhost에서만 netcat 및 기타 프로그램에 대한 연결이 거부되었습니다.

localhost에서만 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

다양한 구현이 있기 때문입니다. 데비안 10에서 실행하여 이것을 시도해 볼 수 있는 것 같습니다:

섬기는 사람:

netcat -l -p 5656

고객:

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

따라서 테이블의 기본 경로보다 동일한 경로를 3배 늘렸음에도 불구하고 네트워크에는 문제가 없는 것 같습니다.

그런데 netcat그것은 link 으로 구현되었습니다 nc. 따라서 debian 에서 사용하거나 사용하는 데에는 nc차이가 없습니다 netcat.

관련 정보