5154

Good Luck To You!

ubuntu16 dns解析设置

untu16设置DNS可编辑/etc/resolvconf/resolv.conf.d/base文件添加nameserver条目,然后执行resolvconf u和/etc/init.d/networking restart使配置生效

Ubuntu 16.04 DNS解析设置详解

在Ubuntu 16.04系统中,正确配置DNS解析是确保网络连接稳定性和高效性的关键步骤,无论是服务器版还是桌面版,都可以通过多种方式实现这一目标,以下是详细的操作指南及注意事项:


永久修改DNS的方法

✅方法一:通过/etc/resolvconf/resolv.conf.d/base文件配置(推荐)

这是最常用且持久化的方案,适用于所有场景:

  1. 编辑基础配置文件
    使用文本编辑器打开或创建该路径下的文件:
    sudo vim /etc/resolvconf/resolv.conf.d/base
  2. 添加指定的DNS服务器地址
    每行写入一个nameserver条目,例如使用谷歌公共DNS或国内服务商提供的节点:
    nameserver 8.8.8.8      # Google Public DNS
    nameserver 8.8.4.4      # 备用Google DNS
    # 或者替换为其他可信源如阿里云、电信等
    # nameserver 223.6.6.6
    # nameserver 223.5.5.5
  3. 更新系统缓存并重启相关服务
    执行以下命令使更改生效:
    sudo resolvconf u         # 刷新DNS配置缓存
    sudo /etc/init.d/networking restart      # 重启网络服务
    sudo /etc/init.d/resolvconf restart     # 重启DNS解析管理工具
  4. 验证结果
    检查最终生成的主配置文件是否包含新设置的DNS:
    cat /etc/resolv.conf

    输出应显示已添加的nameserver行。

⚙️方法二:直接修改网卡接口配置文件(适用于静态IP环境)

若采用静态IP分配策略,可在对应网卡段落中追加DNS参数:

  1. 定位目标接口文件
    通常位于/etc/network/interfaces,根据实际设备名称调整(如eth0/ensXX):
    sudo vim /etc/network/interfaces
  2. 插入DNS定义行
    在现有配置块末尾增加类似如下内容:
    dnsnameservers 8.8.8.8    # 主用DNS
    dnsnameservers 8.8.4.4    # 备用DNS
  3. 应用变更并测试连通性
    依次运行以下指令激活修改:
    sudo /etc/init.d/networking restart
    ping example.com           # 测试域名能否正常解析
    nslookup example.com       # 进一步验证DNS响应

临时调整DNS的策略

⚠️注意:此方法仅在当前会话有效,重启后恢复原状! 如需快速测试不同DNS的效果而不影响原有设置,可直接编辑临时文件:

sudo vim /etc/resolv.conf

手动输入所需的nameserver地址保存即可,但需牢记其临时性质,不适合生产环境长期使用。


不同版本的差异化处理(Server vs Desktop)

特性 Server版 Desktop版
管理工具 networking服务主导 NetworkManager图形化工具干预
冲突解决机制 直接覆盖旧配置 需先停止服务再修改底层文件
典型操作流程 修改配置文件→重启对应服务 禁用管理器→改静态配置→手动启停网卡
适用场景建议 自动化部署、无GUI的环境 交互式调试、可视化监控需求高的情况

对于桌面用户,若遇到配置不生效的问题,可能需要先执行:

sudo service networkmanager stop

然后再按照服务器版的步骤进行操作。


常见问题排查手册

  1. 为什么改了文件却不起作用?
    • 确保没有遗漏resolvconf u刷新步骤;
    • 检查是否存在多个冲突的DNS条目;
    • 确认是否误删了必要的搜索域(search domain)。
  2. 如何清除默认注入的本地环回地址?
    编辑脚本/etc/resolvconf/update.d/libc,过滤掉以"127."开头的无效记录:
    sudo vim /etc/resolvconf/update.d/libc

    将原始代码段替换为带条件判断的版本:

    for N in $NMSRVRS; do
        if [[ $N != *"^127.0"* ]]; then
            echo "nameserver $N" >> "$TMPFILE"
        fi
    done

    完成后记得重启resolvconf服务。


相关问题与解答

Q1: Ubuntu Server版修改DNS后为何仍无法解析域名?

A: 可能原因包括:①未正确重启网络服务(需同时运行sudo /etc/init.d/networking restartsudo /etc/init.d/resolvconf restart);②防火墙阻止了UDP端口53;③上游ISP对特定端口的限制,建议逐步排查上述环节。

Q2: 桌面版设置静态DNS导致断网怎么办?

A: 这是由于NetworkManager被禁用引起的连锁反应,解决方法是启动该服务:sudo service networkmanager start,或者更简单地通过系统托盘图标重新启用网络连接,未来若需频繁切换DNS,推荐安装插件如dnsmasq实现动态

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年9月    »
1234567
891011121314
15161718192021
22232425262728
2930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.