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

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

정적 키로 openvpn 서버를 설정했지만(국가 게이트웨이의 DPI로 인해 인증서 모드를 사용할 수 없음) 연결 후 DNS를 자동 변경할 수 없습니다. 인터넷과 SE에서 검색했는데 모두가 dhcp-option.

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

dhcp-option DNS 8.8.8.8

효과가 없습니다. 서버 구성에 이 줄을 추가해 보았습니다.

push "dhcp-option DNS 8.8.8.8"

둘 다 효과가 없습니다.

실제로 지시에 따르면,

--dhcp-옵션-유형 [매개변수]

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

하지만 내 클라이언트는 Mac이고 서버는 Linux입니다. 해결책이 있나요?

답변1

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

답변2

저는 전문가는 아니지만 man아래 인용된 페이지를 읽어보면 다음과 같습니다.

--dhcp-옵션-유형 [매개변수]

...

만약에 참고하세요--dhcp-option --push를 통해 Windows가 아닌 클라이언트에 푸시, 옵션은 up 스크립트를 호출하기 전에 "foreign_option_{n}"이라는 이름으로 클라이언트 환경에 저장됩니다.

그리고 아래해외 옵션_{n}:

해외 옵션_{n}

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

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

--위로 명령

TUN/TAP 장치를 성공적으로 연 후(사용자 UID를 변경하기 전) cmd 명령을 실행하십시오.

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

예를 들어터널 벽돌또한 이것을 활용하여 이것을 수행하십시오스크립트.

또 다른 해결책은 openvpn 메일링 리스트에 스크립트를 게시하는 것입니다.OS X 클라이언트용 DNS - 최종 가이드.

답변3

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를 통해 도메인에 연결하고 탐색할 수 있으며, NetWorkManager에 연결하고 DNS를 자동으로 설정할 수 있습니다.

답변4

클라이언트 conf 파일에 이 명령을 추가하세요.

# put actual dns name here
dhcp-option DNS 10.11.12.13 

반드시 성공할 것이다...

관련 정보