openvpn에서 DNS 서버를 정의하는 방법은 무엇입니까?


17

정적 키를 사용하여 openvpn 서버를 설정했지만 (국가 게이트웨이에서 DPI로 인해 인증 모드를 사용할 수 없음) 연결 후 DNS를 자동으로 변경할 수 없습니다. 나는 인터넷과 SE를 통해 검색했으며 모든 사람이 사용을 제안합니다.dhcp-option .

이 줄을 추가하려고했습니다. client.ovpn

dhcp-option DNS 8.8.8.8

효과가 없습니다. 서버 conf 에이 줄을 추가하려고했습니다.

push "dhcp-option DNS 8.8.8.8"

어느 것도 영향을 미치지 않습니다.

실제로 매뉴얼에 따르면

--dhcp 옵션 유형 [parm]

확장 TAP-Win32 TCP / IP 속성을 설정하고 --ip-win32 동적 또는 --ip-win32 적응 형과 함께 사용해야합니다.

그러나 내 클라이언트는 Mac 컴퓨터, 서버 Linux입니다. 문제에 대한 해결책이 있습니까?


1
OSX 시스템에서 어떤 클라이언트를 사용하고 있는지 언급해야합니다.
FloHimself

2
@FloHimself : 표준 명령 행 유틸리티 openvpn.
Siyuan Ren

답변:


7

Linux 시스템에서는 외부 스크립트를 실행해야합니다 .

설명서는 다음과 같습니다. https://wiki.archlinux.org/index.php/OpenVPN#DNS

스크립트는 여기 또는 최신 Linux 버전 에서 찾을 수 있으며 openvpn 클라이언트 구성 에서 스크립트 를 추가하여 호출 할 수 있습니다.

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

1
Linux 버전이 NetworkManager를 사용하는 경우 작업 할 변경 사항을nmcli 참조하십시오 .
palswim

5

나는 전문가가 아니지만 man견적 아래 의 페이지 를 읽습니다 .

--dhcp 옵션 유형 [parm]

...

--dhcp-option을 --push를 통해 Windows 이외의 클라이언트로 푸시 하는 경우 옵션은 "foreign_option_ {n}"이라는 이름으로 up 스크립트가 호출되기 전에 클라이언트 환경에 저장됩니다.

foreign_option_ {n} 아래 :

foreign_option_ {n}

Windows가 아닌 시스템에서 --dhcp-option 과 같이 기본적으로 지원하지 않는 클라이언트에 --push를 통해 푸시 된 옵션은 --up 스크립트 실행 전에이 환경 변수 시퀀스에 기록됩니다 .

따라서 명령 행 openvpn클라이언트는 연결을 설정 한 후 OSX 시스템에서 DNS 설정을 자동으로 수정하지 않습니다. 그러나 DNS 옵션은 클라이언트 환경에 저장되므로 다음 옵션을 사용하여 푸시 된 서버를 시스템의 현재 DNS 구성에 추가하는 스크립트를 지정할 수 있습니다 --up.

--up cmd

TUN / TAP 장치가 성공적으로 열린 후 cmd 명령을 실행하십시오 (사전 --user UID 변경).

cmd는 선택적으로 인수가 오는 스크립트 (또는 실행 프로그램) 경로로 구성됩니다. 경로 및 인수는 백 슬래시를 사용하여 작은 따옴표 또는 큰 따옴표로 묶거나 이스케이프 할 수 있으며 하나 이상의 공백으로 구분해야합니다.

예를 들어 Tunnelblick 은이 스크립트 를 사용하여이를 수행합니다. 합니다.

또 다른 해결책은 OS X 클라이언트 용 DNS 의 openvpn 메일 링리스트에 게시 된 스크립트 일 수도 있습니다 .


iPhone은 어떻습니까? 탈옥이 없으면 DNS를 자동으로 변경하는 bash 또는 명령이 없다고 생각합니다.
Siyuan Ren

@SiyuanRen 탈옥없이 당신은 아마 아이폰에서 명령 행 openvpn 클라이언트를 사용하지 않을 것입니다 ...
FloHimself

공식 openvpn 앱은 단순히 텍스트 구성 파일을로드하고 실행합니다. 더 이상 기능이 없습니다.
Siyuan Ren

@SiyuanRen 글쎄, 공식 openvpn 앱은 여기서 논의되는 명령 줄 응용 프로그램이 아닙니다.
FloHimself

이것은 해킹처럼 느껴집니다. PPTP 또는 L2TP에 연결하면 네트워크 환경 설정에 IP 및 DNS 만있는 전용 인터페이스가 제공됩니다. OpenVPN에서 다른 인터페이스 의 DNS 설정을 변경해야 합니까?
Siyuan Ren

4

Linux OS (서버 및 클라이언트)에서 동일한 문제가 있었고 누락 된 서버에 dnsmasq를 설치하는 것을 해결했습니다.

그래서 내 단계 :

apt-get install dnsmasq

server.conf에서

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

그리고 서버 IP를 통해 도메인을 연결하고 탐색 할 수 있으며 DNS가 설정된 NetWorkManager와 자동으로 연결됩니다.


-1

이 명령을 클라이언트 측 conf 파일에 추가하십시오.

# put actual dns name here
dhcp-option DNS 10.11.12.13 

확실히 작동합니다 ..

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.