TCP에 대한 netstat 출력 읽기

TCP에 대한 netstat 출력 읽기

만약 나와 내가 다음 ssh root@server -R 5901:localhost:5900과 같은 netstat -an상황을 겪는다면:

Active Internet connections (servers and established)                                           │
Proto Recv-Q Send-Q Local Address           Foreign Address         State                       │
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN                      │
tcp6       0      0 ::1:5901                :::*                    LISTEN                      │

그리고 ssh_config를 허용 GatewayPorts yes하고 동일한 작업을 수행 하면

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN
tcp6       0      0 :::5901                 :::*                    LISTEN

(내 서비스는 외부 네트워크에서 액세스할 수 있습니다)

::1:5901(대신 ) 해당 형식을 어떻게 읽나요 :::5901?

편집하다:

공용 네트워크에 공개되지 않았다는 것을 어떻게 읽나요?

0.0.0.0은 "로컬 컴퓨터의 모든 IP 주소"를 의미합니다.

답변1

IPv6 용어에서 ::1루프백 주소( 127.0.0.1IPv4 용어와 동일)입니다.

본질적으로 0:0:0:0:0:0:0:1(또는 더 정확하게는 흥미롭지 않지만 0000:0000:0000:0000:0000:0000:0000:0001) 모든 0이 로 접혀 있습니다 ::1. 기능적으로 IPv4와 동일하며 127.0.0.1동일한 역할을 수행합니다.

따라서 첫 번째 출력에서 ​​라인 tcp6은 모든 주소가 아닌 IPv6 루프백 주소를 수신하므로 외부에 표시되지 않습니다.

두 번째 예( :::5901)는 지정되지 않은 IPv6 주소 ::뒤에 콜론과 포트 번호가 추가된 것을 보여줍니다. 이는 포트가 있는 지정되지 않은 IPv4 주소와 기능적으로 동일하므로 0.0.0.0:5901모든 IPv6 주소를 통해 네트워크에 노출될 수 있습니다.

관련 정보