在 Ubuntu 中忽略来自 DHCP 服务器的 DNS

i2d*_*day 19 ubuntu

我DNS在/etc/resolvconf/resolv.conf.d/base文件中设置了静态:

nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

但是我的电脑仍然从 DHCP 获取 DNS,这是我的/etc/resolv.conf:

nameserver 192.168.100.2 
nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

如何忽略DNS从DHCP服务器获取?

cuo*_*glm 36

您可以将此行添加到您的/etc/dhcp/dhclient.conf:

supersede domain-name-servers 8.8.8.8, 8.8.4.4;
Run Code Online (Sandbox Code Playgroud)

然后重新启动网络或运行dhclient以进行更改。

来自man dhclient.conf:

The supersede statement

       supersede [ option declaration ];

       If for some option the client should always  use  a  locally-configured
       value  or  values rather than whatever is supplied by the server, these
       values can be defined in the supersede statement.
Run Code Online (Sandbox Code Playgroud)

  • 你也可以在`/etc/dhcp/dhclient.conf`中注释掉你不想请求的`request`参数,对于DNS,它可以是`domain-name, domain-name-servers, domain-search` . (4认同)
  • @Alex 我注意到有些设备会使用您没有要求的选项进行响应。虽然您可能认为如果没有请求它就会被忽略,但实际上情况恰恰相反:实际上处理了未请求返回的选项。配置安全敏感设备时要记住的一些事情...(例如发送 CIDR 路由并绕过来自网关的流量。) (3认同)