This file is managed by systemd-resolved(8). Do not edi.Systemd-networkd:如何在dhcp发现的命名服务器前添加静态命名服务器表项

在使用systemd-networkd和DHCP的Linux系统上,如何将本地DNS服务器设置为首选,同时保留DHCP发现的DNS服务器。解决方案涉及修改/etc/systemd/network配置文件或使用/etc/systemd/resolved.conf添加DNS条目。

Systemd-networkd:如何在dhcp发现的命名服务器前添加静态命名服务器表项?(This file is managed by systemd-resolved(8). Do not edit.)

我在Arch Linux上使用systemd 213,用DHCP解析systemd-networkd/连接到internet。同时我还在127.0.0.1上运行一个缓存DNS服务器。我想让这个服务器成为列表中的第一个DNS服务器,但我也想使用systemd-resolved发现的名称服务器。可是使用静态resolv.conf实际上是不可能的,因为我用不同的DNS设置连接网络。

我知道我可以在/etc/systemd/resolved中设置备用DNS服务器。但是是否有办法通过systemd-networkd将我的本地DNS服务器添加到DHCP发现的DNS服务器上呢?

可以尝试:

在.network文件中添加手动DNS条目会导致该条目被追加,而不是被预先添加:

# This file is managed by systemd-resolved(8). Do not edit.
#
# Third party programs must not access this file directly, but
# only through the symlink at /etc/resolv.conf. To manage
# resolv.conf(5) in a different way, replace the symlink by a
# static file or a different symlink.

nameserver 141.48.3.51
nameserver 141.48.3.17
nameserver 141.48.3.3
# Too many DNS servers configured, the following entries may be ignored
nameserver 127.0.0.1

如果我在[DHCPv4]部分加上UseDNS=true,就像system .network(5), manpage中描述的那样,DHCP发现的nameservers被忽略,只使用静态DNS表项,但这不是我想要的:

# This file is managed by systemd-resolved(8). Do not edit.
#
# Third party programs must not access this file directly, but
# only through the symlink at /etc/resolv.conf. To manage
# resolv.conf(5) in a different way, replace the symlink by a
# static file or a different symlink.

nameserver 127.0.0.1

使用DNS地址的in_addr表示只是附加我的名称服务器,就像使用普通表示一样。


如果在[DHCPv4]部分添加UseDNS=true(…),DHCP发现的命名服务器被忽略,这可能是由于systemd的bug在243版本中修复。可以查看systemd-networkd / systemd-resolved是否添加DHCP中指定的搜索域


你可以尝试添加这两行:

 [Network]
 DNS=127.0.0.1

到/etc/systemd/network/*.network?例如,对于dhcp客户端,修改/etc/systemd/network/80-dhcp.network,包含以下几行:

 [Match]
 Name=en*

 [Network]
 DHCP=yes
 DNS=127.0.0.1

或者你尝试过in_addr表示吗?可以尝试用16777343代替127.0.0.1。


我在Ubuntu 18.04机器上搜索配置3个静态DNS服务器的方法时发现了这个答案。/etc/systemd/network,并使用建议的两行代码(只包含我需要配置的DNS服务器之一)在该目录中创建一个新文件,然后重新引导,但并没有帮助。
我的解决方案是在/etc/systemd/resolved.conf中添加一个DNS部分。


诀窍似乎是你在/etc/systemd/network中的配置文件必须在/run/systemd/network中以10-前缀的默认配置文件之前进行词法排序。注意,如果你覆盖了缺省配置,你也必须在接口上启用DHCP,否则接口将在没有配置DHCP的情况下启动。

下面是我放置在/etc/system/network/1-test.network的配置文件示例:

[Match]
Name=ens5

[Network]
DHCP=ipv4
DNS=8.8.8.8

[DHCP]
UseDNS=false

要应用这些设置,运行systemctl restart systemd-networkd。
这并没有使界面关闭,只是重新配置它。
然后,您可以使用networkctl status ens5来验证设置是否已应用。

我验证了这至少在Ubuntu 18.04上有效。

我在VMware里安装Ubuntu Server,为什么一到这里就卡住了?【Starting systemd-resolved.serviceNetwork Name Resolution. Starting systemd-update-utmp.servi..ord System Boot/Shutdoun in UTMP.. Starting systemd-timesyncd.service - Network Time Synchronization.. OK1Started vgauth.service -Authentic..virtual machines hosted on VMware. ] Starting cloud-init-local.service.-init: LocalStage(pre-network)...Started open-vm-tools.service - Se. virtual machines hosted on VMware. EOK]Finished systemd-udev-trigger.service - Coldplug All udev Devices. OK]Finished systemd-journal-catalog-u..service - Rebuild Journal Catalog. OK OK Mounting proc-sys-fs-binfmt_misc.m.cutable File Formats File System...Started systemd-ask-password-conso.equests to Console Directory Watch.1 1 OK Reached target cryptsetup.target - Local Encrypted Volumes. OKMounted proc-sys-fs-binfmt_misc.mo.xecutable FileFormatsFile System.Finished systemd-update-utmp.servi..cord System Boot/Shutdown in UTMP. OK OK Finished systemd-binfmt.service - Set Up Additional Binary Formats.Started systemd-timesyncd.service - Network Time Synchronization. OKReached target time-set.target - System Time Set. OKStarted systemd-resolved.service-Network Name Resolution. OK] Finished snapd.apparmor.service -Reached target nss-lookup.target-Host and Network Name Lookups. OK...ofiles managed internally by snapd. OK] Finished ldconfig.service - Rebuild Dynamic Linker Cache. Starting systemd-update-done.service -Update is Completed... ]Finished systemd-update-done.servicee - Update is Completed. OK14.983510] piix4_smbus 0000:00:07.3: SMBus Host Contro1ler not enabled!]Finished console-setup.service - Set console font and keymap. OK]Listening on systemd-rfkill.socket - Load/Save RF Kill Switch Status/dev/rfkill Watch. ]Finished cloud-init-local.service - Cloud-init: Local Stage (pre-network). OK1Reached target network-pre.target - Preparation for Network.Starting systemd-networkd.service - Network Configuration... OK1Started systemd-networkd.service -Network Configuration. ]Reached target network.target-Network.Starting systemd-networkd-wait-online.service- Wait for Network to be Configured.. EOK] Starting cloud-init.service -Cloud-init: Network Stage...Finished systemd-networkd-wait-online.service - Wait for Network to be Configured. E] Reached target sound.target - Sound Card.
09-11
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值