SSH inverte o túnel para o contêiner do Docker

4

Eu preciso xdebugar algo que falha no servidor em um contêiner docker e do meu laptop eu executei ssh -R 9000:localhost:9000 server e verifiquei o encapsulamento em telnet localhost 9000 . Até aí tudo bem, eu tenho uma conexão.

Agora, no servidor que fiz

iptables -t nat -I PREROUTING -p tcp -d 172.17.42.1 --dport 9000 -j DNAT --to 127.0.0.1:9000 

Por fim, enviei a instância do docker problemático e executei

docker run  --net=host -t  -i snapshot /bin/bash

Dentro do contêiner, telnet 172.17.42.1 9000 recusa a conexão.

    
por chx 23.02.2015 / 01:04

2 respostas

3

Eu encontrei este mesmo problema, exceto que eu tinha dois containers conectados com --link, então --net = host não trabalharia para esse situtaiton.

Ao fazer uma porta ssh para o host remoto usando ssh -R 9000:localhost:9000 server , um lsof -P -i -n pode mostrar que a porta está ligada ao dispositivo loopback dos servidores, que se parece com isso:

sshd 39172 ubuntu 9u IPv4 2941407 0t0 TCP ::1:9000 (LISTEN)

Essa interface de loopback não está disponível para a rede dentro do contêiner docker. Eu remediei isso adicionando GatewayPorts yes ao arquivo sshd_config no servidor e reiniciando o sshd.

A porta encaminhada 9000 é então ligada à interface normal e disponível a partir do interior do contêiner docker. (e de qualquer outro host para esse assunto).

    
por 21.04.2015 / 15:33
0

O comentário do @barlop provou ser muito útil. Eu deletei a regra iptables, então eu tentei executar nc -l -p 1234 e, em seguida, nc -l 127.0.0.1 -p 1234 e, em seguida, no contêiner eu tentei telnet localhost 1234 e funcionou. Então eu tentei telnet localhost 9000 e também funcionou! Eu acho que não antes, mas parece que faz agora. Portanto, não há necessidade de regras de iptables, apenas funciona com --net=host . No entanto, lsof -i: 9000 ainda não exibe nada e é possível que eu só tenha testado com isso antes.

Editar: netstat -anl |grep :9000 no contêiner mostra a porta aberta como LISTEN. lsof não. Estranho.

    
por 23.02.2015 / 02:47