国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

通過Dnsmasq部署本地DNS服務

sf190404 / 1172人閱讀

摘要:本機解析域名的優先級為緩存服務。安裝我將本地服務安裝在了上,因為該測試服務器的系統是,使用自帶的包管理器下載并安裝最簡潔。設置路由器,將服務指向本地服務器

在開發、測試和正式環境中,我們總希望通過同一個域名找到對應環境中的服務實例,簡化配置流程,例如在測試環境中,讓api.changjinglu.net關聯到IP為192.168.1.34的測試服務器,而在正式環境中,讓api.changjinglu.net關聯到阿里云的正式服務器IP。

我們現在的解決方案是在本機的/etc/hosts文件中記錄相應的域名IP映射關系,本機在嘗試解析一個域名時,會先去/etc/hosts中查找該域名對應的IP,并訪問相應IP的服務器。只有當/etc/hosts中沒有該域名的記錄時,本機才會去DNS服務器進行域名解析。本機解析域名的優先級為DNS緩存 > /etc/hosts > DNS服務。

這個解決方案稍顯繁瑣,因為每臺機器都必須在自己的/etc/hosts文件中配置正確的域名IP映射關系,一旦映射關系發生改變,所有機器又必須全部做相應的修改。一個更簡潔的解決方案是構建一個本地DNS服務器,讓路由器指向該本地DNS服務器,讓它統一管理所有通用的域名IP映射,如果個別開發者有自己的特別需要,可以利用域名解析的優先級順序,通過修改自己本機的/etc/hosts覆蓋本地DNS服務的映射關系。使用這個新方案,當局域網中新增某個服務或某個原有服務改變IP地址時,只需要在本地DNS服務器上新增或修改映射配置,局域網中的所有機器無需做修改,就能享受到正確的映射關系了。

下面講一講如何通過Dnsmasq實現這個新方案。

1. 安裝Dnsmasq

我將本地DNS服務安裝在了192.168.1.98上,因為該測試服務器的系統是ubuntu,使用自帶的包管理器下載并安裝Dnsmasq最簡潔。

    sudo apt-get install dnsmasq
2. 配置Dnsmasq

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

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

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

    #單設置127.0.0.1為只能本機使用,單設置本機IP為只能內部全網使用而本機不能用,這里需要同時設置兩者

    listen-address=127.0.0.1,192.168.1.98

    #dnsmasq緩存設置
    
    cache-size=1024

然后根據自己設置的resolv-file=/etc/resolv.dnsmasq.conf,配置/etc/resolv.dnsmasq.conf文件,指定上游DNS服務器

    nameserver 114.114.114.114
3. 坑

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

    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服務器,而非我們指定的resolv-file=/etc/resolv.dnsmasq.conf。
查閱了無數文檔以后,發現在/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=" 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. 設置路由器,將DNS服務指向本地DNS服務器

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11858.html

相關文章

  • 基于 Docker for MAC 的 Kubernetes 本地環境搭建與應用部署

    摘要:基于的本地環境搭建與應用部署歸納于分布式容器與編排,參考了一文,更多或者相關資料參閱。最后我們還可以用與命令來刪除應用 showImg(https://segmentfault.com/img/remote/1460000006760432); 基于 Docker for MAC 的 Kubernetes 本地環境搭建與應用部署歸納于分布式容器與編排,參考了 Docker + Kub...

    SKYZACK 評論0 收藏0
  • 基于 Docker for MAC 的 Kubernetes 本地環境搭建與應用部署

    摘要:基于的本地環境搭建與應用部署歸納于分布式容器與編排,參考了一文,更多或者相關資料參閱。最后我們還可以用與命令來刪除應用 showImg(https://segmentfault.com/img/remote/1460000006760432); 基于 Docker for MAC 的 Kubernetes 本地環境搭建與應用部署歸納于分布式容器與編排,參考了 Docker + Kub...

    jone5679 評論0 收藏0
  • kube-dns的前世今生

    摘要:通過監視資源的變化,并根據的信息生成記錄寫入到中。是唯一保留的容器,依然提供健康檢查。操作會獲取最新的全量資源與本地狀態進行比較來產生通知,可以避免網絡原因導致的丟失通知的情況。最后一個參數用來設置處理事件的回調。 上一期我們以1.2版本為背景,介紹了K8S的服務發現和kube-dns插件的相關內容。有了上一期內容作為基礎,這期了解最新版本的kube-dns就會容易很多。 本文主要對比...

    Lin_R 評論0 收藏0
  • docker入門實戰筆記

    摘要:創建用戶組并添加用戶。默認情況下是過濾掉所有的入站規則。初始命令表示一旦容器啟動,需要運行的命令,此時使用,表示什么也不做,只需進入命令行即可。1.什么是docker  docker翻譯為搬運工,在這里應該可以理解為搬運應用的工具,也就是云.先了解其運用場景之后更容易對他形成深刻理解.  Docker提供了一種可移植的配置標準化機制,允許你一致性地在不同的機器上運行同一個Container;...

    Tecode 評論0 收藏0

發表評論

0條評論

sf190404

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<