Jak zdefiniować serwer DNS w openvpn?


17

Instaluję serwer openvpn z kluczem statycznym (tryb certyfikatu nie jest użyteczny z powodu DPI w bramie krajowej), ale nie mogę pomyślnie zmienić DNS automatycznie po połączeniu. Szukałem przez Internet i SE i każdy sugeruje użycie dhcp-option.

Próbowałem dodać tę linię do client.ovpn

dhcp-option DNS 8.8.8.8

Brak efektu Próbowałem dodać tę linię do conf serwera

push "dhcp-option DNS 8.8.8.8"

Żadne nie ma żadnego efektu.

W rzeczywistości, zgodnie z instrukcją,

--dhcp-option typ [parm]

Ustaw rozszerzone właściwości TCP / IP TAP-Win32, należy używać z adaptacją --ip-win32 dynamic lub --ip-win32.

Ale moim klientem jest komputer Mac, serwer Linux. Jakieś rozwiązania tego problemu?


1
Powinieneś wspomnieć, jakiego klienta używasz na komputerze z systemem OSX.
FloHimself

2
@FloHimself: Standardowe narzędzie wiersza poleceń openvpn.
Siyuan Ren,

Odpowiedzi:



5

Nie jestem ekspertem, ale czytając manstronę poniżej twojego cytatu:

--dhcp-option typ [parm]

...

Zauważ, że jeśli opcja --dhcp zostanie przekazana przez --push do klienta innego niż Windows , opcja zostanie zapisana w środowisku klienta przed wywołaniem skryptu up, pod nazwą „opcja_obcowania” {n} ”.

i w opcji Foreign_option_ {n} :

Foreign_option_ {n}

Opcja przekazana przez --push do klienta, który nie obsługuje go natywnie, taka jak opcja --dhcp w systemie innym niż Windows , zostanie zapisana w tej sekwencji zmiennych środowiskowych przed wykonaniem skryptu --up .

Tak więc openvpnklient wiersza poleceń nie modyfikuje automatycznie konfiguracji DNS na komputerze OSX po ustanowieniu połączenia. Ale ponieważ opcje DNS są zapisywane w środowisku klienta, możesz określić skrypt, aby dołączyć wypychane serwery do bieżącej konfiguracji DNS systemu za pomocą --upopcji:

--up cmd

Uruchom polecenie cmd po pomyślnym otwarciu urządzenia TUN / TAP (zmiana UID użytkownika przed).

cmd składa się ze ścieżki do skryptu (lub programu wykonywalnego), opcjonalnie po nim argumenty. Ścieżka i argumenty mogą być jedno- lub podwójnie cytowane i / lub mogą być poprzedzane znakiem odwrotnym ukośnikiem i powinny być oddzielone jedną lub więcej spacjami.

Np. Tunnelblick robi to również przy użyciu tego skryptu .

Innym rozwiązaniem może być skrypt, który został opublikowany na liście mailingowej openvpn w DNS dla klientów OS X - Przewodnik definitywny .


Co z iPhone'em? Bez jailbreaka, wyobrażam sobie, że nie ma bash ani żadnego polecenia, aby automatycznie zmienić DNS.
Siyuan Ren,

@SiyuanRen Bez jailbrakowania prawdopodobnie nie używasz wiersza poleceń klienta openvpn z linii poleceń na iPhonie ...
FloHimself

Oficjalna aplikacja openvpn po prostu ładuje tekstowy plik konfiguracyjny i uruchamia go. Nie ma już żadnej funkcjonalności.
Siyuan Ren,

@SiyuanRen Cóż, oficjalna aplikacja openvpn nie jest omawianą tutaj aplikacją wiersza poleceń.
FloHimself

To jest jak hack. Kiedy łączę się za pomocą PPTP lub L2TP, w preferencjach sieci dostępny jest dedykowany interfejs z ich jedynym adresem IP i DNS. OpenVPN wymaga ode mnie zmiany ustawień DNS innych interfejsów?
Siyuan Ren,

4

Miałem ten sam problem z systemem operacyjnym Linux (serwer i klient) i rozwiązałem go, instalując dnsmasq na serwerze, którego brakowało

więc moje kroki:

apt-get install dnsmasq

w server.conf

push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"

I mogłem łączyć i przeglądać domeny za pomocą adresu IP serwera, łącząc się z NetWorkManager z zestawami DNS do automatycznego


-1

Dodaj to polecenie do pliku conf po stronie klienta.

# put actual dns name here
dhcp-option DNS 10.11.12.13 

Na pewno zadziała.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.