Proxmox VE 安装 Debian 13 并部署 mosdns 魔改版

在 Proxmox VE 中创建 Debian 13 虚拟机,释放 53 端口,并离线部署 yyysuo 版 mosdns 的完整记录。

本文记录在 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 配置和二进制文件

项目地址:

进入家目录:

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 是否有执行权限。