如何对 /etc/resolv.conf Ubuntu 18.10 进行持久更改

如何对 /etc/resolv.conf Ubuntu 18.10 进行持久更改

我的 resolv.conf 文件有“nameserver 127.0.0.53”。
我需要用其他值替换它或添加另一个名称服务器。

我删除了符号链接,用文件替换了它。现在它由网络管理器管理,
但重启后会恢复 127.0.0.53。

我需要保留我所做的更改。

如果我在“interfaces”文件中配置网络接口,
它在网络管理器中会变为“UNMANAGED”。但是它的配置不起作用。

这个问题相关这里

伙计们,如果不太麻烦的话,请你们阅读一下。

在执行任何“ping”或“host”之前,我必须完成该LOGIN程序。

我的主要问题就在这里。我在这里尝试做的是创建一种解决方法。

在 resolv.conf 中添加除 127.0.0.53 或 0.0.0.0 之外的任何名称服务器都可以使该功能正常工作。
网络 DNS 为 192.168.11.1。我插入了 192.168.0.1,它就正常工作了。只要您说出,它就会运行。但是在网络管理器中更改设置根本没有效果。

@heynnema,我在提出问题之前在 IPV4 选项卡中进行了这些设置,但不幸的是,它们不起作用。/etc/network/interfaces
文件完好无损,
UBUNTU 18.10 已全新安装。
我为了在 DEBIAN 中创建路由器而编辑了该文件,我看到了它的工作原理。我不希望这里的情况也一样。

@Marmayogi 我的 DNS 是 192.168.11.1,/run/systemd/resolve/resolv.conf 中也有相同的 DNS。我很惊讶在那里看到它。

是的,@Marmayogi,我的目标是获得该屏幕。
在 UNITY 18.04 上,此文件不存在,但变化不大。

/etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager  

ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether bc:ae:c5:35:85:e6 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 48:5d:60:c5:91:0b brd ff:ff:ff:ff:ff:ff

systemd-resolve --status wlp3s0
Link 3 (wlp3s0)
  Current Scopes: DNS
   LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
    DNSSEC setting: no
    DNSSEC supported: no
Current DNS Server: 192.168.11.1
     DNS Servers: 192.168.11.1
      DNS Domain: ~.
                  crew.local  

是的@Marmayogi,这是我现在唯一想要的东西。不过,这个解决方案对我来说似乎很尴尬。有一个符号链接,你可以在其他帖子中看到。我删除了它,希望我能让一切正常。

@Marmayogi,你做得很好,创建了一步一步的说明。

您的解决方案非常天才,但并不体面!

我测试过了。登录成功,网络可用。

@heynnema,
/run/resolvconf/resolv.conf在 UBUNTU 18.10 上不存在。
在这种情况下你会有什么建议?

系统是从 ISO 全新安装的,从 UBUNTU.COM 下载。

答案1

我正在复制部分“1.11.2. 配置 /etc/resolv.conf 文件”从我的回答第一部分 安装前准备如何在 Ubuntu 18.04 上安装 Oracle 18c(企业版)?

要显示系统中可用的网络接口,请发出以下命令:

$ ip link show

在此处输入图片描述 Figure-39: The WiFi network adapter wlp5s0 is active, up and running.

应检查网络配置文件/etc/netplan/.yaml以获取配置详细信息。要显示文件的内容,请发出以下命令:

$ cat /etc/netplan/01-network-manager-all.yaml

在此处输入图片描述 Figure-40: Network Manager file 01-network-manager-all.yaml is not configured yet.

通过以下命令查看是否/etc/resolv.conf为静态文件:symlink

$ ls -l /etc/resolv.conf

在此处输入图片描述 Figure-41: File /etc/resolv.conf is a symlink pointing to stub file 'stub-resolv.conf'.

事实上,@igor,你从中删除的符号链接其他帖子实际上是存根文件的链接stub-resolv.conf

