Ubuntu DNS服务不生效

作者: 胡涂笔记 | 来源:发表于2018-11-26 15:35 被阅读329次

    背景: Ubuntu系统从16.04升级到18.04之后,发现有线网链接配置的dns服务器没有起作用。

    Ubuntu的DNS配置一般写在如下文件中:

    /etc/resolv.conf
    

    但是这个文件并没有笔者给有线网配置的DNS地址,而且此时该文件被软链接到了另外的地方,并且内容是某个服务自动生成的,即使修改了这个文件的内容,也会很快被这个服务改回来,所以想要通过修改这个文件添加DNS服务器是不可行的:

    ➜ jxli@Ubuntu:~$ ls -al /etc/resolv.conf 
    lrwxrwxrwx 1 root root 29 10月 22 12:07 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
    ➜ jxli@Ubuntu:~$ cat /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
    

    Ubuntu有很多个服务会对这个文件进行管理:

    1. systemd-resolved (Ubuntu 16.10 or later)
    2. resolvconf and rdnssd
    3. NetworkManager

    resolve.conf文件的内容可以看到,笔者的Ubuntu 18.04的这个文件确实是由systemd-resolved这个服务在管理。
    所以我们把它disable让NetworkManager进行管理即可:

    1. 停用 systemd-resolved服务
      systemctl disable --now systemd-resolved.service
      rm /etc/resolv.conf
      
    2. 修改NetworkManager配置文件/etc/NetworkManager/NetworkManager.conf,在main部分增加一行:
      dns=default
      
    3. 重启NetworkManager
      sudo service network-manager restart
      

    当然,我们也可以不要NetworkManeger,自己编辑这个文件来进行完全自主的DNS管理,把上面的dns=default改为dns=none即可。

    详细了解resolve.conf可以戳此查看

    相关文章

      网友评论

        本文标题:Ubuntu DNS服务不生效

        本文链接:https://www.haomeiwen.com/subject/bpvvqqtx.html