场景
- 没有网关权限
- 一台archlinux系统的测试机
- 组员10人左右
需求
- 需要经常访问的内部站点若干
- 无需每次有内部域名上线,每个人都绑hosts
方案选择
小组人员不是太多,dnsmasq足够支撑作为DNS服务器
DNSMasq搭建流程
安装DNS服务
pacman -S dnsmasq
修改监听地址
vi/etc/dnsmasq.conf
#找到 listen-address,去掉注释;改为
listen-address=127.0.0.1,10.207.x.x
修改本机DNS服务器为本地DNS服务器
vi /etc/resolv.conf
nameserver 127.0.0.1
设置上游DNS服务器
vi /etc/dnsmasq.conf
#找到 resolv-file 修改如下
resolv-file=/etc/resolv.dnsmasq.conf
#创建上游DNS服务器文件
cd /etc && touch resolv.dnsmasq.conf
vi resolv.dnsmasq.conf
#文件内容如下
# Google's nameservers, for example
nameserver 114.114.114.114
nameserver 8.8.8.8
创建局域网域名解析
vi /etc/dnsmasq.conf
#找到 conf-dir 去掉注释
conf-dir=/etc/dnsmasq.d/,*.conf
#创建内网域名解析文件
mkdir -p /etc/dnsmasq.d
vi /etc/dnsmasq.d/nameserver.conf
#设置域名解析内容(server 让域名从指定的ip去查找dns服务)
server=/leju.dev/127.0.0.1
server=/.yjiang.dev/10.207.x.x
#指定ip 类似hosts硬解)
address=/leju.dev/127.0.0.1
还可以配合 google hosts 文件实现自动翻墙
加入开机启动,并重启服务使其生效
systemctl enable dnsmasq.service
systemctl restart dnsmasq.service
Tips
/etc/dnsmasq.conf
中的listen-address=127.0.0.1,10.207.x.x
必须加127.0.0.1
;不然本地无法监听dns服务导致别人可以正常访问而DNS服务器本机不行.
/etc/dnsmasq.conf
中的server=114.114.114.114
为设置上游dns
参考
- archlinux官网Wiki-DNSMasq#DNS_.E7.BC.93.E5.AD.98.E8.AE.BE.E7.BD.AE)