使用sonic + Zerotier 实现异地连接设备
虽然sonic官方不推荐这样做,毕竟有线连接更稳定,但是实测使用流畅度还不错
解决了我的两个需求:
1、远程调试
2、异地设备共享
下面介绍搭建步骤:
我使用的Linux主机:腾讯云轻量应用服务器docker基础镜像 CentOS7.6-Docker20
-
sonic前后端、agent部署
-
按照官方文档使用docker-compose快速部署
-
需要使用最新的1.4.1-rc版本
-
官方部署文档:https://sonic-cloud.gitee.io/#/Deploy?tag=back-end
注意提前创建数据库,字符集为utf8,排序规则为utf8_general_ci
-
-
zerotier账号注册(https://my.zerotier.com/)
我这里描述的不详细,zerotier相关的建议先看视频教程
视频教程:https://www.bilibili.com/video/BV1VJ411H7Yv
设备连接 & Zerotier Moon加速:https://tvtv.fun/vps/001.html
Android设备moon入轨apk下载:https://zhuanlan.zhihu.com/p/362884740
-
Zerotier 使用邮箱即可注册
-
注册之后创建一个网络
-
复制网络ID
-
建议使用私有网络,在设备加入网络之后需要信任才能建立连接
-
Linux接入Zerotier
# 安装 sudo curl -s https://install.zerotier.com | sudo bash # 加入虚拟网络 sudo zerotier-cli join xxxxxxxx # Zerotier 的网络id # Tips # 因为sonic的agent容器使用的是host模式,跟宿主机的网络是共享的,所以直接在宿主机安装Zerotier即可
-
Android设备接入Zerotier
①点击右下角+
②输入Zerotier的网络ID即可
③Moon加速使用右上角入轨功能,输入Moon的节点ID即可
④如果没做任何修改,Moon节点地址和种子都是对应Moon节点的ID
-
⑤设备连接之后可以在Zerotier控制台看到局域网IP
以上做完之后可以ping一下局域网IP检验一下是否能够连接成功,如果可以ping通说明连接是ok的
我使用Moon加速后延迟在30ms左右
然后就可以用adb进行连接即可
adb连接IP即Zerotier 控制台的 Managed IPs
docker exec sonic-server-v141-rc_sonic-agent_1 /bin/bash -c 'adb connect 192.168.192.69:5555'