DNS funktioniert nicht in Bash (Ubuntu) unter Windows mit VPN

DNS funktioniert nicht in Bash (Ubuntu) unter Windows mit VPN

Ich habe gerade angefangen, „Bash unter Ubuntu unter Windows“ auszuprobieren, und es gefällt mir!

Das Problem ist nur, dass ich VPN verwenden muss, um auf unsere Backend- und Entwicklerserver zuzugreifen. Und wenn ich beispielsweise versuche, mit der Windows Bash-Shell per SSH auf unseren Entwicklungsserver zuzugreifen, kann der Hostname nicht aufgelöst werden.

Beachten Sie, dass ich mit der IP-Adresse SSH verwenden kann und diese Hostnamen auch anderswo in Windows einwandfrei funktionieren. Wie mit Putty, normaler Eingabeaufforderung, Datei-Explorer usw.

Ich habe auch /etc/resolv.conf überprüft und kann unseren Arbeits-Nameserver dort aufgelistet sehen.

Ab hier reichen meine Netzwerkkenntnisse nicht mehr aus, insbesondere mit Linux, also bitte helfen Sie mir :D

Antwort1

Es handelt sich um ein Routing-Problem und nicht um einen WSL-Fehler. Es ist sehr wahrscheinlich, dass Ihr lokales Subnetz mit dem Remote-Subnetz identisch ist. Und ich gehe davon aus, dass Sie das überbrückte VPN verwenden.

Ich bin auf dasselbe Problem gestoßen. Ich verwende OpenVPN, um mein Büro (remote) und mein Zuhause (lokal) zu verbinden. Die beiden Subnetze sind beide 192.168.1.0, das gängigste, das Sie auf vielen Routern finden würden.

Ich habe das Problem schließlich mit der folgenden Konfiguration gelöst. Mein Ziel ist es, Tun zu verwenden, um den Overhead zu reduzieren und den Datenverkehr nur dort umzuleiten, wo das Ziel im Büro ist. Dies würde jedoch auch mit dem überbrückten VPN funktionieren.

;make the dhcp-option works on Windows 10.
script-security 2
;do not accept any pushed route command.
route-nopull
;make sure the connection still go through my home router. This line may not be necessary. You can try to remove this line and see it the VPN works.
route 192.168.1.1 255.255.255.0 net_gateway
;redirect the traffic where the destination is within the 192.168.1.0 subnet to OpenVPN gateway.
route 192.168.1.128 255.255.255.128
route 192.168.1.0 255.255.255.128
;set the DNS server which is in the office
dhcp-option DNS 192.168.1.254
dhcp-option DNS 192.168.1.253
dhcp-option DOMAIN my.company.domain

Antwort2

Dies löst zwar nicht das Problem mit dem nicht funktionierenden DNS, stellt aber eine Problemumgehung dar, die den Anschein erweckt, als würde es funktionieren.

Sie können Ihre Hosts-Datei (unter /etc/hosts) bearbeiten und einen Eintrag für den Hostnamen hinzufügen, den Sie verwenden möchten.

Fügen Sie einen Eintrag hinzu, der die IP-Adresse gefolgt von einem Leerzeichen und dem Hostnamen enthält.

123.456.1.1 target.host.net

sudoBeachten Sie, dass Sie Ihren Bearbeitungsbefehl benötigen .sudo vi /etc/hosts

Bei mir bleibt die Bearbeitung über Bash-Shell-Sitzungen hinweg bestehen. Ich gehe davon aus, dass es sich um einen Fehler handelt, den Microsoft hoffentlich in Zukunft beheben wird. Im Moment verwende ich einfach diesen Workaround.

Antwort3

Ich habe das gleiche Problem. Ich habe /etc/resolv.conf vorübergehend mit nur einem Nameserver und einer Suchdomäne (für das VPN-Netzwerk) bearbeitet und es hat Hostnamen in diesem Netzwerk aufgelöst. Diese Änderung ist nicht dauerhaft, daher werden durch Beenden und Neustarten von Bash unter Ubuntu unter Windows die Standardeinstellungen von /etc/resolv.conf wiederhergestellt.

verwandte Informationen