这不就有ap了嘛
这不就有AP了嘛
(在夹缝中生存的)
在第2篇的第9篇中,主要研究的是解决电脑与宿舍的通信问题。众所周知,宿舍都是内置了PC与安全软件的。高三的教学电脑上面有个AP功能,可以将安卓系统连接的网络共享出去。
之前的测试中,Windows端无法与AP ping通,这是为什么呢?原来解决的AP是直接开启了一个新的网段,PC端自然无法连接,但PC是可以直接连Android主机本身的IP的。
1 | PC ←→ Android ←→ AP → 手机... |
也就是说我们需要利用Android作为中间服务器,物理机就能连接至PC了。Android只需进行端口转发即可。在解决上进行端口转发,需要一个能实现端口转发的工具,wjh找到了一个软件Port forwarding,可以实现端口转发。
那么有端口转发有什么用呢?代理?代理固然方便,但代理的限制也确实较多,此前有提及过,在此就不展开了。那比代理更优的方案是VPN,这是直接在Android端搭建VPN?等等,不用。连接VPN……好像也可以不用转一个服务器,而是直接通过端口转发VPN使用的通信端口。
经过测试,我们发现,没有root权限只能转发>1024的端口。由于L2TP使用的端口包括用于IPsec的认证与协商的UDP500端口,此端口<1024,所以无法使用L2TP VPN。但是,我们还有一个OpenVPN呀。OpenVPN的默认端口号是1194,且可以任意修改端口。也就是说,只要转发1194端口就可以实现连接了。这是将从服务器到PC到Android到AP,即:
1 | VPN服务器 ←→ PC ←→ Android ←→ AP |
经过多圈的转发,手机就可通过AP顺利地连接至服务器。PC端需要配置的就只有gost了。使用gost进行端口转发:
1 | gost -L=rudp://:1194/10.88.202.73:1194 |
然而在我们的测试时却出现了问题,VPN无法连接,打开gost的输出窗口,发现确实有出现数据包传输。为了进一步排查错误,我们想到还可以转发Alist的5244端口,毕竟网页传输的数据包内容得多。在手机上连上AP,访问192.168.54.1:5244,Alist的页面出现,但一直在转圈加载(这是Alist本身的加载动画),说明Alist的网页有被传输过来,但是因为未知原因卡住了。
我们打开Wireshark进行抓包观测。从抓包结果中我们可以看出只有几个数据包的传输,对比正常的Alist访问的数据包,在手机上只发出了几个请求。于是我们便可以猜测,是传输的过程出现了问题。
经过wjh的排查,我们发现,问题出现在安卓上负责转发的软件Port forwarder上。这个软件太老了,居然只会转发一条连接的几个数据包。我们找到一个性能更好的且UI界面极其美观的软件,Fwd port forwarding。这个软件体积更小,我们用这个软件替换了旧软件,于是,连接终于一切正常。
综上,总结一下解决的配置方法:
- 打开解决的USB调试
- 将包含Fwd软件的Fit32格式的U盘接到解决上,安装此软件
- 在设置中开启AP
- 在fwd的设置中设置端口转发,其中ip填写PC端的ip,即可转到PC端
- 安装gost,推荐通过bat脚本使用gost进行端口转发
- 可以使用计划任务将此脚本加入自动启动
- 手机端使用openvpn连接
需要注意的是,需要修改配置文件:
- 解决电网ip统一为192.168.41.1
- 将原openvpn配置文件中的ip 10.88.202.73改为192.168.54.1即可
- 经过测试,使用UDP连接VPN会出现问题,使用TCP进行连接更为稳定,所以在配置文件中指定VPN的连接方式为TCP
高三的教学楼就像一堵坚实的墙,密不透风。直到现在,我们终于打开了一扇窗。
配置步骤简化清单
一、PC端准备
- 安装
gost工具 - 执行端口转发命令:
1
gost -L=rudp://:1194/10.88.202.73:1194
- (可选)通过计划任务将上述命令加入自动启动
二、Android端配置
- 开启USB调试,通过U盘安装
Fwd port forwarding软件 - 打开系统设置→开启AP功能
- 在
Fwd中设置端口转发:- 转发端口:
1194 - 目标IP:PC端的IP
- 目标端口:
1194
- 转发端口:
三、手机端连接
- 连接AP网络
- 修改
openvpn配置文件:- 将原IP
10.88.202.73改为192.168.54.1 - 指定连接方式为
TCP
- 将原IP
- 启动
openvpn连接
