Se você verificar a página man do ssh, verá que a sintaxe para -R
é:
-R [bind_address:]port:host:hostport
Quando bind_address
é omitido (como no seu exemplo), a porta é ligada apenas na interface de loopback. Para torná-lo vinculado a todas as interfaces, use
ssh -R \*:8080:localhost:80 -N [email protected]
ou
ssh -R 0.0.0.0:8080:localhost:80 -N [email protected]
ou
ssh -R "[::]:8080:localhost:80" -N [email protected]
A primeira versão se liga a todas as interfaces individualmente. A segunda versão cria uma ligação geral somente IPv4, o que significa que a porta está acessível em todas as interfaces via IPv4. A terceira versão é provavelmente tecnicamente equivalente à primeira, mas novamente cria apenas uma ligação para ::
, o que significa que a porta é acessível via IPv6 nativamente e via IPv4 através de Endereços IPv6 mapeados para IPv4 (não funciona no Windows, OpenBSD). (Você precisa das aspas porque [::]
poderia ser interpretado como um glob caso contrário.)
Observe que se você usar o servidor OpenSSH sshd
, a opção GatewayPorts
do servidor precisa ser ativada (definida como yes
ou clientspecified
) para que isso funcione (verifique o arquivo /etc/ssh/sshd_config
no servidor). Caso contrário (o valor padrão para essa opção é no
), o servidor sempre forçará a porta a ser ligada apenas na interface de loopback.