Mi affido al seguente script tunnel.sh
scritto da altri per mantenere in vita un tunnel 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
Per creare un tunnel SSH persistente, ho solo problema tunnel.sh
. Il tunnel non verrà chiuso fino a quando non emetterò di tunnel.sh
nuovo.
Mi chiedevo come posso verificare se il tunnel ssh è stato effettivamente creato con successo?
Il mio uso principale del tunnel è quello di stampare documenti su alcune stampanti nella stessa LAN del server e le stampanti sono accessibili solo dall'interno della LAN. Dopo aver creato un tunnel, ora la stampa non segnala alcun problema, ma poiché non ci sono fisicamente lì, non posso verificare se i documenti sono stati effettivamente stampati.
Ho pensato che da quando sono ora nella LAN grazie al tunnel, il mio IP esterno dovrebbe essere lo stesso di quello del server. Ma in realtà non sono gli stessi (li ho scoperti da wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
). Mi chiedo perché? Quando mi collego a un sito Web su Internet con il tunnel attivo, il server non è il punto intermedio tra me e il sito Web nella connessione, a causa del tunnel tra me e il server?