SheepNav
新上线今天0 投票

如何在Ubuntu Linux发行版中通过命令行配置DNS——比你想象的要简单

DNS(域名系统)是PC网络连接、搜索和安全的关键组件。如果你使用的是基于Ubuntu的Linux发行版,并且希望通过命令行来配置DNS,本文将为你提供详细指南。

为什么需要手动配置DNS?

大多数情况下,系统会自动从路由器获取DNS服务器地址,但有时你可能需要切换到更快的DNS(如Cloudflare的1.1.1.1或Google的8.8.8.8),或者出于隐私考虑使用非ISP提供的DNS。在服务器环境中,命令行配置更是必备技能。

使用Netplan配置DNS

Ubuntu从17.10版本开始使用Netplan作为网络配置工具,它通过YAML文件管理网络设置。以下是具体步骤:

  1. 找到Netplan配置文件
    配置文件通常位于/etc/netplan/目录下,文件名可能是01-netcfg.yaml50-cloud-init.yaml。使用ls /etc/netplan/列出文件。

  2. 备份原文件
    在修改前,建议备份:sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

  3. 编辑配置文件
    使用sudo nano /etc/netplan/01-netcfg.yaml打开文件。内容通常类似:

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: true
    

    eth0部分添加nameservers字段,指定DNS服务器地址。例如:

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: true
          nameservers:
            addresses:
              - 1.1.1.1
              - 8.8.8.8
    

    注意缩进必须正确(使用空格,不要用Tab)。

  4. 应用配置
    运行sudo netplan apply使更改生效。之后你可以通过systemd-resolve --statusresolvectl status验证DNS是否生效。

关于NetworkManager

如果系统使用NetworkManager(桌面环境常见),配置方式略有不同。但Netplan也支持NetworkManager作为渲染器,只需在配置文件中将renderer改为NetworkManager即可。

注意事项

  • 如果配置文件中有多个网络接口,需要为每个接口分别设置DNS。
  • 某些云实例(如AWS、Azure)的初始化脚本可能会覆盖Netplan配置,需要额外处理。
  • 修改后如果网络连接失败,可以使用sudo netplan try测试配置,该命令会在超时后自动回滚。

总结

通过命令行配置DNS在Ubuntu上并不复杂,关键在于理解Netplan的YAML语法。掌握这一技能后,无论是桌面还是服务器环境,你都能灵活地调整网络设置,提升网络性能和安全性。

延伸阅读

  1. RouteCost:面向电商预订单的运费估算多阶段框架
  2. LLM遗忘机制与网络安全:方法、挑战与新兴威胁综述
  3. 强化学习引导的NSGA-II算法:多目标优化新突破,纳斯达克组合优化实证
查看原文