Netcat(nc6) - 최소 IPv6 전용 TCP 서버 및 클라이언트

Netcat(nc6) - 최소 IPv6 전용 TCP 서버 및 클라이언트

netcat(또는 nc6)을 사용하여 기본 IPv6 전용 에코 서버를 설정하려고 합니다. 클라이언트와 서버가 모두 동일한 로컬 네트워크에 있습니다. 그러나 클라이언트는 즉시 종료됩니다.


IPv6 서버:

$ nc6 -6 -vv --continuous --exec cat -l -p 5555
nc6: listening on :: 5555 ...

IPv6 클라이언트:

$ nc6 -6 -vv fe80::213:33ff:feab:ff5d 5555
nc6: fe80::213:33ff:feab:ff5d (fe80::213:33ff:feab:ff5d) 5555 [5555] open
nc6: using stream socket
nc6: using buffer size of 8192
nc6: error reading from remote: Transport endpoint is not connected
nc6: connection closed (sent 0, rcvd 0)
nc6: readwrite returned -1
nc6: closed local
nc6: closed remote
$ 

질문이 있으신가요?
인터페이스 중 하나에서 들어오는 연결만 수신하도록 서버를 구성해야 합니까? (어떻게?)


IPv4 버전은 잘 작동합니다.

IPv4 서버:

nc6 -vv --continuous --exec cat -l -p 5555
nc6: listening on :: 5555 ...
nc6: listening on 0.0.0.0 5555 ...
nc6: connect to 192.168.1.35 5555 from xyrobert.local (192.168.1.35) 37928 [37928]
nc6: using stream socket
nc6[7502]: executing 'cat'
nc6[7502]: using buffer size of 8192
nc6[7502]: read 4 bytes from remote
nc6[7502]: wrote 4 bytes to local
nc6[7502]: read 4 bytes from local
nc6[7502]: wrote 4 bytes to remote

IPv4 클라이언트:

nc6 -vv 192.168.1.35 5555
nc6: kearney.local (192.168.1.35) 5555 [5555] open
nc6: using stream socket
nc6: using buffer size of 8192
Hi!
nc6: read 4 bytes from local
nc6: wrote 4 bytes to remote
nc6: read 4 bytes from remote
Hi!
nc6: wrote 4 bytes to local

답변1

IPv6 링크-로컬 주소에 연결할 때 클라이언트 시스템에서 볼 수 있는 주소에 도달할 링크를 지정해야 합니다. 각 링크는 동일한 링크-로컬 주소를 사용하므로 클라이언트는 어떤 링크(인터페이스)를 사용할 것인지 명시적으로 알려야 합니다. 따라서 접속하려는 시스템이 eth0클라이언트 시스템을 통해 연결되어 있는 경우에는 에 연결해야 합니다 fe80::213:33ff:feab:ff5d%eth0.

로컬 라우팅 테이블을 사용하여 패킷을 보낼 인터페이스를 결정하므로 라우팅 가능한 IPv6 주소를 사용하는 것이 훨씬 쉽습니다.

관련 정보