OpenVPN 클라이언트, 강제 DNS 서버


10

Linux Ubuntu 구성에는 DNS 서버 (Bind 9)가 있습니다.
그리고 resolv.conf

  nameserver 127.0.0.1

openvpn해당 Linux에서 클라이언트를 사용할 때 이름 서버 는 (VPN 서버에 의해) 변경되지 않지만 x.y.z.topenvpn 클라이언트 구성을 변경하여 VPN 세션 중에 만 다른 특정 DNS 서버로 설정하고 싶습니다 .

그런 다음 openvpn세션이 끝나면 nameserver 는로 돌아와야합니다 127.0.0.1.

그렇게하는 "깨끗한"방법 (예 : openvpn 클라이언트 구성 파일의 줄)이 있습니까?

(참고 : VPN 서버 구성은 변경할 수 없습니다)

답변:


17

더 많은 인터넷 검색 후 누군가를 도울 수 있다면 아래의 답변을 찾을 수 있습니다.

  • 구성 파일을 저장하고 복원 할 수있는 resolvconf 설치resolv.conf
  • openvpn 에서 실행할 스크립트를 추가합니다 ( /usr/share/openvpn이름이) update-resolv-conf. 스크립트는 새로운 것 resolv.conf및 복원 방법을 결정 합니다 (아래 링크 참조).
  • 더하다

이 라인들

  script-security 2
  up /usr/share/openvpn/update-resolv-conf
  down /usr/share/openvpn/update-resolv-conf

openvpn 클라이언트 구성 파일에서.

자세한 내용 은 이 위키 를 참조하십시오.


6
최신 OpenVPN 설치에는이 스크립트가 설치와 함께 포함됩니다. 에서 수동으로 다운로드하여 설치하는 대신에서 /usr/share/openvpn/update-resolv-conf사전 설치 한 것을 찾을 수 있습니다 /etc/openvpn/update-resolv-conf.
Nate Lampton

어떤 버전의 OpenVPN이이 파일을 포함시키기 시작 했습니까?
lanoxx

1
여기 파티에 조금 늦었지만 사용 2.4.6하고 있으며 나를 위해 설치되었습니다
Roshan Bhumbra

1

클라이언트에서 route-up/ route-down스크립트를 사용하여 연결 설정에서 구성을 변경하는 것이 좋습니다. 이를 설정하는 방법과이 스크립트에서 사용할 수있는 변수에 대한 자세한 내용은 OpenVPN 문서 를 참조하십시오 .


+1, 흥미롭고 유용합니다. resolvconf를 통해 용액을 다운 (DEP 위 또는 아래.이 평가에 ..) 청소기 IMO 그러나 더 지점이고.
e2-e4

@ ring0 경쟁 조건을 최소화하기 위해 route-up대신 사용하는 것이 좋습니다 up. up스크립트가 실행될 때 연결이 아직 설정되지 않았으며 설정중인 원격 리졸버를 쿼리 할 기회가 없습니다. 연결 설정이 완료되지 않은 상황에서 OpenVPN 클라이언트를 시작하면 오랫동안 리졸버가 작동하지 않는 상태가됩니다. 자세한 내용은 OpenVPN 매뉴얼 페이지 의 "스크립트 실행 순서"섹션을 참조 하십시오.
the-wabbit

나는 몇 가지 검사를했다, 그리고 최대의 스크립트는 "초기화 순서가 완료"하지 전에 도달 할 때 바로 호출된다. Btw는 남자에서 "경로"를 찾을 수 없습니다.
e2-e4

1

이 문제를 해결하는 데 도움이되는 유용한 정보입니다.

나는 아치 리눅스 사용자와 I 톱이 리눅스 클라이언트 액세스 서버와 함께 사용하는 경우,이 하나는이 약자로 호스트를 해결하지 질문에서 클라이언트의 DNS 설정을 변경 할 수 없다는 무엇이야 OPEN VPN 문서

문제를 해결하는 스크립트를 만들었고 몇 가지 추가 매개 변수를 사용하여 명령 줄을 통해 openvpn 연결을 처리합니다.

https://gist.github.com/android10/ee5c3e93dbcf9b7b31e6ee768cbfd477

연결을 위해 실행되는 주요 명령은 다음과 같습니다.

  nohup openvpn --config $OVPN_FILE_PATH --askpass $OVPN_PRIVATE_KEY_FILE_PATH \
  --script-security 2 \
  --setenv PATH '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
  --up /etc/openvpn/scripts/update-systemd-resolved \
  --down /etc/openvpn/scripts/update-systemd-resolved \
  --down-pre \
  &>/dev/null &

모든 의견에 감사드립니다.


-2

echo "nameserver = wxyz"> /etc/resolv.conf
echo "nameserver = 127.0.0.1">> /etc/resolv.conf


2
DNS 검색 경로와 VPN 네임 서버의 지속성을 생각하면 정확하지 않은 것처럼 보이지만 어디에서 이것을 넣을 지 확실하지 않습니다.
Falcon Momot

'nameserver'와 IP 사이에 공백이 있어야합니다.
lorenzog 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.