Конфликты Netplan, networkd, resolvconf: невозможно изменить DNS-серверы
Я запускаю Ubuntu 22.04.1 на безголовом сервере и пытаюсь изменить DNS, который использует сервер. Я настроил файл netplan .yaml следующим образом, чтобы использовать серверы Cloudflare:
network:
version: 2
renderer: networkd
ethernets:
enp0s31f6:
addresses:
- xxx.xxx.xxx.xxx/32
- xxxx.xxxx.xxx::2/64
routes:
- to: default
via: xxx.xxx.xxx.xxx
metric: 100
on-link: true
- to: ::/0
via: fe80::1
nameservers:
addresses:
- 1.1.1.1
- 2606:4700:4700::1111
- 1.0.0.1
- 2606:4700:4700::1001
Послеsudo netplan apply
, все казалось copasetic. Кромеnslookup somewebsite.com
показал, что используемый DNS был 8.8.8.8.
Я проследил источник этого, я думаю, до файла /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
# 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
nameserver 8.8.8.8
Мало того, что в этом файле написано, что его нельзя редактировать, он фактически не может быть отредактирован. И я уверен, что если бы я его отредактировал, он был бы перезаписан (полагаю, resolvconf) этим сервером имен Google.
Теперь я нахожусь в положении, когда все проверяется, кроме фактического используемого DNS, который упрямо застрял на 8.8.8.8.
Например,sudo networkctl status enp0s31f6
возвращает это:
● 2: enp0s31f6
Link File: /usr/lib/systemd/network/99-default.link
Network File: /run/systemd/network/10-netplan-enp0s31f6.network
Type: ether
State: routable (configured)
Online state: online
Path: pci-0000:00:1f.6
Driver: e1000e
Vendor: Intel Corporation
Model: Ethernet Connection (2) I219-LM
HW Address: xx:xx:xx:xx:xx:xx (Fujitsu Technology Solutions GmbH)
MTU: 1500 (min: 68, max: 9000)
QDisc: pfifo_fast
IPv6 Address Generation Mode: eui64
Queue Length (Tx/Rx): 1/1
Auto negotiation: yes
Speed: 1Gbps
Duplex: full
Port: tp
Address: xxx.xxx.xxx.xxx
xxxx:xxx:xx:xxxx::2
xxxx::xxxx:xxx:xxxx:xxxx
Gateway: xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
fe80::1
DNS: 1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
Activation Policy: up
Required For Online: yes
DHCP6 Client DUID: DUID-EN/Vendor:0000ab11edfd2edd2491a9410000
Иsudo resolvctl status
дает это:
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: foreign
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1
Fallback DNS Servers: 1.0.0.1
Link 2 (enp0s31f6)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001
Link 8 (wg0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Итак, все, на что я смотрю, говорит мне, что 1.1.1.1 является основным DNS для моего сервера. Кромеnslookup askubuntu.com
который упрямо всегда возвращает это:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: askubuntu.com
Address: 151.101.65.69
Name: askubuntu.com
Address: 151.101.193.69
Name: askubuntu.com
Address: 151.101.129.69
Name: askubuntu.com
Address: 151.101.1.69
Я проверил, что 8.8.8.8 действительно используется, запустивsudo tcpdump -n -vv -i enp0s31f6 -W 1200 | grep google.com
в одном окне во время работыnslookup google.com
в другой.
Как я могу заставить свой сервер прекратить использование 8.8.8.8 и начать использовать DNS, который я пытался запустить?