
Ich bin neu im Netzwerk und weiß nicht, wie ich die Konfiguration richtig vornehme.
Ich kann den Server anpingen
ping -I 192.168.42.1 42.112.178.185
aber ich konnte nicht pingen
ping 42.112.178.185
42.112.178.185 erlaubt nur die Akzeptanz für 192.168.42.0/24.
Wie kann ich eine Routentabelle hinzufügen? Ich würde gerne verwenden
ping 42.112.178.185
Anstatt
ping -I 192.168.42.1 42.112.178.185
Ich versuche anzurufenhttp://42.112.178.185mit curl und muss von 192.168.42.1 geroutet werden.
Antwort1
AKTUALISIERENWie gewünscht gibt es hier eine Lösung für das konkrete Problem: Lassen Sie beim Verbinden die richtige Quell-IP verwenden, indem Sie ihr mit der Option „Vor dem Verbinden“ curl
mitteilen, dass sie sich daran binden soll .--interface
Von demcurl-Manpage:
--Schnittstelle
Führen Sie einen Vorgang über eine angegebene Schnittstelle aus. Sie können den Schnittstellennamen, die IP-Adresse oder den Hostnamen eingeben.
Das Problem kann also gelöst werden, indem Sie einfach diesen curl
Befehl verwenden, um 42.112.178.185 mit der richtigen IP zu erreichen:
curl --interface 192.168.42.1 http://42.112.178.185/
Natürlich können Sie auch die Schnittstelle vorgeben.
Ich lasse die Routing-Lösung trotzdem unten stehen, falls sie jemandem helfen kann.
Tatsächlich kann eine Route hinzugefügt werden, die anweist, beim Erreichen des Ziels eine andere Quell-IP als die Standard-IP (die zum Netzwerk des Gateways gehört) zu verwenden.
Hinweis: Da einige erforderliche Informationen nicht angegeben wurden: die IP des Standard-Gateways und die Schnittstelle, um es zu erreichen, sind einige zusätzliche Skripte erforderlich, um den Wert herauszufinden. Da es außerdem einen Tunnel geben könnte, der die Standardroute möglicherweise nicht ersetzt hat, sondern zwei „halbe Standardrouten“ 0.0.0.0/1 und 128.0.0.0/1 hinzugefügt hat, werde ich die Route zu 42.112.178.185 abrufen, um den richtigen Wert zu erhalten.
Weisen wir also die GW-IP zu gw
:
gw=$(ip -o route get 42.112.178.185 | sed -n 's/^.* via \([^ ][^ ]*\) *.*$/\1/p')
Hier ist der einfache Routing-Befehl:
ip route add 42.112.178.185 src 192.168.42.1 via $gw
Wenn das Gateway beispielsweise 10.0.8.1 wäre und die angebliche IP von Ubuntus tun0 10.0.8.2 wäre, würde vor der Änderung eine Abfrage der Route zu 42.112.178.185 Folgendes ergeben:
# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 10.0.8.2
cache
Nach der Änderung würde das lauten:
# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 192.168.42.1
cache
Der ip route
Befehl kann so geändert werden, dass er mehr als nur diese eine IP beeinflusst. Was dabei zu tun ist, hängt jedoch von den anderen bereits vorhandenen Routen ab.