安装 routerd

最快的入门方式是在隔离的 Ubuntu Server VM 上使用发布归档。路由器主机不需要 Go、Makefile 或源码树。下面使用当前推荐的稳定里程碑 v20260707.1514。
RELEASE=v20260707.1514
curl -fLO https://github.com/imksoo/routerd/releases/download/${RELEASE}/routerd-linux-amd64.tar.gz
curl -fLO https://github.com/imksoo/routerd/releases/download/${RELEASE}/routerd-linux-amd64.tar.gz.sha256
sha256sum -c routerd-linux-amd64.tar.gz.sha256
tar -xzf routerd-linux-amd64.tar.gz
sudo ./install.sh
arm64 主机请使用 routerd-linux-arm64.tar.gz。安装脚本会放置二进制文件和 systemd 模板,创建配置样本,但不会覆盖已有的 /usr/local/etc/routerd/router.yaml。
routerd --version
安装后先做这两件事
- 编辑自己的配置。
- 用
routerd直接检查它,而不是先使用routerctl。
sudo install -d -m 0755 /usr/local/etc/routerd
sudo install -m 0600 /usr/local/etc/routerd/router.yaml.sample /usr/local/etc/routerd/router.yaml
sudoedit /usr/local/etc/routerd/router.yaml
sudo routerd validate --config /usr/local/etc/routerd/router.yaml
然后使用临时目录执行 dry-run:
LAB_DIR="$(mktemp -d)"
sudo routerd apply --config /usr/local/etc/routerd/router.yaml --once --dry-run --skip-service-manager \
--state-file "$LAB_DIR/state.db" \
--ledger-file "$LAB_DIR/ledger.db" \
--status-file "$LAB_DIR/status.json" \
--netplan-file "$LAB_DIR/50-routerd.yaml" \
--dnsmasq-file "$LAB_DIR/dnsmasq.conf" \
--dnsmasq-service-file "$LAB_DIR/routerd-dnsmasq.service" \
--nftables-file "$LAB_DIR/routerd-nat.nft"
--skip-service-manager 会跳过服务管理器操作;所有状态和渲染文件都留在临时目录中。
只有在你有控制台或独立管理路径,并已检查输出后,才启动服务:
sudo systemctl enable --now routerd
sudo routerctl get status
routerctl 现在可以工作,是因为 routerd serve 已作为 systemd 服务运行。它不是离线 YAML 验证器。
平台范围
本教程写给 Ubuntu Server + systemd。FreeBSD 和 NixOS 的支持处于不同阶段,不能直接照搬这里的服务和 nftables 步骤;请先阅读支持的平台。
有关升级、依赖列表、Live ISO 和卸载,请查看安装与升级。