【Ubuntu】Ubuntu网络配置DNS失效问题处理
安装了Ubuntu Server版本,配置了静态IP地址,并配置了DNS。但重启之后,发现连接外网时候,还是存在问题。
找了一下,是DNS的问题。
可以这样处理:
lifeccp@ubuntu:~/webapp/osprey$ cat /etc/network/interfaces auto lo iface lo inet loopback auto enp3s0 iface enp3s0 inet static address 192.168.21.11 netmask 255.255.255.0 gateway 192.168.21.1 dns-nameservers 8.8.8.8
注意,关键是其中最后的一行需要配置在这里。
之前我是配置在了 /etc/resolv.conf 中,但是重启就会丢失。
问题分析:
再回头去看一下 /etc/resolv.conf ,我们会发现其中的描述是:
cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
这里也就是说:这个文件是resolvconf程序动态创建的,不要直接手动编辑,修改将被覆盖。
而事实也是如此,修改后重启就失效了。
搜索了Ubuntu下设置DNS的相关资料,总结出两个办法:
方法一,修改/etc/network/interfaces
通过/etc/network/interfaces,在它的最后增加一句:
dns-nameservers 8.8.8.8
8.8.8.8是Google提供的DNS服务,这里只是举一个例子,你也可以改成电信运营商的DNS。重启后DNS就生效了。
方法二 ,修改/etc/resolvconf/resolv.conf.d/base
通过修改:/etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)
在里面插入:
nameserver 8.8.8.8
nameserver 8.8.4.4
如果有多个DNS就一行一个。
修改好保存,然后执行
resolvconf -u
再看/etc/resolv.conf,最下面就多了2行:
cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 8.8.8.8 nameserver 8.8.4.4
可以看到我们的设置已经加上了,然后再ping一个域名,当时就可以解析了,无需重启。
附:
CentOS下修改DNS则容易的多了,直接修改/etc/resolv.conf,内容是:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存就生效,重启也没问题。

赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?