更新日志:

2023-5-24 添加frp

2023-4-7 添加Tailscale

2022-8-1 添加WireGuard

起因

某日趁着某家云手机厂商打折的时候换了台新的云手机,旧的云手机就送给了群友,而他原本是在自己的电脑上用AzurLaneAutoScript挂碧蓝航线的,就问我能不能在云手机上跑,刚好他也有一台轻量云服务器,于是事情就变成了标题的情况。其实要实现这件事本身并没有什么技术含量,这篇文章也只是单纯记录下操作。

首先AzurLaneAutoScript是使用ADB进行相关操作的,所以只要实现内网穿透让云服务器连上云手机的ADB端口就行,要实现内网穿透的话方法就非常多了,拿了一些常见的内网穿透方案测试,最后测试出了几个能用的方案,分别是TailscalefrpWireGuardN2NZeroTier。不过截止本文发布的2022年4月6日,ZeroTier的安卓客户端长时间使用时存在自动断连的现象,也不懂是什么原因,所以不推荐使用。

本文所使用的云服务器操作系统是Windows Server,所以只记录了Windows下上述几个软件的部署流程,但是本来上述几个软件和Alas都是可以在其他操作系统上运行的,所以理论上不管你服务器用的什么操作系统都可以正常使用,不过就是需要你自己折腾了。

另外说到云服务器,群友买的是腾讯的轻量应用服务器,去看了下才发现新户或者首单是直接打1折,2h4g的配置三年也才两三百,感觉一直在续阿里的我亏了一个亿。

优缺点总结

首先总结下这几个方案的优缺点:

Tailscale:配置简单,但是登录可能有些困难

WireGuard:配置略复杂,流量消耗低

frp:配置略复杂,安卓上可以兼容其他vpn或者加速器

N2N:配置较简单,流量消耗略高,连接速度略慢

ZeroTier:配置简单,但是安卓客户端长时间使用时存在断连现象(2022-4-6)

ZeroTier如果修复了安卓客户端的问题那就是首选,没有的话在Tailscale可以正常登录的情况下推荐Tailscale,其次是frp或者WireGuard,最后一个N2N比起其他几个方案没有什么优势,可以不考虑使用

配置过程

Tailscale

Windows和安卓客户端都可以在官网下载

首先需要在官网登录(注册),官方只支持谷歌,微软和GitHub登录,这也是为什么前面说登录有点困难。接下来直接在服务器和云手机上安装客户端并登录,登录成功后可以在网页上的Machines页面看到相应的设备,新设备需要approve一下。Tailscale默认使用41641端口,需要在服务器的安全组或者防火墙里打开该端口的TCP和UDP,之后根据Machines页面显示的ip正常连接即可。

frp

Windows和安卓使用的可执行文件从官方GitHub上下载,选择frp_xxx_windows_amd64.zipfrp_xxx_linux_arm64.tar.gz

首先配置服务端,解压zip,编辑frps.ini修改为以下内容,我这里只演示一个带身份验证的最简单配置,其他更复杂的配置请参考官方文档。

[common]
bind_port = 7000
authentication_method = token
token = 123456

其中bind_port就是暴露给公网的端口,可以自行设置,记得要在服务器的安全组或者防火墙里打开该端口的TCP和UDPtoken就是一个简单的身份验证,客户端需要跟服务端设置相同的token才能连上。编辑好后在cmd里运行

frps.exe -c frps.ini

即可开启服务端。

接下来配置云手机客户端,解压后编辑frpc.ini为以下内容

[common]
server_addr = x.x.x.x
server_port = 7000
token = 123456

[alas]
type = tcp
local_ip = 127.0.0.1
local_port = 5555
remote_port = 6000

server_addrserver_port就是服务器的ip地址和上面设置的端口,token保持一致,local_iplocal_port就是adb的默认端口了,remote_port表示在服务端监听的端口,在服务器上就可以通过这个端口连上adb,可以自行设置。

之后就把frpcfrpc.ini传到云手机上,这里需要一个终端来运行frpc,我选择的是Termux,然后在文件管理器里选择用Termux打开frpcfrpc.ini会弹出如下提示

