解決dnsmasq安裝好之後主機不能解析其他域名的問題

bboysoul發表於2018-08-16

概述

事情是這樣的,我想在阿里雲上搭建一個dns伺服器,沒錯就是吃空了,在阿里雲上搭建一個本地的dns伺服器,安裝好之後發現不能ping域名了,難道是dns伺服器的問題,換成114的dns也沒有用,後來終於找到解決的方法了

操作

首先看下我的配置檔案

resolv-file=/etc/resolv.conf
strict-order
listen-address=47.100.210.53
address=/hello.bboysoul.com/198.13.55.44

沒錯我加了這個resolv-file=/etc/resolv.conf

也就是說的我的上游dns伺服器地址應該是存在這個檔案裡面的,之後檢視這個檔案

#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 127.0.0.1
options timeout:2 attempts:3 rotate single-request-reopen

這就是問題所在了,之後我們修改我們本機的dns伺服器地址

vim /etc/resolvconf/resolv.conf.d/head

nameserver 47.100.210.53
nameserver 114.114.114.114

有人說ubuntu16.04是修改下面這個檔案才可以修改dns伺服器地址的,反正我是沒有成功過,你們看著辦

vim /etc/resolvconf/resolv.conf.d/base

但是絕對不能編輯下面這個檔案,因為一旦重啟網路,這個檔案會被重寫

vim /etc/resolv.conf

之後我們重啟網路

systemctl restart networking

重啟dnsmasq

systemctl restart dnsmasq

其實貌似直接重啟dnsmasq就可以,因為重啟這個貌似會直接重啟網路的

如果你碰到同樣ping不通主機的問題,但是我的方法沒有幫助到你,那麼也許下面是你的問題所在

第二種情況

首先看下這個程式是怎麼啟動的

╭─root@bboysoul-aliyun ~  
╰─  ps -ef |grep dnsmasq
dnsmasq  19842     1  0 17:02 ?        00:00:00 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -r /var/run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5 --trust-anchor=.,20326,8,2,e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
root     20371 20335  0 21:03 pts/1    00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn dnsmasq

你可以看到上面這麼一段

-r /var/run/dnsmasq/resolv.conf

看下上面這個檔案的路徑和內容,如果不行那麼修改下面這個檔案,忽略掉上面這個檔案之後重啟dnsmasq

vim /etc/default/dnsmasq

取消下面這行註釋

IGNORE_RESOLVCONF=yes

之後手動指定上游dns伺服器也就是dnsmasq的配置檔案vim /etc/dnsmasq.conf加上下面這行

resolv-file=/etc/resolv.conf

之後就是重複我上面第一種情況的操作了

歡迎關注Bboysoul的部落格www.bboysoul.com
Have Fun


相關文章