通過Dnsmasq部署本地DNS服務(wù)

在開發(fā)、測試和正式環(huán)境中啊鸭,我們總希望通過同一個域名找到對應(yīng)環(huán)境中的服務(wù)實例赴涵,簡化配置流程,例如在測試環(huán)境中骨宠,讓api.changjinglu.net關(guān)聯(lián)到IP為192.168.1.34的測試服務(wù)器,而在正式環(huán)境中相满,讓api.changjinglu.net關(guān)聯(lián)到IP為47.96.51.143的正式服務(wù)器层亿。

我們現(xiàn)在的解決方案是在本機(jī)的/etc/hosts文件中記錄相應(yīng)的域名IP映射關(guān)系,本機(jī)在嘗試解析一個域名時立美,會先去/etc/hosts中查找該域名對應(yīng)的IP匿又,并訪問相應(yīng)IP的服務(wù)器。只有當(dāng)/etc/hosts中沒有該域名的記錄時建蹄,本機(jī)才會去DNS服務(wù)器進(jìn)行域名解析碌更。

本機(jī)解析域名的優(yōu)先級為DNS緩存>/etc/hosts>DNS服務(wù)。

原方案

這個解決方案稍顯繁瑣洞慎,因為每臺機(jī)器都必須在自己的/etc/hosts文件中配置正確的域名IP映射關(guān)系痛单,一旦映射關(guān)系發(fā)生改變,所有機(jī)器又必須全部做相應(yīng)的修改拢蛋。一個更簡潔的解決方案是構(gòu)建一個本地DNS服務(wù)器桦他,讓路由器指向該本地DNS服務(wù)器,讓它統(tǒng)一管理所有通用的域名IP映射谆棱,如果個別開發(fā)者有自己的特別需要快压,可以利用域名解析的優(yōu)先級順序,通過修改自己本機(jī)的/etc/hosts覆蓋本地DNS服務(wù)的映射關(guān)系垃瞧。使用這個新方案蔫劣,當(dāng)局域網(wǎng)中新增某個服務(wù)或某個原有服務(wù)改變IP地址時,只需要在本地DNS服務(wù)器上新增或修改映射配置个从,局域網(wǎng)中的所有機(jī)器無需做修改脉幢,就能享受到正確的映射關(guān)系了。

新方案

下面講一講如何通過Dnsmasq實現(xiàn)這個新方案嗦锐。

1. 安裝Dnsmasq

我將本地DNS服務(wù)安裝在了192.168.1.98上嫌松,因為該測試服務(wù)器的系統(tǒng)是ubuntu,使用自帶的包管理器下載并安裝Dnsmasq最簡潔奕污。

    sudo apt-get install dnsmasq
2. 配置Dnsmasq

Dnsmasq所有的配置都在/etc/dnsmasq.conf文件中完成萎羔,按照需要簡單做了以下修改。

    #首先配置resolv-file碳默,這個參數(shù)表示dnsmasq會從這個指定的文件中尋找上游DNS服務(wù)器

    resolv-file=/etc/resolv.dnsmasq.conf

    #單設(shè)置127.0.0.1為只能本機(jī)使用贾陷,單設(shè)置本機(jī)IP為只能內(nèi)部全網(wǎng)使用而本機(jī)不能用缘眶,這里需要同時設(shè)置兩者

    listen-address=127.0.0.1,192.168.1.98

    #dnsmasq緩存設(shè)置
    
    cache-size=1024

然后根據(jù)自己設(shè)置的resolv-file=/etc/resolv.dnsmasq.conf,配置/etc/resolv.dnsmasq.conf文件髓废,指定上游DNS服務(wù)器

    nameserver 114.114.114.114
3. 坑

按以上配置配置好Dnsmasq并啟動后巷懈,會發(fā)現(xiàn)Dnsmasq無法正常解析域名,使用ps -ef | grep dnsmasq查看后發(fā)現(xiàn)如下信息

    dnsmasq  10384     1  0 15:16 ?        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

其中dnsmasq -r /var/run/dnsmasq/resolv.conf說明Dnsmasq是從/var/run/dnsmasq/resolv.conf文件中獲取上游DNS服務(wù)器慌洪,而非我們指定的resolv-file=/etc/resolv.dnsmasq.conf顶燕。
查閱了無數(shù)文檔以后,發(fā)現(xiàn)在/etc/default/dnsmasq中有一個IGNORE_RESOLVCONF屬性蒋譬,說明如下

    # If the resolvconf package is installed, dnsmasq will use its output

    # rather than the contents of /etc/resolv.conf to find upstream

    # nameservers. Uncommenting this line inhibits this behaviour.

    # Note that including a "resolv-file=<filename>" line in

    # /etc/dnsmasq.conf is not enough to override resolvconf if it is

    # installed: the line below must be uncommented.

    # IGNORE_RESOLVCONF=yes

這里必須取消IGNORE_RESOLVCONF=yes前的注釋割岛,才能讓resolv-file=/etc/resolv.dnsmasq.conf生效。

4. 啟動Dnsmasq

大功告成犯助,啟動Dnsmasq。

    sudo service dnsmasq start
5. 設(shè)置路由器维咸,將DNS服務(wù)指向本地DNS服務(wù)器
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剂买,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子癌蓖,更是在濱河造成了極大的恐慌瞬哼,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件租副,死亡現(xiàn)場離奇詭異坐慰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)用僧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門结胀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人责循,你說我怎么就攤上這事糟港。” “怎么了院仿?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵秸抚,是天一觀的道長。 經(jīng)常有香客問我歹垫,道長剥汤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任排惨,我火速辦了婚禮吭敢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘若贮。我一直安慰自己省有,他們只是感情好痒留,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蠢沿,像睡著了一般伸头。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舷蟀,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天恤磷,我揣著相機(jī)與錄音,去河邊找鬼野宜。 笑死扫步,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匈子。 我是一名探鬼主播河胎,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼虎敦!你這毒婦竟也來了游岳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤其徙,失蹤者是張志新(化名)和其女友劉穎胚迫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唾那,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡访锻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了闹获。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片期犬。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昌罩,靈堂內(nèi)的尸體忽然破棺而出哭懈,到底是詐尸還是另有隱情,我是刑警寧澤茎用,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布遣总,位于F島的核電站,受9級特大地震影響轨功,放射性物質(zhì)發(fā)生泄漏旭斥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一古涧、第九天 我趴在偏房一處隱蔽的房頂上張望垂券。 院中可真熱鬧,春花似錦、人聲如沸菇爪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凳宙。三九已至熙揍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氏涩,已是汗流浹背届囚。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留是尖,地道東北人意系。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像饺汹,于是被迫代替她去往敵國和親蛔添。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • dnsmasq是什么我就不說了兜辞,請自行百度作郭。 目前我需要使用的用途是:1.dhcp(分配一個或者多個內(nèi)網(wǎng)ip地址)...
    dnaEMx閱讀 16,096評論 0 6
  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc閱讀 2,822評論 0 0
  • 在使用consul做docker容器服務(wù)化的過程中,使用到了dnsmasq做DNS請求轉(zhuǎn)發(fā)弦疮,于是研究了下DNS協(xié)議...
    __七把刀__閱讀 3,980評論 2 13
  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 2,876評論 0 7
  • 用DNSmasq搭建小型的內(nèi)網(wǎng)DNSyum install dnsmasq -yservice dnsmasq s...
    NamasAmitabha閱讀 528評論 0 0