选择左边的OPEN DIRECTORY它就会把文件保存到Termux的数据目录并在终端中打开所在文件夹,然后敲命令

chmod +x frpc
./frpc -c frpc.ini

就可以在终端看到连接成功提示,服务端也会显示连接成功

在服务器上就可以使用127.0.0.1:6000(remote_port)连上adb了。

另外因为frp本质就是反向代理,所以Alas里不用选择nc版本的截图方式,而用原始版本其实就是nc模式。

WireGuard

首先先从官网下载安装包,建议直接下载MSI,因为官网是被墙的,在线安装可能会失败。接着下载一个别人写好的Windows搭建服务端的工具Wg Server for Windows,因为官方的Windows的GUI只有客户端功能,都安装好后就可以开始配置了。

打开Wg Server for Windows,首先配置Server Configuration

输入一个名称,Listen Port使用默认的端口或者自己选一个,记得要在服务器的安全组或者防火墙里打开设置的端口的TCP和UDP,在Endpoint处填上服务器的公网ip,Address只要不跟服务器其他网络冲突的话就可以保持默认,最后分别点击Private keyPublic KeyGenerate,保存即可。

接着配置Client Configuration,点击Add Client,输入一个名称,Address点击Generate from ServerAllowed IPs填上上面Server Configuration所使用的Address,我这里就是10.253.0.0/24,因为我们只希望adb的流量走服务器,DNS直接留空,之后分别点击Private keyPublic KeyGenerate,点击上方的Export Configuration File把客户端的配置文件导出,后面要用到,最后点击save即可。

之后在主界面的Tunnnel Service点击Install tunnel service,然后在下面的选项卡中切换到Internet Connection Sharing,点击Enable Internet Sharing,选择连接公网的网卡,服务端就配置完成了。

接下来配置云手机,下载安装官方安卓客户端,打开后点击右下角的+号,导入之前我们导出的配置文件,先别急着连接,点击刚刚导入的配置,再点击右上角的编辑按钮,拖到下面,在“连接保活间隔”里填上25(官方推荐),这样服务器才能主动通过adb连接客户端。

保存后就可以开启连接了。

开启连接后我们可以在Wg Server for Windows里点击右下角的View查看是否连上,显示出latest handshake并且transfer有流量通过就是连接成功了

N2N

Windows服务端使用EasyN2N,安卓客户端使用Hin2n

先配置服务端,在服务器上运行EasyN2N,选“其他功能” – “服务端”,设置一个端口,选择V3版本,然后直接启动服务器就行,记得需要在服务器的安全组或者防火墙里打开设置的端口的TCP和UDP,然后在主界面输入本地127.0.0.1地址和设置的端口,勾上自动分配,设置一个小组名称,点击启动看到自动分配的ip就是连接成功了。

接着设置安卓端,在Hin2n中点击右上角的+号,输入一个配置名称,然后选择跟服务器相同的V3版本,Supernode输入服务器的ip和设置的端口,Community输入相同的小组名称,勾上Get IP from supernode,点击save启动即可。

都连接成功了可以在EasyN2N的主界面点击小组名称旁边的按钮看到云手机的设备,虽然显示中转模式,但是因为N2N服务器也是在云服务器上,所以还是相当于直连了。

另外需要注意N2N默认是不带身份验证的,任何人都可以通过端口连上你的N2N服务器,需要身份验证的话请参考官方文档设置。

ZeroTier

Windows和安卓客户端都可以在官网下载

首先需要在官网上创建一个账号,然后点击Create A Network就可以得到一个16位的network ID,网络默认是私有的,新客户端连接的时候需要手动授权一下,当然你也可以直接改成公开的,就不需要手动操作了。

接着配置云手机,下载ZeroTier的安卓客户端,打开后点击+号输入16位的network ID,点击Add Network启动网络,连接成功的话可以在详细里看到分配的局域网ip。

