arch 中 networkmanager 如何改 DNS? - Linux

Table of Contents


查到了個解決方法,是透過 script 的,不知道還有沒有高手有別的解法?

另外連加密 wifi 的問題仍需要各位前輩解答,謝謝!

以下為解決方法
---------------

參考資料:https://bbs.archlinux.org/viewtopic.php?id=45394

首先在 /etc/NetworkManager/dispatcher.d/ 中新增一個 script

例如 sudo vim /etc/NetworkManager/dispatcher.d/mydnsoverride.sh

接著貼上以下內容

#!/bin/bash
#
# Override /etc/resolv.conf and tell
# NetworkManagerDispatcher to go pluck itself.
#
# scripts in the /etc/NetworkManager/dispatcher.d/ directory
# are called alphabetically and are passed two parameters:
# $1 is the interface name, and $2 is "up" or "down" as the
# case may be.

# Here, no matter what interface or state, override the
# created resolver config with my config.

cp -f /etc/resolv.conf.myDNSoverride /etc/resolv.conf

接著新增 /etc/resolv.conf.myDNSoverride 作為這個 script 中 cp 指令的檔案來源

內容就是你要 override resolv.conf 的內容

像我就是輸入
nameserver 8.8.8.8
nameserver 8.8.4.4

最後記得讓此 script excutable

可以用 chmod 111 來達成



※ 引述《kusoayan (瑋哥)》之銘言:
: 原本網路管理工具是用 wicd,可是不知道為什麼 wicd 忽然連不上宿網的有線網路
: (無線都正常)
: 所以就想說改用 networkmanager
: 但是因為學校網路的 DNS 似乎紀錄不完全
: 所以想自行更改 DNS
: 於是我改了 /etc/resolv.conf 中的 nameserver
: 改成
: nameserver 8.8.8.8
: nameserver 8.8.4.4
: 是用 google 的 DNS
: 可是問題來了
: 改完直接生效(開網頁都正常,原本沒用 google DNS 會連不上)
: 但是如果我 sudo rc.d restart networkmanager 的話
: /etc/resolv.conf 中的內容又會被改回來
: 似乎是 networkmanager 改的,因為檔案最上方有 Gernerated by NetworkManager…
: 所以想問一下,該怎麼不讓 networkmanager 自己去修改我的 resolv.conf 呢?
: 另外想再問一下,
: arch 上的 networkmanager 如果要連加密的 wifi 是不是要做什麼調整呢?
: 謝謝!

--

All Comments

Caitlin avatarCaitlin2012-02-24
NM中有選項可設DNS啊~ wifi加密也是,完全照UI去設定即可
Noah avatarNoah2012-02-24
參考archwiki Resolv.conf,用resolv.conf.head設定