首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ubuntu20.04上使用OpenVPN的DNS问题

Ubuntu20.04上使用OpenVPN的DNS问题
EN

Ask Ubuntu用户
提问于 2020-06-05 19:05:15
回答 4查看 18.8K关注 0票数 9

我已经在公司服务器上安装了OpenVPN服务器和Bind9 DNS服务器。服务器配置的部分如下所示。重要的部分是推送路径和DHCP选项。

代码语言:javascript
运行
复制
local 10.0.9.2
port 1194
proto udp
dev tun
topology subnet
server 10.0.12.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.0.9.0 255.255.255.0" 
push "dhcp-option DNS 10.0.9.2"

在Windows或初级操作系统上连接时,一切都很好。只有发送到服务器的流量通过VPN,其余的不通过VPN。如果客户端被迫通过VPN传递所有通信量,则internet访问也是有效的。在这两种情况下,当尝试访问git.internal.mycompany.org时,它都会从我的Bind9 DNS服务器获得DNS记录并正确连接。

但这在Ubuntu不起作用。当通过VPN传递整个流量时,将从DNS获取记录。但是,当只有服务器流量通过VPN时,就无法到达DNS,并且我无法通过URL访问git服务器。当通过IP访问时,它可以工作。

我还尝试将此添加到客户机配置中。

代码语言:javascript
运行
复制
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved

但这没什么用。可能是因为当我试图直接运行脚本时,我得到了一个错误/etc/openvpn/update-systemd-resolved: řádek 404: dev: unbound variable

我不知道怎么解决这个问题。我尝试在这里搜索AskUbuntu和其他,但大多数建议加起来和向下配置。这对我不起作用。这是个问题,因为我的大多数同事都在使用Ubuntu。只有很少的计算机使用Windows或其他Linux发行版。

使用应用更改更新

当应用从@heynnema进行更改时,以下是通过终端连接时在控制台https://pastebin.com/DkjHguqE中打印的内容。在那之后,ping git.internal.mycompany.org就不能工作了。

另一个发现的事实是:

  • 当我将redirect-gateway def1 bypass-dhcp添加到配置中时,我的公共IP是服务器的IP,但仍然不能上面的ping URL。
  • 当像前面提到的那样将配置导入Ubuntu的UI中时,ping可以工作,直到我取消选中https://askubuntu.com/a/1188022/972420
EN

回答 4

Ask Ubuntu用户

回答已采纳

发布于 2020-06-10 14:11:20

看起来,systemd-resolve的主要问题就像这里所描述的:https://github.com/systemd/systemd/issues/6076非常棒的文章在这里,我把它作为起点:https://www.gabriel.urdhr.fr/2020/03/17/systemd-revolved-dns-configuration-for-vpn/

一个对我有用的小解决方法是在每个连接到VPN之后运行这个。基本上手动设置DNS

代码语言:javascript
运行
复制
sudo resolvectl dns tun0 10.0.9.2 # Replace with IP of your DNS server
# All internal services are like git.int.mycompany.com or ldap.int.mycompany.com
# You can try to set up "~mycompany.com", worked for me as well
sudo resolvectl domain tun0 "~int.mycompany.com" 

如何使其自动化

With网络管理器:如果您使用网络管理器( Manager可用这里的图片),您可以使用/etc/NetworkManager/dispatcher.d/中的脚本自动完成此操作

创建自定义脚本,将其命名为02-ifupdown,将chmod +x设置为它并粘贴

代码语言:javascript
运行
复制
#!/bin/sh

EXPECTED_VPN_NAME="MyCompany VPN" # Put your VPN name here
VPN_CONN_NAME=`nmcli --get name,type con show --active | grep vpn | sed 's/\:.*//'`

if [ "$2" = "vpn-up" ] && [ "$EXPECTED_VPN_NAME" = "$VPN_CONN_NAME" ]; then
        resolvectl dns tun0 10.0.9.2 # Replace with IP of your DNS server
        resolvectl domain tun0 "~int.mycompany.com"
fi

With CLI:创建自定义脚本,将chmod +x设置为它并粘贴到配置中:

代码语言:javascript
运行
复制
script-security 2
up /path/to/my/script
票数 9
EN

Ask Ubuntu用户

发布于 2022-04-26 12:24:17

试着安装这个软件包:

sudo apt安装解析openvpn openvpn-systemd解析

票数 2
EN

Ask Ubuntu用户

发布于 2020-06-05 20:00:22

以这种方式更改客户端.ovpn mods:

从这里..。

代码语言:javascript
运行
复制
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved

为了这个..。

代码语言:javascript
运行
复制
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1247326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档