一.背景

在家庭局域网中,假如有若干个设备连接在同一台路由其中。路由器便和下属设备形成了一个小型局域网。 可以在局域网中我们可以通过设备的 ip 地址互相访问。 但是管理内部的局域网的机器过多,ip地址也变得越来越多,不想浪费精力在对ip的记忆上,而且使用IP远程登录非常容易搞混,为了解决这种问题, 比较简单的有两种方式。第一种方式是通过修改hosts文件,来完成域名和ip的映射,这种只能对一台机器生效,而且例如手机之类的不容易修改hosts的设备也比较麻烦,不过有些新的路由器或者是软路由可以在路由器层面修改hosts来达到适配所有设备的能力。另外一种解决方法是搭建一个局域网的DNS服务器,使用不同的域名指向不同的机器ip。 使用自建DNS服务器的好处远不止这一个,还有很多其他的好处。例如当IP地址发生变化时,只需要更改DNS服务器的设置即可。

二.DNS简介

要搭建DNS服务器,首先需要了解一下什么是DNS。

什么是 DNS?

DNS 是将域转换为其服务器的数字 IP 地址的系统,例如将域名www.web-server.com转换成ip地址127.0.0.1。每当使用域名发出网络请求时,系统都会执行 DNS 查询以确定域名对应的服务器ip地址。

为什么要运行自己的 DNS服务器?

自建DNS服务器可以更好地控制网络。例如能够配置网络级域映射,web-server192.168.0.101。将路由器配置为使用你自己搭建的 DNS服务器, 可以让任何连接到该路由器设备都能够通过http://web-server访问到192.168.0.101,自建DNS服务器可以对域名解析进行集中式的管理,而不是在每台设备上单独修改/etc/hosts, 自建DNS服务器将适用于你连接到网络的所有内容,包括无法通过其他方式自定义其路由堆栈的嵌入式硬件。自建 DNS 服务器还可以提高性能并提供额外的弹性层。在发生大规模 DNS 中断时可以为你与之交互的关键服务使用具有长期缓存的自定义服务器可以帮助你度过所选上游提供商的停机时间。

DNS 与 Dnsmasq

Dnsmasq是一个轻量级的 DNS 服务器,大多数 Linux 发行版中都可以安装它。
自建Dnsmasq服务器流程如下所示:

  1. 路由器接收来自你连接的设备之一的请求。路由器将配置为使用 Dnsmasq 主机作为其 DNS 服务器。
  2. Dnsmasq 会检查它是否有定义的域名路由,例如web-serverto 192.168.0.101。如果请求是http://web-server/example-page,它将发送192.168.0.101回路由器。
  3. 当 Dnsmasq 没有匹配的路由时,它会将 DNS 请求转发给 Google 的8.8.8.8,从而在公共互联网上启用解析。这确保你在使用自己的 DNS 时仍然可以访问更广泛的网络。

你无需在客户端设备上进行任何配置更改。路由器后面的所有东西最终都会通过 Dnsmasq 进行 DNS 查询。但是,值得注意的是,所有流行的桌面和移动操作系统都支持设置 DNS 服务器,因此您可以将单个设备配置为使用 Dnsmasq,而无需在路由器级别启用它。

三.Dnsmasq搭建DNS服务器

1.Dnsmasq简介

Dnsmasq 是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务和DNS服务结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

2.安装Dnsmasq

Ubuntu安装dnsmasq

apt install dnsmasq -y

Docker安装dnsmasq

  1. 下载镜像
docker pull jpillora/dnsmasq
  1. 运行镜像
docker run \--name dnsmasq \-d \-p 53:53/udp \
# web控制端-p 5380:8080 \
# 账号-e "HTTP_USER=foo" \
# 密码-e "HTTP_PASS=bar" \--restart always \jpillora/dnsmasq

3.Linux53端口被systemd-resolve占用的解决方法

在Linux系统中有些软件(如:Dnsmasq解锁Netflix中的Dns等服务)可能要用到53的端口,但有些系统提示已使用(required port 53 already in use )。使用lsof -i:53查看53端口是否是是被systemd-resolved进程所占用了。

  1. 先停用 systemd-resolved 服务:
systemctl stop systemd-resolved
  1. 编辑 /etc/systemd/resolved.conf 文件:
vi /etc/systemd/resolved.conf
  1. 修改配置如下:
[Resolve]
DNS=8.8.8.8  #取消注释,增加dns
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no  #取消注释,把yes改为no
  1. 最后运行下面命令即可:
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

4.配置Dnsmasq

打开/etc/dnsmasq.conf 配置文件,添加需要映射的域名和ip地址:

...
#dnsmasq config, for a complete example, see:
#  http://oss.segetech.com/intra/srv/dnsmasq.conf
#dns解析日志
log-queries
#定义主机与IP映射
address=/www.qinglong.com/172.17.205.28
address=/www.baihu.com/172.17.205.32
...

5.路由器设置DNS服务器

通过上面的步骤 ,我们已经设置好一个 DNS 服务器。接下来,进入你的路由器管理界面,使用你的设置,把你路由器的 DNS 服务器指向刚才机器在局域网的静态 IP。 也可以配置你的PC电脑的 DNS 指向这个地址。 建议是,保留原始的 DNS 主机地址比如:

