Eu perguntei anteriormente como configurar 2 túneis SSH usando um servidor intermediário para executar Remote Desktop através deles e eu consegui fazê-lo funcionar. Agora, estou tentando fazer o mesmo, usando as mesmas máquinas, mas na ordem inversa. Aqui está a configuração:
- PC com Windows 7 em uma rede privada, sentado atrás de um firewall.
- Servidor Linux de acesso público, que tem acesso ao PC.
- Laptop Windows 7, em casa, no qual desejo executar a Área de trabalho remota a partir do PC.
Eu uso Putty no laptop para criar um túnel reverso a partir dele para o servidor Linux: R60666 localhost:3389
.
Eu uso Putty no PC para criar um túnel regular a partir para o servidor Linux: L60666 localhost:60666
.
Eu SSH para o servidor Linux e executo telnet localhost 60666 e parece produzir a saída esperada, conforme descrito nas dicas de depuração que recebi aqui .
Eu tento ligar o Remote Desktop do PC para o laptop: localhost:60666
. Ele pede meu nome de usuário e senha, clico em OK e bloqueia minha sessão atual no laptop (para que eu veja a tela de boas-vindas no laptop em vez da área de trabalho), mostra a mensagem "Bem-vindo" na tela da Área de Trabalho Remota e depois apenas fica preto. Ele não é desconectado, não fornece nenhum erro e não consigo executar nenhuma ação na tela da Área de trabalho remota. Tentei a mesma configuração com um laptop com Windows XP e estou com os mesmos sintomas. Também tentei usar portas diferentes das 60666, mas nada mudou. Alguém tem alguma idéia do que estou fazendo de errado?
Atualização : Como apontado por @jwinders, não consigo executar telnet PC 3389
diretamente do servidor Linux. Como o Firewall do Windows possui uma regra para permitir todas as conexões na porta 3389, não faço ideia do que está bloqueando. Felizmente, sou capaz de criar um túnel SSH da máquina Linux para o PC ssh 3389:localhost:3389 'domain\user'@PC
.
fonte
Respostas:
Encontrei o mesmo problema de tela preta + desconexão hoje, usando a massa como meu cliente. Eu encontrei uma solução eventualmente.
Eu mudei de putty para bitvise tunnelier e configurei uma
S2C
conexão com as seguintes configurações:Por acaso, estou usando o servidor bitvise ssh no meu servidor, portanto essa pode ser apenas uma combinação feliz para dois produtos fabricados pelo mesmo fornecedor. Seria ótimo se isso resolver os problemas para os outros.
Para o registro, eu não sou afiliado a esses caras de forma alguma.
fonte
Não vejo nada de errado com seus túneis SSH. A conexão ao localhost: 60666 no PC deve terminar em localhost: 3389 no laptop. E o fato de você estar recebendo uma tela de login confirma essa avaliação.
Um pouco de pesquisa na tela em branco me leva a este artigo da base de conhecimento da Microsoft: http://support.microsoft.com/kb/555840 . Ele afirma que uma tela em branco pode devido a possíveis incompatibilidades de tamanho da MTU:
Dadas as quantidades razoáveis de saltos de rede, firewalls e o que você tem, é bem provável que a fragmentação de pacotes :) A maioria das máquinas Windows usa uma MTU de 1300 por padrão, enquanto a maioria das caixas Linux tem 1500 (o valor máximo permitido para a LAN, sem considerar os jumbo-frames) ) Você pode tentar reduzi-los para reduzir a fragmentação.
Veja também:
fonte
netsh interface ipv4 show subinterfaces
) eping linux_server -f -l 1472
é bem-sucedido nas duas máquinas. Apenas como teste, tentei configurar o MTU no PC para 1300, mas não ajudou. Eu também tentei mudar isso no laptop, bem como, mas sem sucesso :( Eu estou querendo saber se há alguma maneira "mais inteligente" para depurar este problema ...Uma VPN não seria mais apropriada? O OpenVPN é super simples de configurar. Aqui está um exemplo de configuração e alguns links para guiá-lo através do processo de criação do certificado.
Basta configurar o intermediário para ser o host, e os convidados podem discar e ainda se comunicar.
Em seguida, crie um novo arquivo
/etc/openvpn/client_server.conf
e coloque o seguinte, alterando oSERVER_IP_ADDRESS
conforme apropriadoEm seguida, crie uma chave por usuário que irá se conectar e crie o arquivo de configuração no diretório ccd
O endereço IP DEVE ser adequado para uma sub-rede / 30 (consulte http://www.subnet-calculator.com/cidr.php ), pois há apenas 2 endereços disponíveis (servidor e cliente) por conexão. Portanto, seu próximo IP do cliente disponível seria 192.168.100.6 e assim por diante.
Agora você tem IPs estáticos por usuário conectado.
Em seguida, forneça o
the [email protected]
arquivo ao usuário final e use o seguinte arquivo de configuraçãofonte
Se você estiver executando a sessão ssh na conta do usuário (usando um programa como o putty.exe), ao tentar fazer login via rdp, isso interromperá a conexão, causando a interrupção da sessão rdp. O que você precisa fazer é executar o túnel ssh como um serviço que não será interrompido.
fonte
Eu acho que você pode fazer todo o conf do seu laptop
configure uma conexão de massa para a caixa linux no seu laptop. em 'conexão'> 'SSH'> 'túneis', coloque 60666 no campo 'porta de origem' e verifique se o botão de opção Local está selecionado. no 'destino', digite win7-box-name-or-ip: 3389.
salve tudo isso e deverá permitir que você abra uma sessão de massa para linux-box que cria automaticamente um tráfego de encaminhamento de túnel para o host local (seu laptop): 60666 para win7: 3389
se você estiver fazendo isso na linha de comando, deve ser algo como
fonte
ssh 3389:localhost:3389 'domain\user'@PC
e depois fazertelnet localhost 3389
na caixa do Linux.Descobri que, a menos que todos os usuários estivessem desconectados completamente da máquina, eu obteria uma tela em branco após inserir credenciais. Portanto, sempre faça logoff.
fonte