最近更新: 2026-07-09
relayium serve --once 只处理一次传入的传输就退出——适合偶尔拉取一次的场景。但如果你想让某台机器成为一个常驻的落地点——一台每晚接收备份的家庭服务器、一台 CI 会推送构建产物的构建机、一台随时能接收手机照片的 NAS——你会想让 serve 一直运行,而不是每次传输都手动启动它。
本指南涵盖启动一个长期运行的监听端、批准谁可以向它推送、为没有人守在终端前的场景预先授权对端、在 systemd 下运行它,以及让使用 sync --delete 的发送方镜像删除操作。
serve 通过锁定的 TLS 1.3 连接监听守护进程直连推送(relayium://host:port),并把收到的内容写入某个目录。启动它不需要预先共享任何东西——不用复制指纹,也不用注册服务器:
relayium serve --dir ~/inbox
relayium serve --dir /srv/drop --port 9040 # non-default port
relayium serve --dir ~/inbox --allow-delete # let a sync --delete sender mirror deletions
当一个新的对端第一次推送时,如果 serve 运行在终端中,它会显示这次推送来自哪里、它的指纹,并请你批准——就像 SSH 首次连接未知主机时会询问一样:
Incoming push from 203.0.113.7:54021
fingerprint: 74318e3b…
Accept and remember this peer? [y/N] y
当 serve 没有终端可以弹出提示时——作为 systemd 服务、后台进程,或通过管道运行——它无法询问,因此会拒绝任何它尚未识别的指纹。这时应该提前授权对端。在将要推送的那台机器上运行 relayium id 打印它的指纹;在接收方上,在第一次推送到达之前把它加进去:
# on the machine that will PUSH: print its fingerprint
relayium id
# on this always-on RECEIVER: authorize it in advance
relayium authorize 74318e3b...
如果希望服务能在重启和崩溃后依然存活,把 serve 交给 systemd。把 --config-dir 指向一个固定路径,让主机的身份和它的对端允许列表在重启之间保持不变:
# /etc/systemd/system/relayium-serve.service
[Unit]
Description=Relayium always-on receiver
After=network-online.target
[Service]
ExecStart=/usr/local/bin/relayium serve --dir /srv/drop --port 9031 --config-dir /etc/relayium --allow-delete
Restart=always
User=relayium
[Install]
WantedBy=multi-user.target
默认情况下,serve 只会新增或更新文件——即使发送方对它运行 sync --delete,新增和修改过的文件依然会被复制,但它请求的删除操作会被跳过,接收方会记录一条警告。用 --allow-delete 启动 serve 即可选择启用真正的镜像同步,让发送方那边删除的文件在这里也被删除:
relayium serve --dir /srv/mirror --allow-delete
9031。可以用 --port 同时修改监听端(serve --port N)和推送方的目标地址(relayium://host:N)。
只需要批准某个指纹的第一次推送,而且仅当 serve 是在带终端的环境下运行时才会提示。此后它会被记住。如果 serve 以非交互方式运行(systemd、管道),就完全不会出现提示,而是直接拒绝未知对端——这时应改为用 relayium authorize 预先授权它们。
只有当你以 --allow-delete 启动了 serve,并且发送方在运行 sync --delete 时才可以。如果没有 --allow-delete,删除操作会被静默跳过,其余内容照常传输。
是的。relayium serve 是免费、可自托管的 CLI 的一部分——连接的任何一方都不需要账号,也没有付费档位。
默认在 ~/.config/relayium 中(id.key/id.crt 是这台主机的身份,authorized_fingerprints 是允许列表)。对于 systemd 服务,可以把 --config-dir 指向一个固定位置,例如 /etc/relayium。
把你拥有的任何一台机器变成一个免费的常驻接收方——基于锁定 TLS 的直接推送,不经过任何中继。
获取 CLI