Nasza konfiguracja Linux Ubuntu ma serwer DNS (Bind 9).
I resolv.conf
ma swoje
nameserver 127.0.0.1
Podczas używania openvpn
klienta w tym systemie Linux serwer nazw nie jest zmieniany (przez serwer VPN), ale chciałbym ustawić go - tylko podczas sesji VPN - na inny określony serwer DNS x.y.z.t
, zmieniając konfigurację klienta openvpn.
Następnie, po zakończeniu openvpn
sesji, serwer nazw powinien powrócić do 127.0.0.1
.
Czy istnieje „czysty” sposób (tj. Wiersz w pliku konfiguracyjnym klienta openvpn), aby to zrobić?
(Uwaga: konfiguracji serwera VPN nie można zmienić)
openvpn
dns-server
clients
e2-e4
źródło
źródło
/usr/share/openvpn/update-resolv-conf
, można go wstępnie zainstalować pod adresem/etc/openvpn/update-resolv-conf
.2.4.6
i została dla mnie zainstalowanaZastanów się nad użyciem
route-up
/route-down
skryptów na swoim kliencie, aby zmienić konfigurację konfiguracji połączenia według własnego uznania. Zobacz dokumentację OpenVPN na temat szczegółów, jak to skonfigurować i jakich zmiennych możesz użyć w tych skryptach.źródło
route-up
zamiastup
minimalizować warunki wyścigu. Po uruchomieniuup
skryptu połączenie nie zostało jeszcze skonfigurowane i nie ma możliwości zapytania do ustawionego zdalnego resolvera. Jeśli uruchomisz klienta OpenVPN w sytuacji, w której konfiguracja połączenia nie zostanie zakończona, przełączasz swój resolver w stan prawdopodobnie niefunkcjonalny na dłuższy okres czasu. Szczegółowe informacje można znaleźć w sekcji „Skrypt kolejności wykonywania” na stronie podręcznika OpenVPN .To była przydatna informacja, która pomogła mi rozwiązać ten problem.
Jestem użytkownikiem arch. Linuxa i zobaczyłem, że kiedy klient Linux jest używany z Access Server, ten nie jest w stanie zmienić ustawień DNS na tym kliencie, nie rozwiązując hosta, ponieważ stoi on na dokumentacji OPEN VPN
Stworzyłem skrypt, który rozwiązuje problem i za pomocą kilku dodatkowych parametrów obsługuje połączenia openvpn za pośrednictwem wiersza poleceń.
https://gist.github.com/android10/ee5c3e93dbcf9b7b31e6ee768cbfd477
Oto główne polecenie wykonywane dla połączenia:
Wszelkie opinie są mile widziane.
źródło
echo "nameserver = wxyz"> /etc/resolv.conf
echo "nameserver = 127.0.0.1" >> /etc/resolv.conf
źródło