断开连接时 expressvpn 不会恢复以前的 resolv.conf

断开连接时 expressvpn 不会恢复以前的 resolv.conf

当我断开与 expressvpn 的连接时,resolv.conf 文件包含我连接时不存在的 expressvpn 引用。

具体来说,它将设置nameserver为不存在的 IP 地址并添加expressvpnsearch域中。

恢复我之前的 resolv.conf的最佳方法是什么expressvpn disconnect?我可以将断开连接包装在从备份中恢复的脚本中,但这需要 root 权限——并且可能存在标准方法。我在 expressvpn 网站上没有看到任何内容。

答案1

正如其他人所说,它看起来像是一个错误expressvpn。我使用这个解决方法来使其工作:我曾经备份过我的resolv.conf文件,使用:

sudo cp /etc/resolv.conf /etc/resolv.conf.bak

此后,当我想断开连接时,我不会运行通常的命令:

expressvpn disconnect

相反,我运行:

expressvpn disconnect && sudo cp /etc/resolv.conf.bak /etc/resolv.conf

我没有完整地输入它,而是使用Ctrl+R在 bash 历史记录中快速找到它。希望它能有所帮助!

答案2

ExpressVPN 回复说他们认为这是一个功能。所以我做了以下事情:

 sudo systemctl disable systemd-resolved
 sudo systemctl stop systemd-resolved

然后我将 /etc/resolv.conf 硬编码为至少:

 nameserver 1.1.1.1
 nameserver 1.0.0.1

在 ExpressVPN 连接时,此文件将被 VPN DNS IP 替换,断开连接时,此 resolv.conf 将恢复。

它从 19.04 到 19.10 一直运行,没有出现比我以前systemd-resolved管理 DNS 时遇到的问题更少的问题。

答案3

这对我来说很管用。问题完全一样,ExpressVPN 修改了 resolv.conf,但在我断开 VPN 连接时没有替换它。现在它运行正常。

sudo apt-get 安装 resolvconf

sudo vi /etc/resolvconf/resolv.conf.d/base

将您的名称服务器添加到基础并保存,例如:

名称服务器 8.8.8.8

名称服务器 8.8.4.4

将基础复制到 resolv.conf

cp /etc/resolvconf/resolv.conf.d/base /etc/resolv.conf

ExpressVPN 支持:为 Linux 设置 DNS 服务器

相关内容