Ustawianie serwerów DNS przy użyciu pliku konfiguracyjnego klienta OpenVPN

16

Jak mogę ustawić serwery DNS na kliencie, używając tylko konfiguracji klienta. Mój klient jest komputerem z systemem Windows i chcę zmienić serwery DNS, gdy klient się łączy, i powrócić do pierwotnej konfiguracji po odłączeniu od sieci VPN.

Wszystkie informacje, które znalazłem do tej pory, dotyczą przekazywania konfiguracji DNS klientowi przy użyciu konfiguracji serwera, ale w tym przypadku nie mogę zmienić konfiguracji serwera i obecnie robię to ręcznie za każdym razem, gdy łączę się z VPN. Świetna byłaby opcja konfiguracji openvpn do ustawiania serwerów DNS maszyn lokalnych na czas trwania połączenia.

Fahad Yousuf
źródło

Odpowiedzi:

3

Aby to zrobić, możesz użyć skryptu wsadowego, podobnie jak poniżej. Zakłada się, że twoje domowe serwery DNS to 1.1.1.1 i 2.2.2.2, a twoje serwery DNS VPN to 8.8.8.8 9.9.9.9:

vpn-connect.bat:

netsh interface ip set dns "Local Area Connection" static 8.8.8.8

netsh interface ip add dns "Local Area Connection" 9.9.9.9

vpn -connect.bat

netsh interface ip set dns "Local Area Connection" static 1.1.1.1

netsh interface ip add dns "Local Area Connection" 2.2.2.2

Zamierzałem uwzględnić w tych skryptach metody łączenia i rozłączania, jednak nie widzę w OpenVPN opcji rozłączania za pomocą wiersza poleceń. Jeśli chcesz zautomatyzować połączenie, powinno to działać:

C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn

Andrew White
źródło
15

Możesz dodać następujące elementy do pliku konfiguracyjnego klienta.

dhcp-option DNS <dns_server_ip_address>

Po stronie serwera byłoby to:

push "dhcp-option DNS <dns_server_ip_address>"

Wygląda na to, że używa dhcp-optionobu stron. Możesz zrobić to samo z route.

brunoqc
źródło
4
Nie działało to dla mnie, choć wydaje się, że powinno. Opcji nie ma w wygenerowanym client.ovpn. Gdy go dodam, nadal nie działa. Działa z Asus RT-N66U z fabrycznym oprogramowaniem 3.0.0.4.376_3861
Shea,
2
Dodałem to do mojego pliku .ovpn tuż przed znacznikiem <ca> i zadziałało wspaniale! Dziękuję Ci! Przetestowałem to na moim komputerze z systemem Windows z OpenVPN 2.4.4 Windows wersja 6.2
Michael Kargl
6

Najwyraźniej istnieje problem z wadliwym porządkiem wiązania w systemie Windows, przynajmniej w Windows 2000 / XP / 7. Spowoduje to, że klienci Windows OpenVPN będą używać domyślnych ustawień DNS karty sieciowej zamiast ustawień adaptera VPN.

Aby to naprawić, umieść urządzenie VPN TUN lub TAP nad kartą sieci lokalnej w kolejności łączenia:

  1. Zidentyfikuj swoje urządzenie VPN, patrząc na dane wyjściowe z ipconfig. Dla mnie było to „Połączenie lokalne 2”. Zapamiętaj adres IP tego adaptera.
  2. Otwórz regedit.exe i znajdź klucz, pod HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacesktórym pasuje adres IP karty VPN. Zapamiętaj identyfikator GUID tego adaptera.
  3. Idź do HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkagei kliknij dwukrotnie Bind. Będzie zawierać listę identyfikatorów GUID adapterów. Wytnij i wklej linię odpowiadającą identyfikatorowi GUID urządzenia VPN na górę listy i zapisz listę.

Spowoduje to użycie wpisów DNS dla urządzenia VPN (i tylko wtedy, gdy połączenie VPN jest aktywne). Możesz ustawić je zgodnie z odpowiedzią @brunoqc. W tym momencie prawdopodobnie powinieneś również dodać opcję openvpn block-outside-dns, aby upewnić się, że zapytania DNS nie przeciekają.

Ta odpowiedź oparta jest na tym bardzo przydatnym wpisie na blogu .

jtbr
źródło
To działało całkiem dobrze! Dziękuję panu za napisanie tego przewodnika
SeriousM
3

Oprócz jednego z dwóch poniższych:

dhcp-option DNS <dns_server_ip_address>          (add to client config)

lub

push "dhcp-option DNS <dns_server_ip_address>"   (add to server config)

Dodaj je również do konfiguracji klienta, aby zmusić system Windows do używania skonfigurowanego DNS:

register-dns
block-outside-dns

Pierwszy zmusza system Windows do preferowania skonfigurowanego serwera DNS niż jakiegokolwiek innego, który mógł otrzymać z DHCP. Drugi zapobiega wyciekom DNS do dowolnego serwera DNS innego niż skonfigurowany.

Duke Nukem
źródło