linux -- Ubuntu修改静态IP地址重启后无法上网的解决

ubuntu设置静态IP地址后,上不了网

文章中也提到,如果是在/etc/resolv.conf添加DNS,由于Ubuntu 有一个 resolvconf 服务,如果重启它,那么 /etc/resolv.conf 的内容会被修改成默认的样子,文件里也有提示文字:“DO

NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN”,所以不能直接修改 /etc/resolv.conf。

还有一点要注意的就是,/etc/resolv.conf其实是一个Link,它真实指向的是 /etc/resolvconf/resolv.conf。

因此,当我们设置成静态IP地址,发现机器不能上网,这时候需要设置DNS,具体的以下两种方法:

第一种方法

在网卡的配置文件里面加dns-nameservers xxx.xxx.xxx.xxx之类信息

iface eth0 inet static
address 192.168.1.250
gateway 192.168.1.1
netmask 255.255.255.0
dns-nameservers 192.168.3.45 192.168.8.10

 

第二种方法

/etc/resolv.conf中修改nameserver

修改Ubuntu DNS时, 查看/etc/resolv.conf 会看到他使用的dns是 nameserver 127.0.1.1,

是因为Ubuntu 会启动dnsmasq服务, 解析域名时不需要到网络运营商获取..
在解析速度上会慢于网络运营商(有cache).
自己是使用电信的网络, ping 电信的dns速度在 (1 ms , 2 ms)左右, 速度是非常快的..
但使用网络运营商的DNS会有一些不爽的地方, 比如无法解析的域名跳转到114xxxxxxxxxxxxxx….
有些解析还没到GFW就被屏蔽(GFW会再过滤解析).
使用dnsmasq是好处远远大于使用网络运营商的DNS的..

使用Ubuntu一直以来很少动到/etc/resolv.conf这个文件, 原因是本身的dnsmasq加上路由器可以劫持域名

正常的修改Linux的DNS是编辑/etc/resolv.conf文件.
格式是: nameserver ,
如修改DNS为218.85.152.99(福建电信DNS)

一般这样就直接好了..

系统装有NetworkManager的话, 这样的修改只是临时的, 如重启计算机, 或者插拔网线/etc/resolv.conf被重置为:”nameserver 127.0.0.1”(在base中有定义,重新加载了base中的内容)
Ubuntu默认是有装NetworkManager的..

如果需要永久生效的话, 需要/etc/NetworkManager/NetworkManager.conf中的dns=dnsmasq注释掉. 禁止使用dnsmasq插件.

然后重启NetworkManager
注意: 这里终端不能使用su 切换到root, 只能在当前用户使用sudo 去执行.

1 /etc/resolv.conf 其实是一个Link,它其实指向的是 /run/resolvconf/resolv.conf
2 Ubuntu 有一个 resolvconf 服务,如果重启它,那么 /etc/resolv.conf 的内容会被修改成默认的样子
所以 不能直接修改 /etc/resolv.conf

修改 resolvconf服务的配置文件: /etc/resolvconf/resolv.conf.d/head(或者base、tail这三个文件均可),加入所需的域名服务器:nameserver xxx.xxx.xxx.xxx

search mydomain.com
nameserver 61.139.39.73
nameserver 61.139.2.69

 

 

 

修改完成需要执行2个命令如下:

$resolvconf -u (关于 resolvconf 服务更多信息,可以用man查看:man resolvconf )
$/etc/init.d/networking restart

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。