最后配置云服务器,下载ZeroTier的Windows客户端,根据官方的说明在RDP里安装似乎会有问题,可以通过这个命令安装解决。装好后在下方的框框内输入16位的network ID即可,连接成功的话一样可以在详细里看到分配的局域网ip,然后记得去服务器的安全组或者防火墙里添加一下ZeroTier用到的端口TCP和UDP协议的规则,不然会无法直连导致走中转速度太慢而无法正常使用。

云手机

云手机方面目前测试过4款,最早测试过红手指KVIP和雷电云KVIP,后来红手指出了安卓10后又测试了最高的kvip和最低的vip,都能正常连接,其中雷电云不需要额外设置就可以直接连adb,红手指需要在开发者选项中开启USB调试才能连上adb

另外需要注意,云手机的其他机型可能存在无法连接adb的问题,低配置的机型也会因为网络或者性能等问题导致截图非常慢而无法使用,所以购买前建议先买最短的时间自行测试一下。

都配置好后可以ping测试一下,下面的截图是用腾讯的上海服务器和雷电云测试的,可以发现延迟是非常低的。

AzurLaneAutoScript

AzurLaneAutoScript的安装就没啥好写的了,作者已经提供了傻瓜安装包,直接运行全自动安装。Alas的设置里Serial填入云手机分配到的局域网ip和默认5555端口即可。

贴几个性能测试的结果

腾讯上海服务器+红手指安卓10vip+WireGuard

腾讯上海服务器+雷电云kvip+WireGuard

可以看出安卓9以下选择aScreenCap_nc,安卓10因为Alas没有相应版本的aScreenCap所以选择DroidCast_raw

另外还试了个骚操作,因为总觉得一台云手机就挂一个碧蓝航线太亏了,于是在云手机里装了X8沙箱又运行了一个碧蓝航线,没想到居然还吃得消,Alas只需要通过不同的端口连接即可,x8沙箱主沙箱端口是9527,每个子沙箱+1。

去日本玩了几天

在日本玩了11天后,这周总算是回到了国内。从19年初就想着要去日本玩一次,想到19年底终于成功飞了一次,也算是如愿以偿了。虽然是第一次去日本,但是并没有...

阅读全文

Fate/Grand Order的那些事

日服v1.15 在一个月的时间里经历了太多事情,现在终于可以慢慢的写下这篇马后炮了。 调试 Fate/Grand Order在v1.11换了个保护并禁止了root过的手机,其实当时...

阅读全文

给博客搬了个家

给BAE充的钱在这个月终于用完了,其实原本应该上个月就用完了,结果12月百度又发了一张劵,害我只有又多用了一个月_(:з」∠)_ 抛弃了BAE后我也转到玩服务...

阅读全文

