ubuntu20设置dns地址

编辑 /etc/netplan/50cloudinit.yaml,添加dns46参数,如:[8.8.8.8, 8.8.4.4],保存后执行sudo net

Ubuntu 20 设置DNS地址的详细指南

在Ubuntu 20系统中,正确配置DNS地址对于网络访问的稳定性和速度至关重要,本文将详细介绍多种设置DNS的方法,并通过表格对比不同配置方式的特点,帮助您选择最适合的解决方案。


DNS配置的重要性

DNS(域名系统)负责将人类可读的域名转换为IP地址,合理配置DNS可以:

  • 提升网络访问速度
  • 增强隐私保护(如使用加密DNS)
  • 绕过地域限制访问特定资源
  • 解决某些网站无法访问的问题

设置DNS的三种主流方法

方法1:通过NetworkManager图形界面配置

步骤 操作说明 适用场景
1 右键点击顶部栏网络图标,选择”编辑连接” 所有桌面版用户
2 选择当前网络连接,点击”编辑”按钮 有线/无线网络
3 切换到”IPv4设置”选项卡 IPv4网络环境
4 方法选择”自动(DHCP)地址”,下方填入DNS服务器 保留DHCP分配IP,自定义DNS
5 在”DNS服务器”字段输入逗号分隔的地址(如8.8.8,8.8.4.4) 需要长期有效配置
6 保存后重启网络连接 立即生效

优点:配置持久,支持多网卡分别设置
缺点:无线/有线连接需分别配置

ubuntu20设置dns地址

方法2:通过命令行修改NetworkManager配置

命令 作用 示例
nmcli connection edit "Wired connection 1" 进入指定连接编辑模式 替换为实际连接名称
set ipv4.dns "8.8.8.8 8.8.4.4" 设置DNS服务器 支持多个IP,空格分隔
set ipv4.ignoreautodns yes 禁用自动获取的DNS 防止被DHCP覆盖
save 保存配置 必须执行
quit 退出编辑模式

高级用法:

nmcli connection modify "Wired connection 1" 
    ipv4.dns "9.9.9.9,149.112.112.112" 
    ipv4.ignoreautodns yes

方法3:直接编辑/etc/resolv.conf(临时方案)

文件路径 配置格式 注意事项
/etc/resolv.conf 每行一个DNS地址,按优先级排序 重启后可能被覆盖

持久化技巧:
将自定义DNS写入/etc/network/interfaces:

# 编辑文件
sudo nano /etc/network/interfaces
# 添加以下内容(以ens33网卡为例)
up echo "nameserver 1.1.1.1" >> /etc/resolv.conf

配置效果验证方法

验证方式 命令示例 预期结果
查看当前DNS配置 cat /etc/resolv.conf 显示已配置的DNS地址
测试DNS解析 nslookup www.baidu.com 返回正确IP地址
测试连通性 ping c 3 www.google.com 获得响应数据包
查看网络详情 nmcli device show | grep IP 确认IPv4/IPv6状态正常

特殊场景解决方案

为特定程序设置DNS

某些程序可能需要独立DNS配置,可通过/etc/dnsmasq.conf设置本地转发:

ubuntu20设置dns地址

# 安装dnsmasq
sudo apt install dnsmasq y
# 配置本地转发规则
sudo echo "server=/google.com/1.1.1.1" >> /etc/dnsmasq.conf
# 重启服务
sudo systemctl restart dnsmasq

搭建私有DNS缓存服务器

步骤 命令 作用
1 sudo apt install unbound 安装轻量级DNS服务器
2 sudo nano /etc/unbound/unbound.conf 配置上游DNS服务器
3 添加server:行指向公共DNS 如8.8.8
4 systemctl enable now unbound 启动服务

常见问题与故障排除

症状 可能原因 解决方案
DNS配置不生效 NetworkManager未保存配置
防火墙拦截DNS请求
检查nmcli保存状态
检查ufw规则
部分网站无法访问 DNS服务器故障或被墙 更换公共DNS(如Cloudflare的1.1.1.1)
网络连接异常 IP冲突或DNS配置错误 重置网络设置:sudo systemctl restart NetworkManager

相关问题与解答

Q1:如何快速切换备用DNS服务器?

A:可以通过创建脚本实现快速切换,例如保存以下内容为switch_dns.sh:

#!/bin/bash
sudo nmcli connection modify "$1" ipv4.dns "$2" ipv4.ignoreautodns yes
sudo nmcli connection up "$1"

使用方法:bash switch_dns.sh "Wired connection 1" "9.9.9.9"

Q2:Docker容器内如何继承主机DNS配置?

A:在/etc/docker/daemon.json中添加:

ubuntu20设置dns地址

{
  "dns": ["8.8.8.8", "8.8.4.4"],
  "hosts": ["tcp://0.0.0.0:2375"]
}

重启Docker服务后,容器将

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/199226.html

Like (0)
小编小编
Previous 2025年5月5日 06:28
Next 2025年5月5日 06:40

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注