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?
fuente
En mi caso (Google Chrome en Ubuntu 14.10), mi dirección externa cambia, al menos dentro del navegador. Solo google "¿Cuál es mi dirección IP?" con y sin conexión proxy.
Además, después de configurar el proxy, intente destruir el túnel y vea si aún puede obtener tráfico. Cuando hago esto, Chrome devuelve un error "No se puede conectar al servidor proxy".
Otra forma: después de hacer un túnel hacia el host remoto, cree una nueva sesión ssh y ejecútela
tcpdump -A dst port 80
. Luego navegue a alguna página y debería ver el tráfico relacionado en la terminal.fuente