本文记录在 Proxmox VE 中通过社区脚本安装 Debian 13 虚拟机,并在系统内离线部署 yyysuo 版 mosdns 的流程。
一、在 Proxmox VE 中创建 Debian 13 虚拟机
进入 Proxmox VE Shell,执行社区脚本:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/debian-13-vm.sh)"
虚拟机创建完成后,到后台的 Cloud-Init 页面自行添加:
- 用户名和密码
- IP 地址
- DNS
填写完成后点击“重生成镜像”,然后重启虚拟机。
还有一个容易踩坑的地方:进入虚拟机的“硬件”页面,把 CPU 类型改成 host。如果保持默认 CPU 类型,后面的 mosdns 程序可能无法正常运行。
二、登录 Debian 13 并安装基础工具
通过 SSH 客户端登录 Debian 13 系统后,先更新软件源并安装常用工具:
apt update && apt install -y curl wget unzip
操作前检查 53 端口占用情况:
ss -tupln | grep 53
如果看到 systemd-resolved 正在占用 53 端口,需要关闭它的本地 DNS stub 监听。
编辑配置文件:
nano /etc/systemd/resolved.conf
找到这一行:
#DNSStubListener=yes
修改为:
DNSStubListener=no
然后重载并重启 systemd-resolved:
systemctl reload-or-restart systemd-resolved
再次确认 53 端口:
ss -tupln | grep 53
确认没有 systemd-resolved 占用后,再继续安装 mosdns。
三、下载 mosdns 配置和二进制文件
项目地址:
- mosdns 项目:https://github.com/yyysuo/mosdns
- mosdns releases:https://github.com/yyysuo/mosdns/releases
- 全量初始化配置:https://raw.githubusercontent.com/yyysuo/firetv/refs/heads/master/mosdnsconfigupdate/mosdns1225all.zip
进入家目录:
cd ~
下载全量初始化配置:
wget https://raw.githubusercontent.com/yyysuo/firetv/refs/heads/master/mosdnsconfigupdate/mosdns1225all.zip
下载二进制文件。下面示例使用的是 amd64-v3 版本,请根据自己的 CPU 架构选择对应版本:
wget https://github.com/yyysuo/mosdns/releases/download/v5-ph-srs-20260424-1af2981/mosdns-linux-amd64-v3.zip
创建 mosdns 配置目录:
mkdir -p /cus/mosdns
解压配置文件:
unzip mosdns1225all.zip -d /cus/mosdns
解压二进制文件:
unzip mosdns-linux-amd64-v3.zip -d mosdns
cd mosdns
mv mosdns /usr/local/bin/
chmod +x /usr/local/bin/mosdns
如果确认临时解压目录已经不需要,可以稍后手动清理 ~/mosdns。
四、创建 systemd 启动文件
进入 systemd 目录:
cd /etc/systemd/system
nano mosdns.service
写入以下内容:
[Unit]
Description=Mosdns Custom Service
ConditionFileIsExecutable=/usr/local/bin/mosdns
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/cus/mosdns
ExecStart=/usr/local/bin/mosdns start -c /cus/mosdns/config_custom.yaml -d /cus/mosdns
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
添加执行权限:
chmod +x /etc/systemd/system/mosdns.service
五、准备 nft 配置
进入 mosdns 的 nft 目录:
cd /cus/mosdns/nft
cp nft.conf /cus/smbi.conf
按自己的网络环境修改配置里的端口:
nano /cus/smbi.conf
六、启动 mosdns
启用并立即启动 mosdns:
systemctl enable --now mosdns
查看运行状态:
systemctl status mosdns
如果状态正常,就可以进入 mosdns 后台继续配置:
http://虚拟机IP:9099
例如:
http://192.168.1.10:9099
后台具体配置方法按视频操作即可。
七、排查要点
- 53 端口必须先释放,否则 mosdns 可能无法监听 DNS 端口。
- Proxmox VE 虚拟机 CPU 类型建议改为
host,否则 mosdns 二进制可能启动失败。 - 二进制文件要根据 CPU 架构下载,示例里的
amd64-v3不一定适合所有设备。 - 如果
systemctl status mosdns显示启动失败,优先检查/cus/mosdns/config_custom.yaml是否存在,以及/usr/local/bin/mosdns是否有执行权限。