
Ich habe einen SSH-Tunnel in definiert /etc/ssh/ssh_config
. Er enthält:
LocalForward 0.0.0.0:8000 some-service:80
LocalForward 0.0.0.0:8001 some-other-service:80
Ich möchte weiterhin über die ursprünglichen DNS-Namen auf die Tunnel zugreifen können ( curl some-service
sollte z. B. weiterhin funktionieren, anstatt verwenden zu müssen curl 0.0.0.0:8000
)
Um dies zu tun, habe ich meiner Datei Folgendes hinzugefügt /etc/hosts
:
127.0.0.2 some-service
127.0.0.3 some-other-service
Jetzt brauche ich glaube ich ein paar iptables
Befehle, die Folgendes bewirken:
When I see a request to 127.0.0.2:80 I should proxy it to 127.0.0.1:8000
When I see a request to 127.0.0.3:80 I should proxy it to 127.0.0.0:8001
Somit würde (via ) curl some-service
aufgelöst , was wiederum zu (via ) weitergeleitet würde, was wiederum (via den SSH-Tunnel) erreichen würde.127.0.0.2
/etc/hosts
127.0.0.1:8000
iptables
some-service:80
Frage: Ich denke, es müsste einen einfacheren Weg geben, dies zu erreichen. Wenn nicht, wie würden die iptables
Befehle aussehen?
Antwort1
Verwenden Sie diessh
Dynamisch vorwärtsOption zum Einrichten eines Socks-Proxys, indem Sie Folgendes zu Ihrem hinzufügen .ssh/config
:
DynamicForward localhost:8000
Dann sagen Sie curl, dass es SOCKS verwenden soll:
curl --socks5 localhost:8000 ...
Es gibt noch weitere Möglichkeiten, curl
SOCKS zu nutzen. Weitere Informationen finden Sie in derDokumentation.
Antwort2
Ich bin mir nicht sicher, was hier die richtige Etikette ist (Frage schließen? Als Duplikat markieren?), aber ich habe hier eine akzeptierte Antwort auf diese Frage:
https://serverfault.com/questions/982063/transparent-ssh-tunneling