5154

Good Luck To You!

ubuntu怎样初始化dns

在Ubuntu中,可通过编辑/etc/resolv.conf文件或配置Netplan YAML文件(如/etc/netplan/01netcfg.yaml)设置DNS,保存后执行`sudo netplan

Ubuntu系统DNS初始化配置指南

DNS基础概念

DNS(Domain Name System)是互联网的核心服务之一,负责将人类可读的域名(如www.example.com)转换为计算机可识别的IP地址(如93.184.216.34),在Ubuntu系统中,正确配置DNS服务器是保证网络访问能力的关键。

常见DNS服务对比表

服务商 公共DNS地址 特点
Google 8.8.8
8.4.4
全球覆盖,速度快
Cloudflare 1.1.1
0.0.1
隐私优先,无日志
阿里巴巴 5.5.5
6.6.6
国内优化,低延迟
腾讯 29.29.29
60.83.1
国内优化,抗攻击
OpenDNS 67.222.222
67.220.220
安全过滤,自定义

系统默认DNS配置

查看当前DNS配置

cat /etc/resolv.conf
# 典型输出:
# nameserver 127.0.0.53
# nameserver [其他IP]

systemdresolved服务说明

Ubuntu 16.04+ 默认启用systemdresolved服务,该服务:

  • 监听127.0.0.53端口
  • 支持DNSSEC验证
  • 集成SNMP查询功能
  • 自动管理/etc/resolv.conf

DNS初始化配置方法

通过Network Manager配置(图形界面)

  1. 打开设置 → 网络 → 选择当前网络连接
  2. 进入IPv4设置 → 选择"自动(DHCP)"或"手动"
  3. 在DNS服务器字段输入:
    • Google: 8.8.8, 8.8.4.4
    • 阿里云: 5.5.5, 223.6.6.6
  4. 保存设置后重启网络服务:
    sudo systemctl restart NetworkManager

直接修改resolv.conf(临时方案)

sudo nano /etc/resolv.conf
# 添加以下内容:
nameserver 1.1.1.1
nameserver 8.8.8.8

注意:此方法在系统重启后可能被覆盖,需配合后续永久配置。

禁用systemdresolved服务

  1. 停止并禁用服务:
    sudo systemctl stop systemdresolved
    sudo systemctl disable systemdresolved
  2. 删除默认配置:
    sudo mv /etc/resolv.conf /etc/resolv.conf.bak
  3. 创建新的resolv.conf:
    sudo bash c 'echo e "nameserver 114.114.114.114
    nameserver 1.1.1.1" > /etc/resolv.conf'

配置静态DNS(永久方案)

  1. 编辑Netplan配置文件(路径可能因系统而异):
    sudo nano /etc/netplan/01netcfg.yaml
  2. 添加DNS配置:
    addresses: [192.168.1.100/24]
    gateway4: 192.168.1.1
    nameservers:
      addresses: [119.29.29.29, 183.60.83.1]
  3. 应用配置:
    sudo netplan apply

高级DNS配置技巧

配置多个DNS服务器

建议配置23个不同源的DNS服务器,优先级从上到下:

nameserver 223.5.5.5    # 首选阿里DNS
nameserver 119.29.29.29 # 备用腾讯DNS
nameserver 8.8.8.8      # 备用Google DNS

设置本地DNS缓存

安装dnsmasq进行本地缓存:

ubuntu怎样初始化dns

sudo apt install dnsmasq

编辑配置:

sudo nano /etc/dnsmasq.conf
# 添加:
cachesize=1000
nonegcache

启动服务:

sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq

配置DNSSEC验证

编辑systemdresolved配置:

sudo nano /etc/systemd/resolved.conf
# 修改:
[Resolve]
DNSSEC=allowdowngrades

重启服务:

ubuntu怎样初始化dns

sudo systemctl restart systemdresolved

DNS故障排除指南

常见问题排查表

症状 可能原因 解决方案
无法解析域名 DNS服务器未配置/网络中断 检查网络连接,验证DNS服务器可达性
解析速度慢 DNS服务器响应延迟 更换更快的DNS服务,如1.1.1.1
间歇性解析失败 DNS服务器不稳定 增加备用DNS服务器
特定域名无法访问 DNS污染或劫持 尝试更换DNS服务商,使用加密DNS

诊断工具使用

  1. dig命令
    dig www.baidu.com +short
  2. nslookup命令
    nslookup example.com 8.8.8.8
  3. traceroute跟踪
    traceroute www.google.com

特殊场景配置方案

VPN环境下的DNS配置

建议将DNS设置为VPN服务商提供的专用DNS,

  • ExpressVPN: 105.xxx.x(根据地区分配)
  • NordVPN: 86.xx.x(动态分配)

Docker容器DNS配置

在dockercompose文件中添加:

version: '3'
services:
  myservice:
    dns: 
      119.29.29.29
      1.1.1.1

Kubernetes集群DNS配置

编辑CoreDNS配置:

kubectl edit configmap coredns n kubesystem
# 添加自定义DNS服务器:
Events:
  Name: updatedns
    Type: Normal
    ...
    StubDomain: "inaddr.arpa"
    Server: "114.114.114.114" # 新增中国境内DNS

相关问题与解答

Q1:如何快速切换到不同的DNS服务商?

A:可以通过创建多个DNS配置文件,使用软链接快速切换。

ubuntu怎样初始化dns

sudo nano /etc/resolvgoogle.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
sudo nano /etc/resolvaliyun.conf
nameserver 223.5.5.5
nameserver 223.6.6.6
# 切换时执行:
sudo ln sf /etc/resolvgoogle.conf /etc/resolv.conf

Q2:为什么修改了/etc/resolv.conf后配置没有生效?

A:可能原因及解决方案:

  1. systemdresolved服务干扰:需禁用该服务(见方法三)
  2. Network Manager覆盖配置:需在图形界面重新设置或修改对应的连接配置文件(/etc/NetworkManager/systemconnections/)
  3. 权限问题:确保使用root权限编辑文件(建议

发表评论:

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

«    2025年6月    »
1
2345678
9101112131415
16171819202122
23242526272829
30
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.