2015-02-14

Ubuntu 手動指定 DNS 伺服器

如果你是使用 DHCP 來取 IP 位址的話,基本上,是可以不用去管你的電腦是使用那一個 DNS 伺服器的,但是,如果,你跟阿舍一樣,有一天心血來潮就把某一台電腦改成固定 IP 之後,就會發現,沒有自己指定 DNS Server 的話,這台電腦就沒有 DNS 可以用,上網就會有問題哩 ! ...



還好,在 Ubuntu 上要指定使用的 DNS Server 遠比阿舍以為的來的簡單的許多哩 ! 阿舍一開始就很聰明的去打開 /etc/resolv.conf 這個檔案要來修改,但是,一打開就看到了下面這一行字哩 !

# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

喔 ! 是說不能改這個檔,那要在設定 DNS Server 哩 !? 所以,阿舍查了一下 Ubuntu 的官方文件 後才發現,原來,只要在 /etc/network/interfaces 檔裡,加入下面這一行就可以指定 DNS Server 了,下面第二行是以阿舍指定 Google 和 hinet 的 DNS Server 為例。

dns-nameservers [DNS Server IP] [DNS Server IP] ... 

dns-nameservers 8.8.8.8 168.95.192.1

加好之後,用下面指令來重啟網卡,之後,就可以開始使用新設定的 DNS Server 了,而且,/etc/resolv.conf 檔案裡,也會自動新增在 /etc/network/interfaces 檔案所指定的 DNS Server,所以,才會說,不要手動去動 resolv.conf 檔,動了也是會被清掉的哩 ...

sudo ifdown eth0
sudo ifup eth0

上面這二行請記得不要用遠端連線操作,不然,執行完第一行,就沒機會執行第二行了啊 ~~~
在 Ubuntu 指令 DNS 還滿容易的


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

4 則留言 :

Rob 提到...

sudo ifdown eth0
sudo ifup eth0

若是上面這二行改寫成一行,是否就可用遠端連線操作了???
sudo ifdown eth0 ; sudo ifup eth0


Arthur 提到...

Hello,

阿舍是沒試過, 但是, 就技術上來說,這一個指令執行後,網卡就停止運作了,所以,遠端操作應該是一定會被中斷的哩! .... 供參囉! ... ^^=

Unknown 提到...

突然想到
sudo ifdown eth0
sudo ifup eth0

寫進一個腳本里,透過遠端執行,那麼會執行完成嗎?

Arthur 提到...

Hello,

邏輯上來說,Script 應該可以執行完成,不過,SSH 連線應該還是會斷掉,只是 Script 成功執行完成後,就可以再用 SSH 連進去了哩 ....

不過,阿舍實際上用一個 Ubuntu 的 VM 來測了一下,以 SSH 連線連入後,用一個 Script 來執行 ifdown 和 ifup 的動作,結果 ... 是 SSH 連線是不會被中斷的哩 ....

供參囉 ... ^^=

張貼留言

歡迎留言提問和討論 .... 😁