在我的上一篇日记“远程唤醒并使用无公网IP的电脑”( https://www.learndiary.com/2021/07/wakeup-and-use-computer-without-public-ip/ )中,讲了怎样使用 ssh 实现跨网访问远程电脑的方法,但里面有个必要条件是必须存在一台有公网IP的电脑作为互连终端之一或者作为中介。今天介绍一款商业软件蒲公英的免费版本来实现跨网跨平台的远程互连。跨网指终端之间是不能直接互访的,跨平台这里以Debian Linux 10、Windows 7、Android 7 三个平台为例。为了方便演示,这里以VirtualBox 虚拟机演示 Linux 和 Windows,以 Uengine Android 模拟器演示 Android 手机。宿主机平台为 Deepin Linux 20.2.3。(末尾附演示视频B站地址)
一、配制演示平台
宿主机 Deepin Linux 的 IP 地址为 192.168.1.109。
按照常规的安装方法在 VirtualBox 上安装 Debian Linux 和 Windows,网络就保持默认的“网络地址转换(NAT)”,这样,安装出来的系统相当于位于互相隔离的独立网络中,只能从虚拟客户机中访问外部网络,而外部网络却不能访问虚拟客户机。虚拟客户机之间也不能互相访问。网络的默认配置中,虚拟客户机的IP可能会是一样的,所以为了演示方便,这里手工配置了客户机的 IP 地址,分别为 10.0.2.100、10.0.2.200。
Uengine Android 模拟器可以直接在 Deepin Linux 的软件仓库中安装,我使用了两个小脚本分别用于安装 APP 和启动 Android 模拟器。
安装 APP:
文件名:installapp
终端执行命令:installapp apk文件完整路径,如:installapp /home/user/test.apk
#!/bin/sh
sudo /usr/bin/uengine-session-launch-helper -- uengine install --apk=$1
exit 0
启动 模拟器:
文件名:openapp
终端执行命令:openapp
#!/bin/sh
/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
exit 0
Android 模拟器就使用自动设置的IP 192.168.250.2。安装 termux 终端用于执行测试命令。
二、测试真实 IP 连通性:
在各个平台之间用命令终端 ping 一下彼此真实的 IP 测试连通性,可以发现:Debian 10 和 Windows 7 ,它们二者可以访问 Android 7,二者之间不能互相访问。Android 7 不能访问 Debian 10 和 Windows 7。现在我们需要在3个平台里面安装蒲公英客户端实现三者能够互相访问。
三、注册贝锐帐号并安装蒲公英软件
首先打开贝锐官网 https://www.oray.com/ 注册帐号。在 https://pgy.oray.com/download/ 处下载蒲公英客户端。Debian Linux 和 Windows 直接在虚拟客户端里面下载并安装,Android 模拟器在宿主机上下载安装。安装后在各个虚拟客户端登录注册的贝锐帐号即可。但是经我测试,在贝锐官网的“蒲公英网络管理平台”之中的“智能网络”中手工添加设置各客户端,使用各客户端的UID和设置的单独密码是比较好的登录方式。每个客户端均使用注册的贝锐总帐号在注销重登录的过程中,可能造成蒲公英误认为重新登录的蒲公英客户端为超出3个免费客户端之外的第4个客户端,从而造成登录失败。
四、蒲公英虚拟IP连通性测试
每个客户端登录蒲公英帐号后,在各个客户端之间用蒲公英客户端或者命令终端 ping 一下彼此蒲公英虚拟 IP 测试连通性,可以发现3个平台之间都能够互相访问了。没 ping 之前在 Windows 和 Android 客户端可以发现本客户端到其它2客户端的连接方式可能是“转发”,ping 一下彼此,就会发现有的客户端的连接方式变成了“P2P”。这里“转发”是指通过贝锐官方的蒲公英服务器中转的连接,而“P2P”则是客户端之间直接连接。本次测试中:Debian 10 和 Windows 7 二者彼此之间是“转发”连接方式,ping 的响应时间是100ms 左右;Android 7 与 Debian 10 或者 Windows 7 二者彼此之间是“P2P”连接方式,ping 的响应时间是 1ms 或 2ms。
五、蒲公英虚拟IP连通速度测试
我们用 scp 客户端和服务器来测试一下蒲公英虚拟IP彼此之间的连通速度,本次只测试从对方(不含 Windows)的下载速度。测试命令如:“pscp.exe -P 8022 user@Android_VIP:/data/data/com.termux/files/home/1G.bin .\”。 本次测试中,Debian 从 Andorid、Windows 从 Android、Windows 从 Debian、Android 从 Debian 的下载速度分别为约:12MB/s(约100Mbps)、4.2MB/s、120KB/s、13MB/s。可以看到 Windows 从 Debian 下载的速度确实是蒲公英免费版的“转发”1Mbps(理论 125KB/s),另外3个都是“P2P”直接连接方式。
六、小节
蒲公英免费版限制只能使用3个软件客户端,且保障连通速度为 1Mbps。据说客户端之间有比较大的概率运行于“P2P”高速传输模式。
欢迎交流指正,本人关注 Linux、开源及IT,提供 Linux、Windows、软件、计算机、网络相关应用技术服务,淘宝网店:学习日记小店 https://xxrjxd.taobao.com/ 。
七、演示视频网址
https://www.bilibili.com/video/BV1G64y1Y7QQ?share_source=copy_web