0%

linux搭建docker-dnsmasq

前言

搭建私有化dns 服务 避免dns污染

实战

选择使用容器部署

部署

https://hub.docker.com/r/jpillora/dnsmasq

1
2
3
4
5
6
7
8
9
10
11
docker run \
--name dnsmasq \
-d \
-p 53:53/udp \
-p 5380:18888 \
-v /home/ubuntu/dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf \
--log-opt "max-size=100m" \
-e "HTTP_USER=ming" \
-e "HTTP_PASS=ming" \
--restart always \
jpillora/dnsmasq

遇到问题

53端口占用

lsof -i:53
netstat -tlunp|grep 53

停止服务

1
2
sudo systemctl stop systemd-resolved

编辑配置

1
vim /etc/systemd/resolved.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Resolve]
#配置阿里云的dns解析
DNS=223.5.5.5
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
#DNSStubListener=yes
#关闭dns 根服务器监听
DNSStubListener=no
#ReadEtcHosts=yes

覆盖引用

1
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

重启服务

1
sudo systemctl restart systemd-resolved 

总结

启动自己的dnsmasq 大多数情况就是端口被占用
看看 端口被那些屌进程占用 依次处理就行
一般也就是同类型dns server 或者 systemd-resolved服务