最近接到需求,需要在Linux服务器上连接本地的Android设备,要求能在Linux上执行adb命令识别到本地的Android设备。查了一些资料,请教了一些朋友,被推荐了这种通过ZerTier组件虚拟局域网,让需要连接的设备都处于这个虚拟局域网中,就可以实现连接要求了。
ZerTier是内网穿透工具,可以搭建用于自己的虚拟网络,经过授权连接成功之后彼此都在同一网段,可以像在局域网一样互相访问。
先到官网注册一个zerotier账户,如果你有GitHub的账户,可以通过第三方登录进行授权。注册地址:https://my.zerotier.com/
有了账户之后新建一个网络:
Create A Network
创建了网络之后需要记住这个即将要使用网络的NETWORK ID:
NETWORK ID
从官网下载安装包:
ZeroTier的Windows安装包
双击自动安装,完成安装后,可以在右下角的任务栏中看到
运行中的ZeroTier
右键图标后可以看到一个Join Network的选项,点击后会出现填写NETWORK ID的弹窗。还有一个My Address,左键点击后会自动复制到剪切板。
将这个Address id填到官网的NETWORK配置中,通过点击这个进入配置页面:
点击要加入的Network
在配置页靠下的部分中,添加Node:
将Windows设备作为Node添加到网络
添加成功后,可以在Windows的dos界面中看到被指定的IP:
被分配的ip地址
Linux的ZeroTier客户端安装都可以通过命令,在官网也给出了参考命令,这里记录一下我使用的命令:
curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && \
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
sudo apt install zerotier-one -y如果你的Linux没有curl,就通过本地安装工具安装一下curl。
安装成功后会给出一个Address id,也是一样需要添加到官网中自己建的网络中的,添加方式和上面的一样。
如果你没记住这个Address id,也可以通过命令查看,下面任意一个都可以:
zerotier-cli info
zerotier-cli status除了上面查看状态信息的命令,还有几个比较常用的命令:
# 加入虚拟局域网
zerotier-cli join
# 离开虚拟局域网
zerotier-cli leave
# 显示连接列表
zerotier-cli listnetworks
# 启动zerotier服务
sudo systemctl start zerotier-one.service
# 停止zerotier服务
sudo systemctl stop zerotier-one.service
# 打开开启自启动zerotier
systemctl enable zerotier-one.service
# 关闭开启自启动zerotier
systemctl disable zerotier-one.service 去官网下载客户端,不过大概率是会下载失败的,至于原因嘛,DDDD。可以在网上找一下客户端,不过个人建议还是去官网下,因为网上经过别人手的东西很难说是否带了私货。我这里也提供一个Android客户端的网盘,真没办法官网下载的可以从这里下载:
密码:rg5c
https://cloud.189.cn/web/share?code=UbQJ7veQJfmeapk安装到手机成功后,启动apk:
启动页面
点击右上角的➕,会出现一个Join Network的页面,将在官网Create A Network时记录的NETWORK ID填到这个页面中:
Join Network
填完NETWORK ID后直接点击Add Network就可以。会自动回到首页,点击列表中出现的Network的开启按钮,出现一个提示弹窗,大概意思就是会监控流量,这也就是ZeroTier很难在实际工作中使用的原因,多数有点规模的公司,为了安全考虑,都不会允许使用ZeroTier。但是我们先不考虑这个,只要能达到目的就行。
监控流量提示
点击确认后,首页左下角会出现一个Address id:
左下角Address id
将这个Address id填到官网的NETWORK配置中,通过点击这个进入配置页面:
点击要加入的Network
在配置页靠下的部分中,添加Node:
将Android设备作为node添加到网络
将网络中的设备ip地址都改成同一个网段。当设备都处于ONLINE状态时,就可以互相直接ping通了。
在操作端配置好adb环境,在Android设备上开启监听端口,如果没有端口监听,可以通过这个命令开启:
# 端口不一定是5555,只要没其他进程占用就行
adb tcpip 5555然后就能用adb连接了,具体效果:
连接后的效果
对于个人,且没有什么机密信息的情况,ZeroTier的确是个简单又方便的工具,除了会有点网络延迟,其他暂时没感知到什么毛病。
但是正是因为数据安全和流量监控互相冲突,ZeroTier往往不能成为我们的远程adb连接的首选方案。
| 留言与评论(共有 0 条评论) “” |