1. 程式人生 > >【Ubuntu】Ubuntu網絡配置DNS失效問題處理

【Ubuntu】Ubuntu網絡配置DNS失效問題處理

修改 auto -name resolve address logs ask cat 其中

安裝了Ubuntu Server版本,配置了靜態IP地址,並配置了DNS。但重啟之後,發現連接外網時候,還是存在問題。

找了一下,是DNS的問題。

可以這樣處理:

[email protected]:~/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

保存就生效,重啟也沒問題。

【Ubuntu】Ubuntu網絡配置DNS失效問題處理