以非持久方式更改 DNS 服务器(在命令行上)[救援模式]

hir*_*ist 6 networking dns rescue-mode 16.04 18.04

有没有办法可以在命令行上更改 DNS 服务器而无需更改磁盘上的任何内容?

我最近启动到救援会话,我得到了一个 IP 地址(使用 DHCP),但没有 DNS 服务器。因为我的网络配置通常是nm-applet在桌面会话中完成的,而不是在桌面会话中完成的,所以/etc/network/interfaces我希望能够为此救援会话提供一个 DNS 服务器,而不是在磁盘上写入任何内容。

这通常可以通过编辑/run/resolvconf/resolv.conf. 但resolvconf似乎没有在 ubuntu 14.04 救援会话中运行。

我希望有类似于网络配置的东西,我可以在其中配置接口而无需编辑文件:

# ifconfig eth0 192.168.2.5 netmask 255.255.255.0
# route add default gw 192.168.2.1
Run Code Online (Sandbox Code Playgroud)

有没有办法在 ubuntu 14.04 的救援会话中为 DNS 执行此操作?

hir*_*ist 6

我找到了一种方法来做到这一点:

杀死dns服务(可能有更微妙的方法?)

# killall dnsmasq
Run Code Online (Sandbox Code Playgroud)

使用所需的上游服务器重新启动服务:

# dnsmasq --server=192.168.2.1
Run Code Online (Sandbox Code Playgroud)

在较新的 ubuntu(带有systemd)上,这将是:

# systemd-resolve -i enp0s31f6 --set-dns=192.168.2.1  # --set-dnssec=true
Run Code Online (Sandbox Code Playgroud)

检查:

# systemd-resolve --status
Run Code Online (Sandbox Code Playgroud)