Ich verlasse mich auf das folgende Skript, tunnel.sh
das von anderen geschrieben wurde, um einen SSH-Tunnel am Leben zu erhalten:
#!/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
Um einen persistenten SSH-Tunnel zu erstellen, stelle ich nur eine Frage tunnel.sh
. Der Tunnel wird nicht geschlossen, bis ich tunnel.sh
wieder erteile .
Ich habe mich gefragt, wie ich überprüfen kann, ob der SSH-Tunnel tatsächlich erfolgreich erstellt wurde.
Der Tunnel wird hauptsächlich zum Drucken von Dokumenten auf einigen Druckern im selben LAN wie der Server verwendet. Auf die Drucker kann nur über das LAN zugegriffen werden. Nach dem Erstellen eines Tunnels gibt es beim Drucken keine Probleme. Da ich jedoch physisch nicht anwesend bin, kann ich nicht überprüfen, ob die Dokumente tatsächlich gedruckt wurden.
Ich dachte, da ich jetzt dank des Tunnels im LAN bin, sollte meine externe IP die gleiche sein wie die des Servers. Aber eigentlich sind sie nicht dasselbe (ich habe sie durch herausgefunden wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
). Ich wundere mich warum? Wenn ich mit dem Tunnel eine Verbindung zu einer Website im Internet herstelle, ist der Server aufgrund des Tunnels zwischen mir und dem Server nicht der Mittelpunkt zwischen mir und der Internet-Website in der Verbindung?