/etc/resolv.conf在切断与stub-resolv.conf承载名称服务器的之间的符号链接之后127.0.0.53/etc/resolv.conf就只剩下你一个人了,而你则将其/etc/resolv.conf作为静态文件!

事实是,@Igor,这种遣散行为并没有真正为你提供任何解决方案。

/etc/resolv.conf现在,通过命令显示内容:

$ cat /etc/resolv.conf 在此处输入图片描述 Figure-42: The contents of symlink '/etc/resolv.conf' having 127.0.0.53 as nameserver.

显示的 DNS/etc/resolv.conf不是127.0.0.53为 配置的默认名称服务器dhcp

发出以下命令来找出默认的 DNS 服务器:

$ systemd-resolve --status wlp5s0

在此处输入图片描述 Figure-43: The default DNS server for WiFi network adapter is 192.168.43.1.

通过以下命令显示 的内容/run/systemd/resolve/resolv.conf

$ cat /run/systemd/resolve/resolv.conf

在此处输入图片描述 Figure-44: The contents of '/run/systemd/resolve/resolv.conf' indicating default nameserver.

从图 44 中,您可以观察到,这/run/systemd/resolve/resolv.conf确实是一个承载默认名称服务器的服务器192.168.43.1

发出以下命令将符号链接更改/etc/resolv.conf为指向默认 DNS 服务器192.168.43.1而不是127.0.0.53

$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

$ ls -l /etc/resolv.conf

在此处输入图片描述 Figure-45: File /etc/resolv.conf is a symlink pointing to default nameserver.

如图 45 所示设置 sysmlink 后,您必须通过发出以下命令确保您的 Wi-Fi 已连接、启动并正在运行:

$ nmcli device

在此处输入图片描述 Figure-45-a: Wi-Fi network interface adapter 'wlp5s0' is connected, up and running.

结论:

在这种情况下,符号链接不仅是您得到的最佳答案,而且还是一个不错且可接受的解决方案。

答案2

  1. 首先,从 中删除您的编辑/etc/network/interfaces

  2. 接下来,我们删除您的静态/etc/resolv.conf文件并用原始符号链接替换它。

    terminal

    cd /etc# 更改目录

    sudo rm -i resolv.conf#删除静态文件

    sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf# 重新创建符号链接

    现在不要手动编辑此文件!

  3. 最后,在这里设置您的 DNS 服务器。

    设置DNS Automatic为关闭。输入以逗号分隔的 DNS IP 地址。

    截屏

答案3

TD;DR

/etc/resolv.conf用户不应编辑

> cat /etc/resolv.conf # Ubutnu 18
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see details about the uplink DNS servers
# currently in use.

在 Ubuntu 18 中,网络管理器已更改为“netplan”。netplan
用于管理 DNS 的工具是systemd-resolve

动态配置

  1. 查看

    sudo systemd-resolve  --status eth0
    

    eth0 是你的接口

    如果没有 DNS 服务器,请设置它

  2. sudo systemd-resolve  --interface eth0 --set-dns 1.1.1.1
    

    (您可以使用多个 --set-dns 选项添加更多)

用于持久配置

看一眼

cat /etc/netplan/*.yaml

yaml文件示例

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses:
        - 192.168.121.199/24
      gateway4: 192.168.121.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

查看更多

  1. 如何在 ubuntu-18-04 上设置 dns 名称服务器
  2. 网络计划

您还可以安装“resolveconf”,这个更简单,而且如果您正在管理服务器,这些都不是最好的。

对于服务器,请查看 FreeBSD 工具:relayd或 PowerDNS 工具:dnsdist

答案4

我使用 resolv.conf 来设置名称服务器搜索因为VPN但它在 Ubuntu 18 之前就不是正确的解决方案(因为它不仅用于 VPN,还用于所有连接)。更好的解决方案是使用 openvpn-systemd-resolved这个解决方案对我有用。

相关内容