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

相关推荐

发表回复

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