답변:
배치 스크립트를 사용하여 다음과 같은 작업을 수행 할 수 있습니다. 가정 DNS 서버는 1.1.1.1 및 2.2.2.2이고 VPN DNS 서버는 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-disconnect.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
이 스크립트에는 연결 및 연결 해제 방법을 포함하려고했지만 OpenVPN에는 명령 줄을 통해 연결을 끊는 옵션이 표시되지 않습니다. 연결을 자동화하려면 다음과 같이하십시오.
C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn
클라이언트 구성 파일에 다음을 추가 할 수 있습니다.
dhcp-option DNS <dns_server_ip_address>
서버 측에서는 다음과 같습니다.
push "dhcp-option DNS <dns_server_ip_address>"
dhcp-option
양쪽 에서 사용 하고있는 것 같습니다 . 당신도 같은 작업을 수행 할 수 있습니다 route
.
Windows에서 적어도 Windows 2000 / XP / 7을 포함하여 잘못된 바인딩 순서에 문제가있는 것 같습니다. 이로 인해 Windows OpenVPN 클라이언트는 VPN 어댑터 설정 대신 기본 네트워크 어댑터의 DNS 설정을 사용하게됩니다.
이 문제를 해결하려면 VPN TUN 또는 TAP 장치를 로컬 네트워크 어댑터 위에 바인드 순서로 배치해야합니다.
ipconfig
. 저에게는 이것이 "로컬 영역 연결 2"였습니다. 이 어댑터의 IP 주소를 기억하십시오.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
VPN 어댑터의 IP 주소와 일치 하는 키를 찾으십시오 . 이 어댑터의 GUID를 기억하십시오.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage
두 번 클릭하십시오 Bind
. 여기에는 어댑터의 GUID 목록이 포함됩니다. VPN 장치의 GUID에 해당하는 줄을 잘라내어 목록의 맨 위에 붙여넣고 목록을 저장하십시오.VPN 장치의 DNS 항목이 사용됩니다 (VPN 연결이 활성화 된 동안에 만). @brunoqc의 답변에 따라 설정할 수 있습니다. 이 과정에서 block-outside-dns
DNS 쿼리가 유출되지 않도록 openvpn 옵션을 추가해야합니다 .
이 답변은 매우 유용한 블로그 게시물을 기반으로 합니다 .
아래 두 가지 중 하나에 추가 :
dhcp-option DNS <dns_server_ip_address> (add to client config)
또는
push "dhcp-option DNS <dns_server_ip_address>" (add to server config)
Windows가 구성된 DNS를 사용하도록하려면 클라이언트 구성에도이를 추가하십시오.
register-dns
block-outside-dns
첫 번째는 Windows가 DHCP에서받은 다른 DNS 서버보다 구성된 DNS 서버를 선호하도록합니다. 두 번째는 구성된 서버 이외의 다른 DNS 서버로의 DNS 유출을 방지합니다.