Ich verwende Ubuntu Xenial 16.04
Wir verwenden openvpn, um eine Verbindung zu einer virtuellen privaten Cloud herzustellen. Diese Cloud verfügt über einen eigenen DNS-Server (ebenso wie unsere lokale Route - zu Hause oder im Büro).
Wenn ich eine Verbindung zum VPN herstelle, sind alle IPs in diesem Netzwerk verfügbar, aber ich kann keine über den Hostnamen erreichen. Der Grund ist einfach: In der Datei resolv.conf wird weiterhin mein lokaler Office-Nameserver angezeigt. Wenn ich die resolv.conf manuell überschreibe, um den richtigen Nameserver zu haben, ist alles in Ordnung.
Wie kann ich es also dazu bringen, resolv.conf beim Herstellen einer Verbindung zum VPN automatisch neu zu konfigurieren?
Kann ich mich an ein Systemereignis anschließen und ein Skript ausführen?
--register-dns
Option ausprobiert ? Alternativ gibt es clientseitige Optionen, die Sie als DHCP-Optionen festlegen können (die Kehrseite der Anweisungen hier openvpn.net/index.php/open-source/documentation/howto.html#dhcp )Antworten:
Das OpenVPN-Paket enthält hierfür ein Skript
/etc/openvpn/update-resolv-conf
. Sie müssen es konfigurieren mit:Dadurch werden die DNS-Serveradressen aus den
dhcp-option DNS
vom OpenVPN-Peer / Server übergebenen Optionen abgerufen und entsprechend konfiguriertresolvconf
. Es gehtdhcp-option DOMAIN
auch.Es ist jedoch nicht perfekt, da dadurch diese Nameserver der Liste der vorhandenen Nameserver vorangestellt werden, anstatt die Liste der Nameserver zu überschreiben. Wenn Sie
openresolv
das-x
verwenden, können Sie die DNS-Konfiguration überschreiben, anstatt sie vorzugeben.Wenn Sie verwenden
systemd-resolved
, können Sie anstelle von "/etc/openvpn/update-systemd-resolved
which"systemd-revolved
verwendenresolvconf
.Unter Debian befindet sich dieses Skript in der
openvpn-systemd-resolved
.quelle
script-security 2
Ihreopenvpn
mit--script-security 2
Hier ist die Lösung, die ich mir ausgedacht habe: Es gibt einen Schalter, mit dem Sie ein Skript ausführen können, wenn der Tunnel in Betrieb ist. Ich benutze den Schalter, um die resolv.conf-Datei im Wesentlichen mit einer Datei zu überschreiben, von der ich weiß, dass sie korrekt ist. Es ist ein totaler Hack, ich weiß.
das Skript (reset-dns):
Außerdem sagen diejenigen: "OMG! Sie betreiben diesen Tunnel als Root!" Es wird nicht anders laufen; noch vor meinem DNS-Hack.
Ich bin definitiv offen für einen besseren Weg. Der Netzwerkmanager für Ubuntu funktioniert einfach nicht. Ich habe diesbezüglich wiederholt Tickets für Ubuntu gekürzt
quelle