元气骑士远程联机

【准备工作】
要进行远程联机有几点你需要准备 。
1、vpn
用来让两台android设备直接通讯 , 或者你可以用其他手段 , 只要你能让两台设备互相发送udp包就可以 。我的方法是在自己的阿里云服务器上搭了一个openvpn 。
2、一台获得root权限的android设备
由于元气骑士建连实现方式的原因 , 无法直接通过vpn连接成功 , 需要进行一个建连数据包的转发动作 。目前我的方法是直接在内核层写了一个C程序进行数据包的转发 。我不想把日常手机root , 而有权限的旧手机也太久没用了 , 所以最后用的是夜神模拟器 。
【操作步骤】
首先 , 打开虚拟机并连接vpn , 连上你的vpn后看看自己的vpn地址 , 再要到对端的vpn地址就行 。
夜神有自带的adb工具 , 虽然比正常的adb难用一些 , 不过如果你没有什么深入玩android中Linux层的东西的话 , 能够将就着先用 。找到你的夜神安装路径 , 我的路径为“D:\Program Files\Nox\bin” 。在cmd中进入这个路径 , 输入以下指令(我截图中由于我有配置环境变量所以没有进入该路径) 。
记得adb shell的指令还需要敲入一个回车键 。回车完之后如果出现上图的root@android:/ #证明成功 , 已经进入android系统的调试模式 。注意 , 前面要是root才是开启root成功 。
元气骑士远程联机

元气骑士远程联机

【拷入并执行转发程序】
先退出来 , 在上面的cmd命令栏中输入“exit”退出adb , 或者新开一个cmd 。输入下面指令,将转发文件导入系统 。前面的是转发程序所在的路径 , 后面的是放入android里的路径 。
元气骑士远程联机

出现下图中的输出代表成功 。需要注意的是 , 这里用Push命令的时候要注意一点 , 我的proxy文件的路径中存在中文的话造成了传输的异常 , 好像不是一个必现的问题 , 但是最好还是不要让文件路径存在中文 。
元气骑士远程联机

【元气骑士远程联机】

接着 , 进入该路径 。
元气骑士远程联机

授予程序执行和权限 “chmod 777 udp_proxy_x86” 。下面一行是启动指令 , -d代表debug模式 , 23333是监听和目标端口 , "10.8.0.10"地方请输入你要联机的对方的vpn的Ip地址 。
元气骑士远程联机

元气骑士远程联机

【打开游戏 , 建立主机】
一定要在上面的转发程序启动后再开启主机 , 否则转发程序会启动失败 。一切顺利的话adb里面会输出以下信息(当然 , ip地址会不一样) , 这是接收到了建连广播包的信号 。这时候让对方在多人游戏里面加入游戏 , 就可以看到你的主机信息了 , 也就可以联机了 。
元气骑士远程联机