使用 docker 快速搭建 dnsmasq 服务
Dnsmasq 提供 DNS
缓存和 DHCP
服务功能。作为域名解析服务器(DNS),dnsmasq 可以通过缓存 DNS
请求来提高对访问过的网址的连接速度。作为 DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网 ip 地址和提供路由。DNS 和 DHCP 两个功能可以同时或分别单独实现。dnsmasq 轻量且易配置,适用于个人用户或少于50台主机的网络。
环境
服务器上
UDP:53
端口未占用
部署
使用 jpillora/dnsmasq 镜像来部署 DNS,该镜像中包含了一个叫做 webproc 的工具,可以提供给我们通过 WEB 配置 dnsmasq 的功能。
编写启动容器的
docker-compose
脚本docker-compose.yml 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20version: "3.3"
services:
dns-server:
image: jpillora/dnsmasq
container_name: dns-server
restart: always
environment:
TZ: Asia/Shanghai
HTTP_USER: admin
HTTP_PASS: admin
PORT: "5380"
network_mode: "host"
volumes:
- /opt/dnsmasq.conf:/etc/dnsmasq.conf:rw
# 日志大小限制
logging:
driver: json-file
options:
max-size: "64m"准备
dnsmasq
配置文件,存放位置为 compose 脚本中挂载位置dnsmasq.conf 1
2
3
4
5
6
7
8
9
10
11
12
13
14#dnsmasq config, for a complete example, see:
# http://oss.segetech.com/intra/srv/dnsmasq.conf
#log all dns queries
log-queries
#dont use hosts nameservers
no-resolv
#use cloudflare as default nameservers, prefer 1^4
server=223.5.5.5
server=8.8.8.8
strict-order
#serve all .company queries using a specific nameserver
server=/company/10.0.0.1
#explicitly define host-ip mappings
address=/myhost.company/10.0.0.2启动容器
shell 1
docker-compose up -d
开放防火墙端口
shell 1
2firewall-cmd --zone=public --permanent --add-port=53/udp
firewall-cmd --reload
使用
Windows
在 控制面板
=> 网络和 Internet
=> 网络连接
下找到正在使用的网卡,右键选择属性
然后选择Internet 协议版本4(TCP/IPv4)
,接着点击属性
设置DNS
Linux
使用 root
用户或具有 sudo
权限的用户编辑 /etc/resolv.conf
文件,在最上面添加 nameserver 192.168.1.253
(其中 192.168.1.253 替换为部署的 DNS 服务器IP),保存即可。
OSX
系统偏好设置
=> 网络
=> 选择当前使用的网卡 => 点击 高级
=> 在 DNS
选项卡下添加 DNS 服务器
Docker
OSX/Win
选择状态栏中
Docker
图片选择Preferences
,然后选择Docker Engine
编辑文本框中 JSON 内容,添加"dns": ["223.5.5.5"]
完成后点击
Apply & Restart
等待重启生效
Linux
- 编辑
/etc/docker/daemon.json
文件,如没有则添加,内容如下:
daemon.json 1
2
3{
"dns": ["192.168.1.253", "223.5.5.5"]
}- 保存退出后重启 Docker 服务即可全局生效
- 编辑
参考文章:
- 本文标题:使用 docker 快速搭建 dnsmasq 服务
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/f114e298/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!