我想知道是否可以指定所有连接(甚至是未来的连接,例如在其他地方使用 wifi(= 不同的 SSID)时)都将使用预定义的 DNS 服务器
当我有一些(具体的)连接时,我可以转到 IPv4 设置,并在那里指定 DNS 服务器(但是,如果有新的连接,我必须这样做(并且不要忘记它))
这对于某些安全/过滤 DNS 可能特别有用(例如 opendns 的 208.67.222.123 和 208.67.220.123)
答案1
我这样做的方法是设置supersede domain-name-servers
。/etc/dhcp/dhclient.conf
我尝试了各种选项,包括文件夹下的head
或tail
文件/etc/resolvconf/resolv.conf.d/
,但只dhclient.conf
对我有用。我在 Ubuntu 13.04、14.04 和 15.04 版本中都这样做过——总是有效。
基本思想是,当您连接到 wifi 接入点时,您会从dhcp
服务器收到某些信息。该supersede
选项告诉 Ubuntu 将服务器发送给您的任何信息替换dhcp
为您自己的信息。在这种情况下,我们取代了 dns 服务器。因此,无论您连接到哪个 wifi,您的 ubuntu 都会将 wifi 提供的 dns 替换为自己的 dns。
下面是我自己的文件示例dhclient.conf
,请注意以下行supersede domain-name-servers 208.67.220.220;
:
$ cat /etc/dhcp/dhclient.conf
# Configuration file for /sbin/dhclient, which is included in Debian's
# dhcp3-client package.
#
# This is a sample configuration file for dhclient. See dhclient.conf's
# man page for more information about the syntax of this file
# and a more comprehensive list of the parameters understood by
# dhclient.
#
# Normally, if the DHCP server provides reasonable information and does
# not leave anything out (like the domain name, for example), then
# few changes must be made to this file, if any.
#
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers,
dhcp6.fqdn, dhcp6.sntp-servers;
现在,如果你愿意,你可以使用prepend
选项来使用两个都wifi-given 和您自己的服务器。如果 wifi-given 服务器发生故障,您的请求将被路由到预先设置的 DNS。
答案2
/etc/resolvconf 是处理此问题的软件包。它根据各种规则动态构建您的 /etc/resolv.conf 文件。
您可以在 /etc/resolvconf/resolv.conf.d/head 中设置您首选的 DNS 服务器
所有接口的所有其他 DNS 服务器都会位于其之后。
有很多更高级的方法可以使 resolvconf 满足您的特定要求,请阅读文档或操作方法。