Linux 和 macOS 平台配置 mosdns 为系统服务

mosdns 是一个支持分流等功能的 DNS 转发器。在 mosdns wiki 文档中对系统服务安装方式说明不太详尽,主要是解决如何注册服务并设置为开机自动运行。

本文记录的内容主要针对 mosdns v5 版本。

安装

下载二进制文件并授予执行权限 chmod +x mosdns

安装至系统服务

Linux 平台

按照 mosdns 官方文档 mosdns service install 的方式测试无法正常运行。参考另一个知名软件的配置文档实测可用:

1
2
3
4
cp mosdns /usr/local/bin
# 创建配置文件
cp config.yaml /etc/mosdns/
touch /etc/mosdns/hosts

运行测试一次:

1
/usr/local/bin/mosdns start -c /etc/mosdns/config.yaml -d /etc/mosdns

新建服务 /etc/systemd/system/mosdns.service

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=mosdns daemon, DNS server.
After=network-online.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/mosdns start -c /etc/mosdns/config.yaml -d /etc/mosdns

[Install]
WantedBy=multi-user.target

reload systemd:

1
systemctl daemon-reload

设置开机启动:

1
systemctl enable mosdns

启动服务:

1
systemctl start mosdns

查看日志

1
2
systemctl status mosdns
journalctl -xe

macOS 平台

需要使用管理员权限执行:

1
sudo mosdns service install -d 工作目录绝对路径 -c 配置文件路径

安装完成后可以看到注册的服务:

1
cat /Library/LaunchDaemons/mosdns.plist

修改 RunAtLoad 的值为 true

启动:

1
sudo mosdns service start

此时很可能因为权限报错,参考 [BUG] macOS 下 mosdns -s 安装成系统服务因权限问题不启动 · Issue #357 · IrineSistiana/mosdns

解决方式为:

进入系统偏好设置 - 安全性与隐私 - 隐私 - 完全磁盘访问权限 - 加入 mosdns 文件。

重新执行启动命令,显示服务状态为 running 表示已正常启动。

电脑重启后查看进程是否存在:

1
ps -ef | grep mosdns

如果修改了配置需要重启服务:

1
sudo mosdns service restart

分流配置

https://github.com/IrineSistiana/mosdns/discussions/605

创建自定义 hosts 文件,并根据实际情况调整配置中的 txt 文件路径。

Total Views:
使用 Gitbook Cli (honkit) 生成 PDF,Markdown 转 PDF 开始使用 Obsidian 管理个人知识库

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×