当没有 netplan 配置时,如何在 Ubuntu 22.04 上设置 DNS?

当没有 netplan 配置时,如何在 Ubuntu 22.04 上设置 DNS?

我将 16.04 Ubuntu 服务器升级到 22.04。迁移到 18.04 和 20.04 运行良好。但是,升级到 22.04 破坏了我的 DNS 配置。

我找到了很多使用 来配置整个网络的教程netplan,但我对它们不太满意(我担心会破坏一切)。我在服务器上有很多网络接口,但 中什么都没有/etc/netplan

我想知道我是否必须创建一个netplan包含所有网络接口的文件,还是只包含损坏的网络接口的文件。

命令的结果如下nmcli device show

GENERAL.DEVICE:                         docker0
GENERAL.TYPE:                           bridge
GENERAL.HWADDR:                         02:42:99:76:F4:CE
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (non-géré)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         172.17.0.1/16
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 172.17.0.0/16, nh = 0.0.0.0, mt = 0
IP6.GATEWAY:                            --

GENERAL.DEVICE:                         docker_gwbridge
GENERAL.TYPE:                           bridge
GENERAL.HWADDR:                         02:42:FA:EB:F8:75
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (non-géré)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         172.18.0.1/16
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 172.18.0.0/16, nh = 0.0.0.0, mt = 0
IP6.ADDRESS[1]:                         fe80::42:faff:feeb:f875/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 256

GENERAL.DEVICE:                         enp2s0f0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         D8:D3:85:B9:34:20
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (non-géré)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               marche
IP4.ADDRESS[1]:                         10.231.226.41/23
IP4.GATEWAY:                            10.231.227.254
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 10.231.227.254, mt = 0
IP4.ROUTE[2]:                           dst = 10.231.226.0/23, nh = 0.0.0.0, mt = 0
IP6.ADDRESS[1]:                         fe80::dad3:85ff:feb9:3420/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 256

GENERAL.DEVICE:                         enp2s0f1
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         D8:D3:85:B9:34:22
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (non-géré)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               arrêt
IP4.GATEWAY:                            --
IP6.GATEWAY:                            --

GENERAL.DEVICE:                         vethdcb1995
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         C2:05:F6:52:3F:61
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (non-géré)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               marche
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         fe80::c005:f6ff:fe52:3f61/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 256

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (non-géré)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ::1/128, nh = ::, mt = 256

问题在于enp2s0f0设备没有定义 DNS。

我的问题是:

  1. 如何安全地添加我的 DNS 记录?也许有一个比 更简单的干净解决方案netplan。干净排除由 生成的黑客文件(resolvconf如 )/etc/resolvconf/resolv.conf.d/head
  2. 如果我必须在文件中创建所有接口,是否有办法netplan从当前设置中创建文件以降低出错的风险?

PS:我不知道它是否重要,但systemd-resolve没有安装在机器上,并且/etc/resolv.conf.d包含以下对它的引用:

# 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search DOMAINS

答案1

我终于在这里找到了解决方案:https://serverok.in/systemd-resolved

如果将来链接失效:创建一个文件:

sudo mkdir /etc/systemd/resolved.conf.d/
sudo nano /etc/systemd/resolved.conf.d/dns_servers.conf

在此文件中添加我的 DNS:

[Resolve]
DNS=8.8.8.8 1.1.1.1

然后重新启动 systemd-resolved

sudo systemctl restart systemd-resolved

即使重启后它也能工作:-)

附言:不知道为什么我的 DNS 配置在从 20.04 升级到 22.04 时丢失了。

答案2

我尝试应用 Jean-Marc 的修复程序,但尽管它在会话中有效,但重启后我实际上丢失了整个网络配置(包括 IP)。我不得不创建一个包含整个配置的 YAML 文件/etc/netplan如那里解释的那样: https://tecadmin.net/how-to-configure-static-ip-address-on-ubuntu-22-04/ 我的 01-netcfg.yaml 文件的内容:

network:
  ethernets:
    ensXX:
      addresses:
      - XXX.XXX.XXX.XX/XX
      routes:
      - to: default
        via: YOUR_GATEWAY
      nameservers:
        addresses:
        - YOUR_MAIN_DNS_IP
        - OTHER_DNS_IPS
        search:
        - MACHINE_DOMAIN_NAME

相关内容