Confío en el siguiente script tunnel.sh
escrito por otros para mantener vivo un 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 crear un túnel ssh persistente, solo publico tunnel.sh
. El túnel no se cerrará hasta que tunnel.sh
vuelva a emitir .
Me preguntaba cómo puedo verificar si el túnel ssh se creó con éxito.
Mi uso principal del túnel es imprimir documentos en algunas impresoras en la misma LAN que el servidor, y solo se puede acceder a las impresoras desde la LAN. Después de crear un túnel, ahora la impresión no informa ningún problema, pero como no estoy físicamente allí, no puedo verificar si los documentos se han impreso realmente.
Pensé que ya que ahora estoy en la LAN gracias al túnel, mi IP externa debería ser la misma que la del servidor. Pero en realidad no son lo mismo (los descubrí wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
). ¿Me pregunto porque? Cuando me conecto a algún sitio web en Internet con el túnel vivo, ¿no es el servidor el punto medio entre mí y el sitio web de Internet en la conexión, debido al túnel entre mí y el servidor?