Linux 原生部署

约 7 分钟阅读 · systemd
直接安装 CMSingBox 和内置 sing-box 基础内核,由 systemd 守护运行。适合 Debian、Ubuntu、Rocky Linux 等使用 systemd 的服务器、小主机和虚拟机。

环境要求

  • amd64、arm64 或 armv7 Linux。
  • root 权限、systemd 与 curl。
  • 服务器可访问 GitHub Raw;安装后可访问订阅源。
  • 后台默认使用 80,代理 2080,控制面板 9090;DNS 启用后使用 53。
uname -m
command -v systemctl
ss -lntup | grep -E ':53|:2080|:9090|:80' || true

一键安装

curl -fsSL https://raw.githubusercontent.com/qwernot/CM/main/deploy/install.sh | sudo sh

完成后打开 http://服务器IP:80,初始账号和密码均为 admin。脚本会自动安装透明代理需要的 nftables 和 iproute2,且不会在升级时删除数据。

自定义参数

改变后台端口:

curl -fsSL https://raw.githubusercontent.com/qwernot/CM/main/deploy/install.sh | sudo env CMSINGBOX_PORT=19092 sh

改变安装和数据目录:

curl -fsSL https://raw.githubusercontent.com/qwernot/CM/main/deploy/install.sh | sudo env CMSINGBOX_INSTALL_DIR=/opt/cmsingbox CMSINGBOX_DATA_DIR=/srv/cmsingbox CMSINGBOX_PORT=80 sh
端口归属原生部署直接监听宿主机。后台端口由安装参数决定;混合代理、控制台和 DNS 端口在 CMSingBox 设置中修改。53 被 systemd-resolved、dnsmasq 或 AdGuard 占用时,应先换端口或停用冲突服务。

网关部署预检

作为旁路由前执行只读检查,不会改动系统路由或清空防火墙:

curl -fsSL https://raw.githubusercontent.com/qwernot/CM/main/deploy/check-network.sh | sh -s -- native

终端网关和 DNS 填本机的局域网 IP。需要宿主机支持 TUN、开启 TUN 与 auto_route、允许 IPv4 转发,且防火墙允许指定局域网流量。若转发未开启,确认要把该设备作为网关后,再由管理员执行:

sudo sysctl -w net.ipv4.ip_forward=1
# 持久化:将 net.ipv4.ip_forward=1 写入 /etc/sysctl.d/90-cmsingbox-forward.conf

防火墙需按实际 LAN 网卡/网段定向放行;不要直接清空规则,也不要删除本机其他代理的 DNS。验证必须在另一台局域网设备完成,预检通过不等于节点及所有转发链路正常。

首次配置

  1. 登录并修改后台密码。
  2. 添加订阅并刷新,确认节点出现。
  3. 在设置中确认 HTTP/SOCKS5、允许局域网访问和可选认证。
  4. DNS 与 TUN 默认开启;确认 53 端口无冲突,不需要时可关闭。独立透明代理按部署方式选择。
  5. 保存设置、应用配置并启动 sing-box。
  6. 访问 http://服务器IP:9090/ui/ 检查代理控制台。

服务管理

systemctl status cmsingbox --no-pager
journalctl -u cmsingbox -f -n 100
systemctl restart cmsingbox
systemctl stop cmsingbox
systemctl start cmsingbox
位置用途
/opt/cmsingbox/cmsingbox管理程序
/var/lib/cmsingbox默认持久数据、内核与配置
/etc/cmsingbox.env授权公钥环境变量
/etc/systemd/system/cmsingbox.servicesystemd 服务

更新与备份

先在“设置 → 数据管理”导出备份,再重新执行一键安装命令。脚本会替换管理程序,已有数据和用户下载的内核会保留;若数据目录中没有可执行内核,则补入基础内核。

sudo tar -C /var/lib -czf cmsingbox-data-backup.tar.gz cmsingbox
curl -fsSL https://raw.githubusercontent.com/qwernot/CM/main/deploy/install.sh | sudo sh

快速排障

  • 后台打不开:检查 systemctl status、80 监听和系统防火墙。
  • sing-box 重启:在后台日志看第一条配置错误,撤销最近的自定义 JSON。
  • 订阅下载失败:检查服务器 DNS、系统时间和订阅 URL。
  • 代理 HTTP 错误:确认节点可用、代理模式和最终出站,再看控制台连接日志。