140 条评论

  1. 大佬 我用的是zero tier 服务器的端口应该设置是啥呀 萌新捣鼓了两天了也没解决。。救命

  2. 云手机和云服务器可以相互ping通,但云服务器无法连接到云手机,failed to connect to ‘xxx.xxx.xxx.xxx:5555’: Connection refused
    云手机已开启USB调试,运行adb命令会提示error:closed。所以转而使用另一个人的方法,su && setprop service.adb.tcp.port 5555 && stop adbd && start adbd。云服务器已经放行了5037、5555、41641等端口,TCP和UDP都放行了。
    然而还是不行 :!: ,大佬有什么办法吗

  3. 我使用的是双子星云手机(淘宝18/月),连接方式用的wire guard,之前用了2个多月都没遇见什么问题,最近不知道为什么经常遇到“adb read timeout”报错,有佬知道怎么解决吗。

  4. 您好,打扰一下,请问使用多个云手机跟一台云服务器的话,ALAS后面的端口需要修改成什么呢?比如第一台云手机是5555,那么下一台云手机应该怎么填呢?

  5. App stop: com.bilibili.azurlane
    ERROR 18:42:14.460 │ AdbTimeout: adb read timeout
    INFO 18:42:14.468 │ disconnected 100.88.138.66:5555
    INFO 18:42:30.677 │ connected to 100.88.138.66:5555
    INFO 18:42:30.677 │ <<>>
    INFO 18:42:30.677 │ Here are the available devices, copy to
    Alas.Emulator.Serial to use it or set Alas.Emulator.Serial=”auto”
    INFO 18:42:30.677 │ 100.88.138.66:5555
    INFO 18:42:30.677 │ 172.26.101.114:5555
    INFO 18:42:31.704 │ <<>>
    INFO 18:42:31.704 │ App start: com.bilibili.azurlane
    INFO 18:42:33.112 │ <<>>
    INFO 18:42:33.184 │ [Device Orientation] 1 (HOME key on the right)
    INFO 18:42:38.550 │ [Device Orientation] 1 (HOME key on the right)
    INFO 18:42:43.635 │ [Device Orientation] 1 (HOME key on the right)
    INFO 18:42:49.004 │ [Device Orientation] 1 (HOME key on the right)
    INFO 18:42:51.600 │ Click ( 491, 331) @ LOGIN_CHECK
    INFO 18:42:51.657 │ Login success
    INFO 18:42:56.954 │ Click ( 469, 347) @ LOGIN_CHECK
    ERROR 18:42:56.954 │ ConnectionAbortedError: [WinError 10053]
    你的主机中的软件中止了一个已建立的连接。
    INFO 18:42:56.967 │ disconnected 100.88.138.66:5555
    INFO 18:42:57.101 │ connected to 100.88.138.66:5555
    我最近总出现这样的问题是怎么回事?
    用的是n2n,tailscale也用了还是出错,之前一直没有问题,用了一年多了,就是这两天一直这样。USB调试也是开了的

    1. 没有,后来我让客服给我把云手机换了,换了几次就好了,不过我用的还是n2n,其他的很容易就断开连接,就n2n能连续几个月

  6. 大佬测试zerotier多久会断连呢,我现在用最新的app挂了两天还没出现断连的情况。

  7. 我是用的红手指kvip,tailscale连接经常用着用着就卡死,整个云手机极卡而且网络断开,只能换新的,不知道大佬有没有遇到过

  8. 楼主楼主,wireguard也部署成功了,端口也打开了,但是alas的模拟器 Serial设置难道不是局域网的那个ip吗

    1. 最后还是用了雷电云的tailscale,就是新设备需要approve一下是什么意思啊,端口也设好了,腾讯云服务器和雷电svip云手机都能相互ping,但是就是alas显示No available devices,要不大佬加我qq2483571607todesk远程连接一下,求求大佬了

    2. 最后也没弄成,还是换回星界链了,现在推出了一个alas版星界链自带alas,1个月40,3个月100,算起来比云服务器和云手机单独买要划算,而且延迟大概0.05s

    3. 然而其实也没有多划算,主要是星界链实在太贵了,而且我观察了大半年,从来没发现它有打折过。现在像红手指之类的升级安卓10之后,最低档的vip运行碧蓝也是非常流畅,几乎每个月都有打折活动一年200都不到,至于延迟啥的都是虚的,实测1秒的延迟也能正常挂alas,再短的延迟也不会有任何改进。至于服务器,家里有台nas所以直接在nas上开docker挂alas了,连接直接用tailscale搞定,省下服务器的钱

  9. 使用frp的方式 到最后一步报错是什么原因(bash: ./frpc: cannot execute binary file : exec format error)

    1. 最后还是用了雷电云的tailscale,就是新设备需要approve一下是什么意思啊,端口也设好了,腾讯云服务器和雷电svip云手机都能相互ping,但是就是alas显示No available devices,要不大佬加我qq2483571607todesk远程连接一下,求求大佬了

  10. emmm,因为雷电云的维护,为了推广10系统,削弱了KVIP的性能,所以重新考虑云电脑+云手机的配置,之前是N2N的模式,但是不知道为什么N2N最近超级卡,所以打算放弃使用WireGuard。折腾了3个小时。腾讯轻量云+雷电云kvip+WireGuard失败,确认端口防火墙全ALL,重新安装过系统,Windows 2022系统,包括安装过WireGuard最新版本,较低档次版本,手机端也是这样处理,皆无法连接上,网卡重装后只有一张,比如是不是雷电云出现BUG了,试过重启换机,后又开一台红手指,一样的情况,这样折腾了3个小时,没办法解决,所以在这里我个人不推荐WireGuard。
    我推荐UP主最新推荐的Tailscale,30分钟搞定,顺滑舒服,一波搜哈,有无公网皆可以使用,大不了上个魔法梯子搞定的事情,并且我在雷电云KVIP里顺利安装,并且,用上云服务的还怕那么流量吗?又不是跑的CDN流量。给新手提个醒,alas里填写的是Tailscale分配的ip。
    最后测试一下X8沙箱的性能应该如何配置。反正我是多开的,压制到极限性能才是好玩的。
    INFO 03:53:28.617 │ BENCHMARK RESULTS
    ┏━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━┓
    ┃ Screenshot ┃ Time ┃ Speed ┃
    ┡━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━┩
    │ ADB │ 8.611s │ Ultra Slow │
    ├───────────────┼─────────┼────────────┤
    │ aScreenCap │ 11.52s │ Ultra Slow │
    ├───────────────┼─────────┼────────────┤
    │ DroidCast │ Failed │ Failed │
    ├───────────────┼─────────┼────────────┤
    │ DroidCast_raw │ 14.984s │ Ultra Slow │
    └───────────────┴─────────┴────────────┘
    INFO 03:53:28.629 │ Recommend screenshot method: ADB (8.611s)
    ┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━┓
    ┃ Control ┃ Time ┃ Speed ┃
    ┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━┩
    │ ADB │ 0.411s │ Very Slow │
    ├──────────┼────────┼───────────┤
    │ Hermit │ Failed │ Failed │
    ├──────────┼────────┼───────────┤
    │ MaaTouch │ 0.052s │ Fast │
    └──────────┴────────┴───────────┘
    INFO 03:53:28.637 │ Recommend control method: MaaTouch (0.052s)

  11. 我用的的红手指gvip+WireGuard,填了25秒的保活,但是lastest handshake每次要到2~3min才刷新,大佬有遇到过这个问题吗?

    1. 问题在于一次都连不上,adb每次都是目标计算机积极拒绝。换了n2n试了一下,小组成员那个列表那边也是一会有一会又看不到设备,双击测延迟也是失败的。同样的配置,我换成自己的手机,就都能正常连接 :cry:
      所以我怀疑是不是红手指有啥问题(

    2. 打开了, adb connect命令有时候能连上, 但是大部分时候都是”由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”

  12. 你好,我使用阿里云+雷电云或者红手指,换了很多次设备,但是我的截图却一直最快只有2S

    1. 那可能是你云手机配置太低了,低配里面只有红手指的安卓10 vip能用,普通的vip速度也是非常慢

    2. 那我就不知道了,我也用的雷电kvip,测试结果跟博主贴出来的一样,唯一能想到的就是你服务器安全组端口没开导致走了中转

  13. 腾讯云+红手指,红手指adb上传速度感人,1兆到5兆不等,导致截图上传云端alas最快1秒,最慢20秒的都有 :lol: 巨慢,不过也能跑

    1. 现在用的红手指安卓10的最低vip档,用不了aScreenCap所以用的adb截图测试也只有0.5秒,建议你跟客服换个设备看看

  14. 您好请问云手机里x8沙箱里面是要再开一个hin2n之类的用来给alas调用吗,我沙箱里面打开hin2n会闪退

  15. 没事儿就过来转转,今天给同事讲截帧的时候想起你这里了,ab当初帮了不少忙,顺带表个白。爱你哦么么~

    1. 服务器公网流量只算出流量,也就是只有服务器发送adb命令的那一点流量,用WireGuard的话一个月都用不到30g,N2N会稍微多一点

    2. 大佬请问你现在一个月用多少流量?我用腾讯云的服务器看,alas运行时公网带宽基本上都是1点几Mbps,算了一下这样一个月也要好几百g

    1. 请问大佬找到解决方法了吗,我也没找到完美的解决方法,但是幸亏alas卡启动不报错,我用其它软件定时启动碧蓝 好像勉强可以用

  16. 想问一下可以用真的手机代替云手机吗,我用真的手机连接好之后,运行alas出现adb不能连接的问题

  17. 我想问一下,还没有买腾讯云。一直在笔记本上挂的,买了腾讯云之后,是相当于买了个模拟电脑(就是云服务器?),不需要自己家里的设备(手机电脑)吗,请您回复,谢谢!

  18. 楼主你好,我按照您的教程一步步地部署,但是wireguard好像并没有连上,可以问一下是什么问题呢?

    1. 我只能给你提几个会出错的地方你自己检查
      1.检查配置文件有没有问题,我每个配置都截图出来了,除了key以外其他的你都可以跟我保持一致
      2.检查服务器wireguard的端口的tcp和udp是否打开
      3.服务器上配置最后一步网卡是否分享正确,一定是要选连接公网的那张

    2. 我想问的是
      1. udp和tcp是入站规则还是出站规则(其实我都设置了)
      2. 网卡选择是否为以太网

      此外我的配置文件确实与楼主您的一致

    3. 入站规则,出站规则应该什么都不设置,保持默认的允许所有访问
      “以太网”只是网卡名字,有多张网卡的情况下哪张网卡连的公网要你自己判断

    4. emmm,还是不行,安卓端那边只有流出的流量却没有接收的,服务器这边也没有显示出跟楼主一样的效果

    5. 试了一下n2n,也是不行,估计是我的服务器的问题?(我也是使用腾讯的轻量应用服务器)
      (hin2n的那个ip地址应该是填写服务器的公网ip吧?)

  19. 大佬,按照你说的,我云服务器上是启动成功了,端口也开放了。但手机模拟器上hin2n无法连接。一直在asking for IP address

  20. 你好,为什么我最后云手机使用hin2n连接一直弹asking for IP address,这怎么解决?

  21. 你好,按照步骤来最后还是没弄好,能加个联系方式或者交流群询问一下吗

  22. 大佬,沙盒里面好像装不了hin2n,想问下沙盒里面运行的话,alas如何配置端口

    1. 嗷嗷,谢谢大佬。不过还想问下,就是我好像只能沙盒在最前面可以用,要是后台好像就获取不了了

  23. 大佬我也是KVIP,我怎么装不了voms,装好rom后无法进入虚拟系统。大佬你装的是安卓几的

  24. 这里给后来的人一个提醒,你如果用的是腾讯云的WINDOWS server系统的话(我不知道其他云服务器怎么样,我用的是腾讯云),可能你在安装完ALAS后点启动会报(DLL:找不到指定的模块)这个错误,这里提供一个方法,步骤如下:
    1、在开始菜单栏里打开服务器管理器
    2、选择添加角色和功能
    3、一直点下一步,直到【功能】这一步
    4、在【功能】界面往下拉,找到并打开【用户界面和基础结构】
    5、勾上【桌面体验】
    6、一直点下一步,直到安装完毕,重启云服务
    7、打开ALAS后再按照文章里大佬的办法后就可以正常使用了

  25. 今天刚买的 雷电云 开发者选项 中的 usb调试 不能开启
    咨询客服 说全机型 都不支持 ADB
    有没有安卓的脚本的推荐

    1. www 今天晚上 更换成 经济型 ok 了 而且网速是增强型的10倍
      大家千万别买 增强型。。。。 网速慢 还不能adb

    2. 顶一下你,增强型开不了usb调试,买经济型才可以。但都不便宜,不如省事直接买星界链

  26. 雷电云好像端口不能默认为5555,问客服说不开放adb,作者是怎么连的

  27. 您好,打扰一下,在最后一步使用ALAS时一直出现错误,想请问一下前文关于云服务器使用何种镜像系统?

    1. 云服务器使用什么系统并没有什么关系啊,本身alas在win和linux上都是可以运行的,如果你是alas启动报错,你最好去alas的github上问问,如果是adb连不上,可以去云手机的开发者选项把USB调试打开看看

    2. 感谢您的回复,我尝试重装了Alas依旧无效,想请问一下您在云服务器中是安装Alas即可正常使用,无需再做其余环境配置之类的吗

欢迎留言

4 + 6 =