Confio no seguinte script tunnel.sh
escrito por outras pessoas para manter vivo um túnel ssh:
#!/bin/bash
export SSH_HOST=tim@server
if [ ! -f /tmp/.tunnel ]
then
echo "Creat SSH tunnel"
ssh -f -D 9999 $SSH_HOST "if [ -f ~/.tunnel ]; then rm ~/.tunnel; fi; while [ ! -f ~/.tunnel ]; do echo > /dev/null; done" &
touch /tmp/.tunnel
else
echo "Close SSH tunnel"
ssh $SSH_HOST "touch ~/.tunnel"
rm /tmp/.tunnel
fi
exit
Para criar um túnel ssh persistente, eu apenas emito tunnel.sh
. O túnel não será fechado até eu emitir tunnel.sh
novamente.
Eu queria saber como posso verificar se o túnel ssh é realmente criado com sucesso?
Meu principal uso do túnel é imprimir documentos em algumas impressoras na mesma LAN que o servidor, e as impressoras só podem ser acessadas de dentro da LAN. Depois de criar um túnel, agora a impressão não apresenta nenhum problema, mas como não estou lá fisicamente, não consigo verificar se os documentos foram realmente impressos.
Pensei que, agora que estou na LAN, graças ao túnel, meu IP externo deve ser o mesmo do servidor. Mas, na verdade, eles não são os mesmos (eu os descobri por wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
). Eu quero saber porque? Quando eu me conecto a algum site da Internet com o túnel ativo, o servidor não é o ponto intermediário entre mim e o site da Internet na conexão, devido ao túnel entre mim e o servidor?
fonte
No meu caso (Google Chrome no Ubuntu 14.10), meu endereço externo muda, pelo menos no navegador. Apenas google "Qual é o meu endereço IP?" com e sem a conexão proxy.
Além disso, depois de configurar o proxy, tente destruir o túnel e veja se você ainda pode obter tráfego. Quando faço isso, o chrome retorna um erro "Não foi possível conectar-se ao servidor proxy".
Outra maneira: após o tunelamento para o host remoto, crie uma nova sessão ssh e execute
tcpdump -A dst port 80
. Em seguida, navegue para alguma página e você verá o tráfego relacionado no terminal.fonte