南琴浪博客

dnsmasq - 自建 DNS 服务

09/22/2017

本文介绍 dnsmasq 的安装和配置。

dnsmasq 是一款小巧且方便地用于配置 DNS 服务和 DHCP 服务器的工具,适用于小型网络。它提供了 DNS 解析功能和可选择的 DHCP 功能,并且提供本地缓存查询请求的功能。

安装服务

从仓库安装

centos: yum install dnsmasq -y
debian: apt-get install dnsmasq -y

编译安装

# 编译环境
centos: yum groupinstall -y "Development Tools"
debian: apt-get install -y build-essential

# 编译开始
wget https://raw.githubusercontent.com/nanqinlang/dnsmasq/master/dnsmasq-2.75.zip
unzip dnsmasq-2.75.zip
make
make install

配置文件

若为仓库安装方式则默认在 /etc/dnsmasq.conf;若采用编译安装则需要自己创建 dnsmasq.conf

以下部分只指出 dns 服务的相关配置,DHCP 服务的不予阐述

只需留意以下参数:

port=
# 必填项
# 定义 dnsmasq 的本地监听端口,可随意设置,本文推荐填写 5353 端口

listen-address=
# 选填项
# 定义 dnsmasq 监听的客户端 ip 地址,若只给本机服务可设置为 127.0.0.1,留空表示任何客户端都可使用

address=
# 选填项
# 指定 访问域名时的解析 ip ,可用于过滤某些网站
# 例如填写 address=/sometimesnaive.org/127.0.0.1 将该域名解析到一个不存在的ip 127.0.0.1
# 以屏蔽对该 host 的访问,同理可以利用此参数过滤广告和恶意网址

server=
# 必填项
# 指定请求的上游 DNS 服务器
# 例如填写 server=208.67.222.222#5353

cache-size=
# 选填项
# 本地缓存请求结果
# 可填入任意十进制整数,表示允许缓存的查询请求条数
# 例如填写 cache-size=20170922

启动服务

以上配置完毕后,启动 dnsmasq 服务

chmod +x dnsmasq
./dnsmasq --conf-file=~/config.conf

这样,服务端的配置完成。

在客户端设置 dns 服务器 ip 为 你的 vps 的 ip,端口为 dnsmasq 监听端口