[教程]通过端口转发使局域网内其他设备连接安卓子系统的地址

众所周知,fydeOS的安卓子系统和linux容器其网段都是独立的,大概是通过nat地址转发。但是问题就出在这里,这样的话就无法用其他设备在局域网下连接安卓和容器了,虽然linux容器在设置中已经自带了端口转发的功能,但是安卓子系统没有。
事情就是这样,我本来想着如何用其他设备在局域网内传输文件到fydeOS系统中,虽然可以通过linux容器配置相应的服务,但是我的surface pro 4已经装了gapps和安卓子系统了,再安装linux容器内存和存储空间就很明显的捉襟见肘了,而fydeOS的自带的文件共享功能在我设备上速度又十分拉跨…所以我便试着研究了通过安卓子系统端口转发通过局域网连接安卓子系统的ftp服务。而且不知道为什么termux的包管理里哪怕换源了也装不了大多数服务(可能是x86架构的原因,源里没有多少x86架构的软件包)。后面我选换了http服务进行文件传输,也就将就一下吧。
我发现社区里基本没有关于这方面的教程,所以我决定把我的过程分享出来作为教程参考,大家有相关需求可以看我的教程自己研究一下

首先端口转发我们只需要一个名为 Connection Forwarder的chrome扩展就行了,具体查看这个链接。
https://chromewebstore.google.com/detail/connection-forwarder/ahaijnonphgkgnkbklchdhclailflinn
github:https://github.com/kzahel/connection-forwarder
具体长这样:

接着我们下载这个软件:fileshare
github:https://github.com/uebian/fileshare
无法下载可以使用这个链接:
fileshare.apk

image

我们开启http服务后,看到100.115.92.2:3167的url可以知道,现在我的设备安卓子系统中的网段为100.115.92.0,然后我们再打开Connection Forwarder。要注意检查已经勾选enable forwarding,接着我们点击create rule添加规则,通过设置知道了fyde的ip为192.168.1.8。


接着source address填写为物理地址的ip,destination address填为安卓子系统的ip地址。我这里http服务的端口为3167,因此我们将source port和destination port的端口填为3167,接着点击add rule。


接着我们进行测试,首先在fydeos浏览器中打开http://100.115.92.2:3167/ 发现连接正常,也能正常上传和下载文件,说明安卓子系统的http服务正常运行且宿主机能通过安卓子系统的网段的ip进行连接。

接下来我们尝试连接端口转发后的ip地址,http://192.168.1.8:3167/ 也能够正常连接,说明端口转发成功,并且宿主机已经通过物理地址连接到安卓子系统了

(具体过程是这样,R是路由器)
接着我们再测试用其他设备连接安卓子系统呢?我在手机上尝试连接 http://192.168.1.8:3167/ 也连接成功了,至此安卓子系统已经通过端口转发的方式成功让局域网内其他物理设备连接到安卓子系统下的服务了,而且过程中并没有用到root以及其他比较危险的操作。
IMG_20250301_040304_877

大致就是这样了,如果在使用过程中发现无法添加规则,可能是某种我现在还不太了解的神秘原因导致说端口已被占用或者ip地址有问题(我刚刚就遇到了这种情况),可以在帖子内回复,我有时间会一一回答。除此之外端口转发还有其他用途,例如clash的局域网连接功能,这样就可以用其他设备连接子系统的代理了。

2 个赞