標籤:
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 staticaddress 192.168.1.250gateway 192.168.1.1netmask 255.255.255.0dns-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)
nameserver 218.85.152.99
一般這樣就直接好了..
但系統裝有NetworkManager的話, 這樣的修改只是臨時的, 如重啟電腦, 或者插拔網線/etc/resolv.conf被重設為:”nameserver 127.0.0.1”(在base中有定義,重新載入了base中的內容)
Ubuntu預設是有裝NetworkManager的..
如果需要永久生效的話, 需要將/etc/NetworkManager/NetworkManager.conf中的dns=dnsmasq注釋掉. 禁止使用dnsmasq外掛程式.
[main]plugins=ifupdown,keyfile,ofono#dns=dnsmasq [ifupdown]managed=false
然後重啟NetworkManager
注意: 這裡終端不能使用su 切換到root, 只能在目前使用者使用sudo 去執行.
service network-manager restart
這個時候我們編輯/etc/resolv.conf 或者在Ubuntu網路連接裡面指定DNS就不會清空/etc/resolv.conf了.
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.comnameserver 61.139.39.73nameserver 61.139.2.69
修改完成需要執行2個命令如下:
$resolvconf -u (關於 resolvconf 服務更多資訊,可以用man查看:man resolvconf )$/etc/init.d/networking restart
linux -- Ubuntu修改靜態IP地址重啟後無法上網的解決