DNSmasq是一款小巧且方便地用于配置DNS服务和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能,并且提供本地缓存查询请求的功能。
1、安装dnsmasq
CentOS 系统:
yum update
yum install -y dnsmasq
Debian/Ubuntu 系统:
apt-get update
apt-get install -y dnsmasq
2、查看DNSmasq的版本
dnsmasq -v
以下是输出结果,只要不是提示 找不到命令就没事( -bash: dnsmasq: command not found )
Dnsmasq version x.xx Copyright (c) 2000-2012 Simon Kelley
Compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack
This software comes with ABSOLUTELY NO WARRANTY.
Dnsmasq is free software, and you are welcome to redistribute it
under the terms of the GNU General Public License, version 2 or 3.
3、配置文件
Dnsmasq的配置文件为:dnsmasq.conf
包管理器 方式安装的配置文件位置为:/etc/dnsmasq.conf
本教程只介绍配置DNS服务,以下部分只指出DNS服务的相关配置。
首先复制一份配置文件的备份,然后清空原配置文件,并根据下面的参数说明写入配置内容:
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
echo "" > /etc/dnsmasq.conf
打开配置文件并根据下面的参数说明写入配置内容,按 I键 进入编辑模式,改完后按 ESC键 退出并输入 :wq 保存并退出。
vi /etc/dnsmasq.conf
配置文件参数说明:
port=53
# 指定DNSmasq的监听端口,默认为53端口,也可设置为5353端口从而防止53端口DNS污染(但某些设备如win并不支持非53端口)
resolv-file=/xxx/xx.conf
# 指定DNSmasq获取上游DNS服务器地址的文件,不配置此项则默认从 /etc/resolv.conf(linux默认DNS配置文件) 获取
strict-order
# 严格按照 resolv-file 参数指定的文件中按从上到下的顺序发送DNS解析请求,直至获取解析应答成功为止
listen-address=
# 指定DNSmasq监听的地址,若仅提供为本机使用可设置为 127.0.0.1 ,留空或设置为 0.0.0.0 即任何人都可访问
address=/xxx.xx/x.x.x.x
# 自定义某些地址的解析服务器,可以 过滤或者指定 某些网站(支持ipv6,直接写ipv6的地址即可)
# 过滤广告或者某域名,例如配置 address=/www.nanqinlang.com/127.0.0.1
# 把广告域名解析请求发送到错误的解析服务器IP 127.0.0.1 即可屏蔽该域名的访问
# 也可以把 www.google.com 等指向一个国外的SNI代理IP,即可实现DNS科学上网
server=208.67.222.222#5353
# 指定上游DNS解析服务器,此处推荐设置为可使用5353端口的opendns
bogus-nxdomain=208.67.222.222
# 用于防止DNS污染/劫持,参数和上面 server 项填写相同的 ip ,但不支持非53端口。
conf-dir=/etc/dnsmasq.d/
# 加载 /etc/dnsmasq.d/ 文件夹内的配置文件
配置文件示例:
port=53
strict-order
listen-address=127.0.0.1
server=208.67.222.222#53
bogus-nxdomain=208.67.222.222
conf-dir=/etc/dnsmasq.d/
自定义地址解析 单独建立一个配置文件:
複製代碼
vi /etc/dnsmasq.d/sni.conf
然后按格式写入自定义地址解析,示例如下:
address=/google.com/1.1.1.1
address=/google.com.hk/1.1.1.1
address=/google.co.jp/1.1.1.1
address=/gmail.com/1.1.1.1
address=/youtube.com/1.1.1.1
注意:如果 这个文件或配置文件 修改了,那么需要重启 DNSmasq后才能生效。
4、使用说明
启用DNSmasq服务
service dnsmasq start
停止DNSmasq服务
service dnsmasq stop
重启DNSmasq服务(当修改配置文件后,需要重启)
service dnsmasq restart
5、卸载DNSmasq
如果 /etc/dnsmasq.d 目录有文件,那么需要先删除这个目录才能正常卸载:
先删除这个目录
rm -rf /etc/dnsmasq.d
CentOS 系统
yum remove dnsmasq -y
Debian/Ubuntu 系统:
apt-get remove --purge dnsmasq -y
在PC/路由器/移动设备中设置DNS为你的VPS IP,端口设置53(如有) 即可。
-
所有主机信息仅是为及时分享并收录,不做推荐!