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?
quelle
In meinem Fall (Google Chrome unter Ubuntu 14.10) ändert sich meine externe Adresse zumindest im Browser. Google einfach "Was ist meine IP-Adresse?" mit und ohne Proxy-Verbindung.
Versuchen Sie außerdem, den Tunnel zu zerstören, nachdem Sie den Proxy eingerichtet haben, und prüfen Sie, ob Sie weiterhin Datenverkehr erhalten. Wenn ich das tue, gibt Chrome den Fehler "Verbindung zum Proxy-Server nicht möglich" zurück.
Eine andere Möglichkeit: Erstellen Sie nach dem Tunneling zum Remote-Host eine neue SSH-Sitzung und führen Sie sie aus
tcpdump -A dst port 80
. Navigieren Sie dann zu einer Seite, und Sie sollten den entsprechenden Datenverkehr im Terminal sehen.quelle