Termux(或 proot-container)使用 ZeroTier

这段提示是 ZeroTier 安装脚本 发出的,意思是:

“二进制已装完,但脚本调用 systemdservice 来启动后台服务失败了,因为你没有 PID 1 的 init(Termux、Docker、chroot 都属于这种环境)。”

在 Termux(或 proot-container)里这是正常现象,服务本来就不能用 systemd 起;手动启动即可


手动启动(无需 root,无需 systemd)

  1. 找到二进制
    如果你按我之前的帖子装到了
    $PREFIX/opt/zerotier/zerotier-one
    就继续用它;如果用的是官方脚本,默认路径是
    $PREFIX/sbin/zerotier-one
    which zerotier-one 可以确认)

  2. 创建数据目录(一次即可)

mkdir -p $PREFIX/var/lib/zerotier-one
  1. 前台启动(方便看日志)
zerotier-one $PREFIX/var/lib/zerotier-one

看到 Starting control server... 且无 fatal 字样即可 Ctrl-C 停掉;说明程序本身正常。

  1. 后台常驻(推荐)
nohup zerotier-one $PREFIX/var/lib/zerotier-one >/dev/null 2>&1 &

想停服务:

pkill -f zerotier-one
  1. 加入网络
zerotier-one -d$PREFIX/var/lib/zerotier-one -q join <NetworkID>

返回 200 join OK 即成。


一键脚本(懒人版)

#!/data/data/com.termux/files/usr/bin/sh
export ZT_HOME=$PREFIX/var/lib/zerotier-one
mkdir -p $ZT_HOME
if ! pgrep -f zerotier-one >/dev/null; then
  nohup zerotier-one $ZT_HOME >/dev/null 2>&1 &
fi

保存为 zt-start.shchmod +x 后每次进 Termux 执行一次即可。


总结

  • “cannot start service” 不是安装失败,只是找不到 systemd。
  • Termux/proot 里 手动 zerotier-one $datadir & 就能正常用。
  • 记得把数据目录固定,升级时直接覆盖二进制即可,配置无损。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值