如何阻止 Debian 覆盖 /etc/resolv.conf 并覆盖我的 VPN 名称服务器?

如何阻止 Debian 覆盖 /etc/resolv.conf 并覆盖我的 VPN 名称服务器?

背景

我正在运行 Debianstretch/stable;我从存储库安装了 openvpn,并将配置文件us1041.conf(作为示例)从我的 VPN 提供商下载到/etc/openvpn/us1041.conf.我希望 openvpn 在启动时运行,因此按照 VPN 提供商的说明,我/etc/openvpn/auth.txt使用我的凭据创建,添加auth-user-pass auth.txt到配置文件,然后添加AUTOSTART="us1041"/etc/default/openvpn.

如果我手动将名称服务器添加到/etc/resolv.conf

nameserver 78.46.223.24
nameserver 162.242.211.137

VPN 有效。伟大的!但是,一旦我重新启动,/etc/resolv.conf就会被 ISP 的名称服务器覆盖,并且不会解析任何连接。

另外,我没有使用网络管理器或任何 GUI 应用程序来配置网络。我没有安装图形界面,网络配置“开箱即用”。这是/etc/network/interfaces

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug enp0s31f6
iface enp0s31f6 inet dhcp

问题

我想我需要使用/etc/openvpn/update-resolv-conf脚本,但我不确定如何使用来自我的 VPN 提供商的配置文件进行配置。

如何让 VPN 的名称服务器在重新启动后保持不变?

答案1

可能的解决方案

覆盖 DNS 服务器来自 ISP 的 DHCP 服务器:

/etc/dhcp/dhclient.conf

supersede domain-name-servers 78.46.223.24, 162.242.211.137

编辑/etc/network/interfaces (或者您正在使用 NetworkManager 吗?)

包括dns-nameservers 78.46.223.24 162.242.211.137您的互联网接口的定义(IP、网关、ETC。)如果你在那里定义它们。


编辑您的NetworkManager配置

例如,使用nm-connection-editor或手动指定 DNS 服务器。nmcli


用一个帮助脚本

systemd-resolved例如,通过 DBus将 OpenVPN 集成。

答案2

前两行/etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

我想你没读过...

您有 2 个选择: - 将这些行放入您的 openvpn.conf (首选方式)

dhcp-option DNS 78.46.223.24
dhcp-option DNS 162.242.211.137
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

或这些/etc/resolvconf/resolv.conf.d/head(当 VPN 关闭时可能会导致问题)

nameserver 78.46.223.24
nameserver 162.242.211.137

相关内容