만약 나와 내가 다음 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.1
IPv4 용어와 동일)입니다.
본질적으로 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 주소를 통해 네트워크에 노출될 수 있습니다.