Por que o ssh -g diz que o endereço já está em uso?

7

Eu configurei uma conexão SSH com o encaminhamento de porta que permite que hosts remotos se conectem a portas encaminhadas locais como esta:

ssh -g -L 5115:localhost:5115 <server>

A conexão funciona bem, embora eu receba esta mensagem de erro:

bind: Address already in use

Eu recebo esta mensagem não importando as portas que eu escolher. Eu estou querendo saber porque eu recebo esta mensagem mesmo que a conexão pareça funcionar perfeitamente. Estou fazendo algo errado?

    
por Curt 01.07.2014 / 19:40

2 respostas

2

O comando:

ssh -g -L 5115:localhost:5115 <server>

faria com que o processo local ssh fosse vinculado à porta 0.0.0.0 5115 para ouvir as conexões a serem encaminhadas. A mensagem de erro que você está recebendo indica que algum outro processo já está vinculado a esse endereço e porta, portanto, ssh não pode fazer isso.

Você deve poder verificar isso executando netstat:

netstat -an | grep 5115

Você pode ver uma linha como esta:

tcp4       0      0  *.22                   *.*                    LISTEN

"LISTEN" significa que algo está escutando conexões. " .22" é o endereço e porta; 0.0.0.0 ou "" significa "qualquer interface".

Suas opções aqui são encontrar o outro programa que está usando a porta 5115 e fazê-lo parar, ou então usar uma porta local diferente para o seu túnel ssh.

    
por 04.07.2014 / 14:04
2

Se você estiver executando o Linux, você pode fazer o aviso ir embora, executando isso (como root):

echo 1 > /proc/sys/net/ipv6/bindv6only

O que está acontecendo é que ssh está ligando um soquete PF_INET6 a [::]:5115 antes de ligar um soquete PF_INET a 0.0.0.0:5115 . O soquete PF_INET6 está vinculado a ambos os protocolos, portanto, a tentativa de vincular o segundo soquete falhará. Ativando bindv6only , você manterá as mãos do soquete PF_INET6 fora do endereço IPv4.

Uma maneira menos perturbadora de chegar lá é usar a forma de quatro argumentos de -L , onde você especifica o endereço de ligação explicitamente (use 0.0.0.0 ).

    
por 23.01.2015 / 23:03