从网络管理器 DNS 搜索列表中删除所有域

从网络管理器 DNS 搜索列表中删除所有域

我正在尝试从网络管理器生成的域搜索列表中删除所有值。但是我无法让它提供空白列表。我尝试使用“ignore-auto-dns”,但域仍然存在。还有其他命令可以用于从列表中删除所有域吗?

我也尝试了以下方法: nmcli con mod "System eth0" ipv4.dns-search ""nmcli con mod "System eth0" ipv4.dns-search ".",但都无法search c.project.internal从中删除/etc/resolv.conf

[[email protected]:/home] $ nmcli con mod "System eth0" ipv4.ignore-auto-dns no
[[email protected]:/home] $ nmcli con down "System eth0" && nmcli con up "System eth0"
Connection 'System eth0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
[[email protected]:/home] $ nmcli device show eth0
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         42:01:0A:F8:06:9A
GENERAL.MTU:                            1460
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     System eth0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.248.6.154/32
IP4.GATEWAY:                            10.248.0.1
IP4.ROUTE[1]:                           dst = 10.248.0.1/32, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.248.0.1, mt = 100
IP4.ROUTE[3]:                           dst = 10.248.6.154/32, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             10.248.253.253
IP4.DNS[2]:                             10.248.254.254
IP4.DNS[3]:                             169.254.169.254
IP4.DOMAIN[1]:                          c.project.internal
IP6.ADDRESS[1]:                         fe80::4001:aff:fef8:69a/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
[[email protected]:/home] $ cat /etc/resolv.conf
# Generated by NetworkManager
search c.project.internal google.internal
nameserver 10.248.253.253
nameserver 10.248.254.254
nameserver 169.254.169.254
[[email protected]:/home] $ nmcli con mod "System eth0" ipv4.ignore-auto-dns yes
[[email protected]:/home] $ nmcli con down "System eth0" && nmcli con up "System eth0"
Connection 'System eth0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[[email protected]:/home] $ nmcli device show eth0
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         42:01:0A:F8:06:9A
GENERAL.MTU:                            1460
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     System eth0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.248.6.154/32
IP4.GATEWAY:                            10.248.0.1
IP4.ROUTE[1]:                           dst = 10.248.0.1/32, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.248.0.1, mt = 100
IP4.ROUTE[3]:                           dst = 10.248.6.154/32, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             10.248.253.253
IP4.DNS[2]:                             10.248.254.254
IP6.ADDRESS[1]:                         fe80::4001:aff:fef8:69a/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
[[email protected]:/home] $ cat /etc/resolv.conf
# Generated by NetworkManager
search c.project.internal
nameserver 10.248.253.253
nameserver 10.248.254.254

上面的例子表明,ignore-auto-dns 实际上忽略了 DHCP 传递的域,但网络管理员仍然从某处获取域。

答案1

我假设您想从“域搜索列表中删除所有值” /etc/resolv.conf

查看文档高级 VPC 概念

DNS 服务器

每个实例的元数据服务器都充当 DNS 服务器。它存储本地 VPC 网络中所有 VPC 网络 IP 地址的 DNS 条目,并调用 Google 的公共 DNS 服务器获取 VPC 网络外的条目。您无法配置此 DNS 服务器。每个实例上的 DHCP 客户端都配置为管理实例的 /etc/resolv.conf 文件。

/etc/resolv.conf您可以通过修改 DHCP 策略将您自己的搜索域或名称服务器添加到实例中 。许多 Linux 发行版允许通过 保留这些修改 /etc/dhcp/dhclient.conf。请参阅内部 DNS文档以获取更多信息。

另外,请查看文档内部 DNS部分内部 DNS 和 resolv.conf

默认情况下,大多数 Linux 发行版将 DHCP 信息存储在 resolv.conf 中。Compute Engine 实例配置为每 24 小时续订一次 DHCP 租约对于启用了区域 DNS 的实例,DHCP 租约每小时到期一次。DHCP 续订将覆盖此文件,撤消您可能做出的任何更改。使用区域 DNS 的实例在 resolv.conf 文件中同时具有区域和全局条目。

并在部分通过内部 DNS 访问虚拟机

重要的:Compute Engine 实例会在其 DHCP 租约中接收内部 DNS 解析信息。默认情况下,内部 DNS 名称的解析由实例的元数据服务器 (169.254.169.254) 处理。如果您更改实例的名称服务器配置,则可能无法使用内部 DNS 名称。任何替代名称服务器软件必须支持RFC 3442

此外,请查看文档VPC 防火墙规则概览部分VPC 文档

Google 在每个实例旁边运行一个本地元数据服务器,地址为 169.254.169.254。此服务器至关重要实例的运行,因此无论您配置了什么防火墙规则,实例都可以访问它。

因此,如果您确实想要更改值,resolv.conf修改 DHCP 策略会更安全。

答案2

来自man nm-settings以下部分dns-search

以波浪号(“~”)开头的域被视为“路由”域,仅用于决定必须转发查询的接口;它们不用于完成不合格的主机名。

据我所知,您需要一些命令:

nmcli con mod "System eth0" ipv4.dns-search "~c.project.internal"
nmcli con mod "System eth0" +ipv4.dns-search "~google.internal"

# probably also want the ipv6 version too:
nmcli con mod "System eth0" ipv6.dns-search "~c.project.internal"
nmcli con mod "System eth0" +ipv6.dns-search "~google.internal"

如果我理解手册页正确的话,这将导致你所有的常规c.project.internalgoogle.internal 查询仍可继续System eth0连接,但 DNS搜索(用于确定主机名的 FQDN)将不再执行。

免责声明:我自己刚刚学到这一点——我可能在某些细节上是错误的。

相关内容