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?