lendo a saída do netstat para tcp

0

Se eu ssh root@server -R 5901:localhost:5900 e netstat -an obtenho:

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                      │

Considerando que se eu permitir GatewayPorts yes no meu ssh_config e fizer o mesmo, obtenho

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

(e meu serviço pode ser acessado pela rede externa)

Como você lê o formato ::1:5901 (em oposição a :::5901 )?

editar:

Como você lê aquele que não está aberto à rede pública?

0.0.0.0 significa "todos os endereços IP na máquina local"

    
por nicolas 07.03.2016 / 15:26

1 resposta

1

Na terminologia IPv6, ::1 é o endereço de loopback (por exemplo, 127.0.0.1 na terminologia IPv4).

É essencialmente 0:0:0:0:0:0:0:1 (ou mais precisamente, mas desinteressante, 0000:0000:0000:0000:0000:0000:0000:0001 ) com todos os 0 reduzidos em ::1 . É funcionalmente equivalente ao IPv4 127.0.0.1 e desempenha o mesmo papel.

Portanto, na primeira saída, a linha tcp6 está escutando no endereço de loopback IPv6, não em todos os endereços e, portanto, não é visível externamente.

O segundo exemplo ( :::5901 ) mostra o endereço IPv6 não especificado :: , seguido por dois pontos adicionais e o número da porta. Isso é funcionalmente equivalente ao endereço IPv4 não especificado com porta em 0.0.0.0:5901 e, portanto, é aberto à rede em qualquer endereço IPv6.

    
por 07.03.2016 / 15:40