OpenVPN客户端,强制使用DNS服务器


10

我们的Linux Ubuntu配置确实具有DNS服务器(绑定9)。
并且resolv.conf有它

  nameserver 127.0.0.1

openvpn在该Linux上使用客户端时,不会更改名称服务器(通过VPN服务器),但我想x.y.z.t通过更改openvpn客户端配置(仅在VPN会话期间)将其设置为另一台特定的DNS服务器。

然后,当openvpn会话结束时,名称服务器应返回到127.0.0.1

有没有一种“干净”的方法(即openvpn客户端配置文件中的一行)来做到这一点?

(注意:VPN服务器配置无法更改)

Answers:


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客户端配置文件中。

此Wiki上阅读以获取更多信息。


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解决方案更重要,而且更干净。
e2-e4 2014年

@ ring0我建议使用route-up而不是up最小化比赛条件。当up执行脚本时,连接尚未建立,你有没有机会询问你远程解析器正在设置。如果在连接设置无法完成的情况下启动OpenVPN客户端,则可能会使解析器长时间处于可能无法运行的状态。有关详细信息,请参见OpenVPN手册页中的“执行脚本顺序”部分。
the-wabbit

我做了一些测试,当到达“初始化序列完成”时,调用up脚本,而不是之前。顺便说一句,找不到那个男人的“ route-down”。
e2-e4 2014年

1

这是有用的信息,可以帮助我解决此问题。

我是Linux的主要用户,我看到的是,当Linux客户端与Access Server一起使用时,该客户端无法更改没有解决主机问题的客户端上的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

回声“ nameserver = wxyz”> /etc/resolv.conf
回声“ nameserver = 127.0.0.1” >> /etc/resolv.conf


2
这似乎是不精确的(想想DNS搜索路径以及VPN名称服务器的持久性),但是也不清楚您希望他将其放在何处。
Falcon Momot 2014年

“名称服务器”和IP之间应该有一个空格。
lorenzog
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.