192.168.1.1192.168.31.223
  • 第一个是我的原始路由器的 DNS 地址

  • 第二个是我设置的地址,这样子可以作为补充。

如果你 dnsmasq 设置没有继承 路由器主机的 DNS 服务,可以设置第二个 DNS 服务器为路由器主机 ,这样可以保证原来的状态。

6.远程网页查看Dnsmasq信息

访问Dnsmasq安装主机的8080端口就可以进入管理界面:

http://127.0.0.1:8080/

局域网添加DNS服务器进行域名解析相关推荐

  1. 搭建DNS服务器做域名解析

    搭建DNS服务器做域名解析 要求 1. 装包 2. 配置https协议 3. 配置DNS服务器并投入使用 总结 要求 搭建一个基于https://www.zuoye.com访问的web网站,网站首页在 ...

  2. 搭建DNS服务器实现域名解析

    一.DNS服务的概述 1.DNS概述 DNS(Domain Name System)域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务,而不用去记住能够被机器直接读取的 ...

  3. oracle如何配置dns连接,图文详解添加DNS服务器的操作步骤

    用于安装DNS服务器的计算机必须使用静态IP地址,如172.16.16.99.系统下载安装完DNS服务器组件后,单击"开始"-管理工具"-"DNS"命 ...

  4. 使用dig或nslookup指定dns服务器查询域名解析

    使用dig或nslookup指定dns服务器查询域名解析 https://www.cnblogs.com/wjoyxt/p/9198694.html 一般来说linux下查询域名解析有两种选择,nsl ...

  5. ubuntu下配置bind9为局域网的DNS服务器

    一.配置bind9服务器之前,先了解这些知识点: 1.DNS解析过程详解:http://www.cnblogs.com/liyuanhong/articles/7353974.html 2.常用域名记 ...

  6. ubuntu 局域网dns服务器_「bind9」ubuntu下配置bind9为局域网的DNS服务器 - seo实验室...

    bind9 一.配置bind9服务器之前,先了解这些知识点: 1.DNS解析过程详解:http://www.cnblogs.com/liyuanhong/articles/7353974.html 2 ...

  7. 【Linux云计算架构:第二阶段-Linux必会的20多种服务】第5章——搭建DNS服务器实现域名解析

    本节所讲内容: •DNS服务器常见概念 •DNS服务器安装及相关配置文件 •实战:为公司内网搭建一个DNS服务器 •实战:搭建DNS递归查询服务器和使用DNS进行负载均衡 •实现:搭建DNS主从服务器 ...

  8. linux dns 泛域名,linux配置从dns服务器泛域名解析负载均衡【实验】

    实验一 实验名称:搭建从dns服务器 步骤1:基本环境 两台dns服务器,一主一从,一台客户机做测试同一网段能够ping通 步骤2:安装软件包 由于我的主dns服务器已经打好了,参考上一实验,这里直接 ...

  9. 搭建 DNS 服务器实现域名解析

    DNS 服务概述 DNS (Domain Name System) 域名系统,在TCP/IP 网络中有非常重要的地位,能够提供 域名与IP地址的解析服务. DNS 是一个分布式数据库,命名系统采用层次 ...

最新文章

  1. 深入浅出SharePoint——取消Workflow实例
  2. 关于登陆到域的用户,不需要显示登陆界面的问题(aspx)
  3. 安装flex碰到的一个问题及其解决方法(原创)
  4. ACM-ICPC 2018 徐州赛区网络预赛G (单调队列)
  5. 抢疯了!字节、美团《人人都要学的架构思维》完整版PDF开放下载!
  6. py程序员写代码的习惯养成 防止想到什么写什么
  7. 光驱安装centos7系统过程_centos7可以ping通外网_可以ping通内网其他机器_但是其他机器就是ping不通centos7_太神奇了---linux工作笔记041
  8. Java包范围可见性
  9. opencv ret, binary = cv2.threshold(src, 180, 255, )二值化的类型
  10. u盘插上显示计算机限制,U盘插到电脑上不显示图标的解决方法(以金士顿8GU盘为例)...
  11. Python爬虫|豆瓣图书Top250
  12. 服务器芯片市场国产,飞腾发布国产腾云 S2500服务器芯片 2020中国服务器行业市场全景调研...
  13. 【linux服务器】使用csdn云主机的体验与问题
  14. 此iphone尚未备份显示未连接服务器,iPhone出现尚未备份的提示是怎么回事 提示取消方法...
  15. Linux 文件和目录管理
  16. ThinkPHP 入门
  17. 通过VISA库实现GPIB通信
  18. 小黑重装WIFI之解 - 硬件无线电已关闭 802.11无线通信 禁用状态无法启用
  19. 数据结构入门——顺序表(SeqList)详解(初始化、增、删、查、改)
  20. OA办公自动化系统选购指南

热门文章

  1. php中seo优化怎么做,SEO技术:对于PHP页面的SEO优化
  2. python: 实现一个简单的日记程序
  3. PPT文件不能编辑怎么回事?
  4. FND Debug Log FND LOG MESSAGES
  5. 三门问题的扩展用c++模拟
  6. 轮循与连接-- 细雪之舞
  7. Unity用Animation组件制作简单的动画
  8. C++ I/O文件读写操作
  9. Ubuntu 20.04/21.04 不能检测到外部HDMI显示器
  10. 为什么HDMI连接显示器无信号?