一、簡介
最近碰Raspberry PI 2遇到一個問題,/etc/resolv.conf內總是被修改多了一項nameserver 192.168.0.1,導致DNS service總是有問題。怎麼看都覺得跟dhcp有關係。
就在透過find查詢/etc下檔案內容後,果然發現在/etc/dhcp3/dhclient-enter-hooks.d/與/etc/dhcp/dhclient-enter-hooks.d內的shell script有點嫌疑。
二、解決方法
這邊提供的方法有兩種:
方法(1):複寫make_resolv_conf()
從上面我們可以看到,基本上是make_resolv_conf()在作亂。所以可以透過複寫make_resolv_conf()來達到竄改的功能。
- 首先建立/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate這個檔案。
- 編輯其內容,內容改為如下:
#!/bin/sh make_resolv_conf() { : }
- 最後,加上execute權限:chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
方法(2):將/etc/resolv.conf加入防止寫入
這個方法最直接也比較省事,但是卻不是個好的解決方法…只要下個指令就好了。
- 首先,修改/etc/resolv.conf內容,將要的DNS伺服器設定好。
- 之後下指令,修改attribute:chattr +i /etc/resolv.conf,搞定。
--------------------------
額外想法:修改dhclient的shell
因為實在懶得認真看人家寫的shell,估計如果花心思去看dhclient的shell,然後將shell裡面會動到resolv.conf的部分修改掉,應該才是正確的做法。如果之後有機緣在來補上吧…
沒有留言:
張貼留言