前言
最近新买了 iPad mini, 在不断折腾的过程中发现一点让我非常非常的无语… 还是与网络有关, 那就是通常情况下, iPad mini 中的 App Store 连接速度那是相当相当相当的慢的, 慢到我打开 App Store 软件的首页需要登上 20~30s 才会有可能访问成功, 那么下载一个应用的情况可想而知了. 因为在编写 wyatt_hosts 的时候, 也为了解决在 iMac 上进行 Mac OS 更新慢的问题, 所以关于 iPad mini 基本上也就同样的解决方法了.
在自己想到折腾一个 dnsmasq 之前, 也在网络上搜索过其他的解决方案, 比如 V2EX DNS 可是对我来说, 在 iPad mini 上我也需要其他的比如 Google Drive 等也能够快速的访问, 而这些问题的解决办法都在那个 hosts 文件中, 要是我能够将 iPad mini 给越狱就最好了…
初认
由于 iPad mini 没有越狱, 所以我现在能想到的办法就只有自己搭建一台 dns 服务器了, 在网络上搜索 linux dns, mac os dns 很多情况下是使用 bind 9 的软件, 当我阅读完一些配置指南以后(例如), 说实话, 我吓倒了 T.T 超级复杂…… 然后, 我在某一篇文章中看到另外一段话”使用 dnsmasq 做 dns 缓存”吸引过去了, 这才让我去搜索了一下 dnsmasq, 哈哈, It is designed to provide DNS and, optionally, DHCP, to a small network. 这太棒了, 和我的目的一样, bind 9 虽然是非常流行并且久经沙场的 dns 服务器, 同时这也意味着我需要为那用不着的 20% 功能去折腾一个庞然大物吗? 所以最后选择了更加轻便的 dnsmasq.
安装
在 *nix 下安装软件非常的方便, 因为我是 Mac OS 所以先 brew search dnsm
搜索看看有没有现成的, 果然找到, 接下来 brew install dnsmasq
, 经过一系列脚本的安装, 得到一段话:
To configure dnsmasq, copy the example configuration to /usr/local/etc/dnsmasq.conf and edit to taste.
cp /usr/local/Cellar/dnsmasq/2.61/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
To load dnsmasq automatically on startup, install and load the provided launchd item as follows:
sudo cp /usr/local/Cellar/dnsmasq/2.61/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
在 Mac OS 配置自启动除非看了这文档, 否则我还真会糊涂…
配置
看到一个 dnsmasq.conf 的文件了吧, 还是需要一点点配置的, 但非常非常的少.
- 配置 dnsmasq 的上游 dns 服务器;(这是一个 dns 缓存, 那么其还是需要有上游服务器进行一次域名解析的)
- 配置系统的 dns 服务器, 将 dnsmasq 设置在首位寻找
- 设置 dnsmasq 需要监听的 IP 地址, 让其他服务器能够找到他
对应上面的三个事情, 只有 4 条配置即可, 不要打开 dnsmasq.conf 看到一大片内容就吓到了.
- 首先配置 resolv-file=/etc/resolv.dnsmasq.conf 这个参数表示 dnsmasq 会从这个指定的文件中寻找上游 dns 服务器
- 将 127.0.0.1 添加到 /etc/resolv.conf 文件的第一行中, 让系统首先寻找本地的 dnsmasq 服务器取消注释的
strict-order
表示严格安装 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止 - 确保注释掉
no-hosts
, 默认情况下这是注释掉的, dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游 dns 服务器寻找. - 设置
listen-address=127.0.0.1
, 表示这个 dnsmasq 本机自己使用有效. - 这里有一个坑 listen-addres , 我爬了好长时间才爬出来..
在这些配置中, listen-address 的参数坑了我好长时间, 最后才能明白如何配置. 例如, 我还需要让局域网内其他的服务器也能够首先访问这个 dnsmasq 来进行域名解析如何配置? listen-address=192.168.1.100
(dnsmasq 所在服务器局域网内 ip), 好吧, 这样你本机配置的 127.0.0.1 就没效果了… 如果设置为 listen-address=127.0.0.1
那局域网内其他服务器就无法访问到这个 dnsmasq 了, 其实应该这样设置 listen-address=192.168.1.100,127.0.0.1
这样你就能双方都满足了, 不过需要注意的一点是, 如果 dnsmasq 所在服务器在局域网的 ip 地址变更了与配置文件中的不一样, 那么理所当然的再使用配置文件中的那个 ip, 局域网内其他服务器也就找不到这台 dnsmasq ,也就无法利用本地的 dns 缓存了.
汇总
最后来汇总一下, 能够快速的部署起来.
resolv.conf
1 2 |
|
1 2 3 4 |
|
1 2 3 |
|
上面设置好以后, 让我们把 dnsmasq 启动起来吧:
- 手动启动:
sudo dnsmasq
just it. - Mac OS 开机自启动, 这也是我现在设置的方式. 首先运行
brew info dnsmasq
查看软件信息, 看到有一句话To load dnsmasq: sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
照做就好了, 注意 使用不同版本的 Homebrew 会略有不同, 在版本 0.9.4 的时候, 简化了, 不需要自己去 copy 一个 Mac OS 下的 plist 文件了(具体答案可在 /usr/local/Library/Formula/dnsmasq.rb 中找到).
关闭
如果想关闭, 就按照 *nix 的常规用 ps ax | grep dns
找到 pid 然后 kill -9 [pid]
就行, 因为 -9 是 SIGKILL 信号. 同时如果想让 dnsmasq 清理掉所有缓存的 dns 记录, 发送一个 SIGHUP(1) 信号给 pid 就好 kill -1 [pid]
这些可通过 man dnsmasq
来看到.
测试
最后就是来测试测试是否起作用了. 这个最简单啦, 直接使用 dig
命令吧, 执行大于 2 次, 查看其中返回的 “Query time: x msec” 的结果就好, 如果第二次以后 x=0, 那么就配置成功了.
例子: dig google.com
查看详细的结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
dig baidu.com +short
仅仅查看解析的 ip
1 2 3 |
|
将电脑开启 dnsmasq, 然后将 iPad mini 连接进入局域网, 将 DNS 服务处第一个设置成 dnsmasq 服务器所在的 ip, 第二个设置成 V2EX 的, 第三个设置为 8.8.8.8 (用英文,隔开). 这回, 从 App Store 下载应用的时候, 总算能够看到明显的进度条滚动了 T.T
相关推荐
在这里,你可以设置DNS转发规则,例如指定主DNS服务器和备用DNS服务器,以便dnsmasq将未解决的查询转发到这些服务器。例如,添加以下行来指定Google公共DNS: ``` server=/#/8.8.8.8 server=/#/8.8.4.4 ``` 3. ...
本教程将深入探讨如何在Linux环境下搭建DNS服务器,涵盖关键的概念、步骤以及常用命令。 首先,DNS服务器的核心组件是BIND(Berkeley Internet Name Domain),这是一个开源的、广泛使用的DNS服务器软件。在Linux...
在Linux上搭建动态DNS服务器,我们通常会选择开源软件如Bind、PowerDNS或dnsmasq。本示例中,我们以Bind为例,它是最广泛使用的DNS服务器软件之一。Bind支持各种功能,包括动态更新。 1. **安装Bind**:在大多数...
使用时,管理员只需解压文件,按照文档指示运行脚本,就能快速地在本地系统上搭建起DNS服务器。这种方法对于初学者或需要快速部署DNS服务的场景非常有用,大大减少了手动配置带来的错误和时间成本。 需要注意的是,...
- **上游DNS服务器**:指定上游DNS服务器的配置文件,DNSmasq会将无法解析的请求转发给这些服务器进行处理: ```bash resolv-file=/etc/dnsmasq-resolv.conf ``` 完成上述配置后,需要重启DNSmasq服务使配置生效...
2. **实验环境**:通常在Linux环境中,可以使用BIND或dnsmasq等软件搭建DNS服务器。实验环境可能包括一台或多台运行Linux的服务器,配置包括安装DNS服务器软件、设置区域文件、配置名称服务器等。 3. **搭建DNS...
- 安装dnsmasq,这是一款轻量级的DNS服务器,通过`yum install -y dnsmasq`命令进行安装。 - 修改dnsmasq配置文件,添加必要的行,然后启动并设置开机启动。 3. **系统环境配置**: - 修改主机名为`mail.mail....
它通常设置为DNS代理服务器,接收并处理来自客户端的DNS请求,然后将这些请求转发到实际的DNS服务器。在此过程中,DNSlog Server会保存所有的查询记录,包括请求的域名、查询时间、源IP地址等信息,这对于网络安全...
通过配置BIND或dnsmasq等DNS服务器,学习者可以理解DNS的工作原理,学会创建区域记录,进行解析服务。 NFS服务器的配置涉及到Network File System(网络文件系统),允许不同系统间共享文件。通过配置NFS,用户可以...
在Linux环境下配置IPv6 DHCP服务不仅能够自动分配IPv6地址,还能提供其他重要的网络配置信息,如默认网关和DNS服务器地址等,从而进一步提高了网络的可靠性和易用性。随着IPv6的广泛应用和技术的不断成熟,未来IPv6...
hostapd 是一个用于将普通 Wi-Fi 接口转变为无线接入点的软件,而 dnsmasq 是一个轻量级的 DNS 和 DHCP 服务器,用于小型网络。这两个组件协同工作,为用户提供了一个能够连接到的无线网络。 **hostapd 介绍** ...
配置dnsmasq(DHCP服务器、DNS服务器、TFTP服务器) 准备 PXE 启动文件 提取安装程序 如何使用 添加 Ubuntu 14.04 服务器 ISO(配置为:ubuntu-14.04.1-server-amd64.iso) 添加 ESXi 5.5 ISO(配置为:Vmware-...
3. **DNS服务器**:使用BIND或Dnsmasq配置域名解析服务,理解区域传输、MX记录、A记录等DNS概念。 4. **邮件服务器**:搭建Postfix或Exim邮件系统,配置SMTP和POP3服务,实现邮件收发。 5. **数据库服务器**:安装...
- 对于更高级的配置需求,可以考虑在局域网内搭建自己的DNS服务器。这通常涉及到在Linux服务器上安装并配置DNS服务器软件,如BIND或dnsmasq,并设置相应的域名解析规则。 #### 3. 如何发布静态网页到局域网 - **...
综合以上信息,"shutit-linux-dns"项目是一个利用Vagrant和VirtualBox创建虚拟环境,通过Git进行版本控制,使用Python和ShutIt自动化部署和配置Linux DNS服务器的解决方案。它可能包含用于安装、配置DNS软件(如bind...
通过本指南,用户能够掌握如何搭建一个标准的企业级开发服务器。 #### 二、文档原则与目标 1. **力求简明**:确保每一步都清晰明确,去除不必要的步骤。 2. **系统全面**:覆盖从操作系统安装到服务配置的全过程。 ...
本教程将涵盖网络服务的设置,包括DNS服务器(bind或dnsmasq)、DHCP服务器的配置,以及电子邮件服务器(Postfix或Exim)的搭建。你将学习如何配置Web服务器,如Apache或Nginx,以支持静态和动态内容,并理解SSL/TLS...
- Dnsmasq是一个轻量级的DNS和DHCP服务器,它在PXE部署中扮演重要角色。配置包括设定网络参数和DNSMASQ服务,以响应PXE客户端的IP地址请求并提供启动引导文件的位置信息。 在实际操作中,部署UOS桌面系统需要细心...
在pi-ap项目中,dnsmasq负责为连接到Pi的设备分配IP地址,同时它还可以作为本地DNS解析器,将设备的域名查询转发到互联网上的公共DNS服务器。 3. **dhcpcd**: 这是一个DHCP客户端,它帮助Raspberry Pi获取来自...