Ich kann mit meinem Heimcomputer A über SSH eine Verbindung zu einem Server B herstellen, auf dem der Zugriff auf das externe Netzwerk gesperrt ist. Mit anderen Worten, alle Anforderungen an das Internet von B werfen einen Fehler auf: Das Netzwerk ist nicht erreichbar . Kann ich alle diese Anforderungen umleiten, um sie über den Computer A weiterzuleiten, der über einen uneingeschränkten Zugang zum Internet verfügt?
Server B ist ein Server, der eine meiner Websites hostet. Ich möchte Dateien herunterladen, um Software zu installieren. Die Verbindung ist aber gesperrt. Ich war in der Lage , Dateien zu übertragen , aber es war kompliziert , weil die Software - Versionen unterschiedlich sind auf A und B , so die Abhängigkeiten wo anders und es benötigte andere Dateien auf A und B .
Ich habe im Internet gesucht und es scheint, dass ich einen Reverse-Tunnel brauche. Ich habe aber nur Lösungen gefunden, bei denen ein Port umgeleitet wird . Aber es ist nicht das, was ich brauche, da ich nicht möchte, dass B auf A zugreift, sondern auf das Internet.
Antworten:
Sie können einen Proxy auf Computer A ausführen, mit dem Computer B dann eine Verbindung herstellen würde, um über Computer A auf das Internet zuzugreifen.
Etwas wie das
Installieren Sie einen Proxy wie squid auf A, der auf Port 3128 lauscht, und dann können Sie mit diesem Befehl ssh auf den Server senden.
ssh -L 3128:127.0.0.1:3128 user@B
Dadurch kann B über A auf das Internet zugreifen
quelle
Fügen Sie einfach einige weitere und klare Schritte zu den Antworten von @Lawrence und @ SpiRail hinzu.
Führen Sie das Setup wie folgt aus:
Setup auf Host A:
yum install squid
http_access deny all
dannhttp_access allow all
in /etc/squid/squid.conf/etc/squid/squid.conf
wie folgt hinzu:Setup auf Host B:
source /etc/environment
Jetzt ist unser Setup abgeschlossen.
Erstellen eines SSH-Tunnels mit Remote-Portweiterleitung
Führen Sie den folgenden SSH-Befehl von Host A aus
ssh -R 3129:localhost:3128 user@HostB
Wenn Sie einen dauerhaften SSH-Tunnel erstellen möchten, können Sie autossh wie folgt verwenden:
autossh -M 20000 -f -NT -R 3129:localhost:3128 user@HostB
Damit der obige Befehl autossh funktioniert, sollten Sie SSH-Schlüssel von HostA auf HostB einrichten
Überprüfen Sie das Internet:
wget https://google.com
Verkehrsflussdiagramm :
quelle
@Lawrence 's Antwort war gut genug für mich, um alles zu erledigen. Aber hier sind die detaillierteren Schritte, die ich verwendet habe.
Ich habe dies für die Verwendung meines Laptops 4g Dongle verwendet, um das Internet zu einem Himbeer-Pi mit einer Festnetzverbindung zu einem WLAN-Router zu leiten.
Wenn Ihr Host ein Mac ist: Installieren Sie squidman http://squidman.net/squidman/
(Nicht nur generischer Tintenfisch, ich hatte zu viel Mühe, ihn zu erstellen.) Die Standardeinstellungen schienen mir gut genug zu sein.
connect to 4g connect to wifi - konfiguriere eine statische IP in deinem WLAN und entferne die Gateway-Adresse (es sei denn, du machst fortgeschrittene Dinge), sonst bekommst du zwei Standardrouten und es ist sehr ärgerlich. - Stellen Sie sicher, dass Ihr WLAN-Router nicht denselben Bereich wie 192.168.xy verwendet (konfigurieren Sie in diesem Fall ein anderes "x").
Auf dem PI
mit visudo füge den text hinzu:
Jetzt funktioniert wget und sudo apt-get, so dass Sie Pakete installieren können.
Wenn du auch Git willst, ist es hier: /programming/128035/how-do-i-pull-from-a-git-repository-through-an-http-proxy
quelle
visudo
hier? Wo fügen Sie den Text hinzu? (Ich kann nichtsudo
auf meinem Webhosting verwenden)