有一些APP很好用,AIMP音乐播放器、MXplayer视频播放器,但他们比较老牌,不支持IPv6访问,输入纯IPv6解析的域名连不上,IPv4的域名可以连上

并且由于WireGuard Tailscale Zerotier这种会和魔法上网冲突,开这个另个就自动被关掉

于是我想着有没有个 安装在安卓上的APP,来实现本地代理/本地转发。

我只是提供一个思路,你也可以换APP来实现,比如海贝音乐就能支持IPv6的Webdav,Reex视频播放器能支持IPv6的SMB。手机又不是只能安装一个APP

需求:

  • 不使用VPN类,不会和魔法上网软件冲突,可以和魔法上网同时使用
  • 安卓APP实现,不靠上级路由器,因为用手机流量时没有上级路由器
  • 尽量简单,不要复杂,不要root,不要面具模块,不搞Termux等这么复杂的方法
  • 支持Webdav SMB等常见文件传输协议
  • 节省流量,在WIFI局域网不会去公网绕一圈
  • WIFI/流量自适应,就一个地址,不需要用2个地址根据是否在外面来访问

让AIMP中的Webdav地址填写http://localhost:10081,本地代理转发10081到NAS的公网IPv6的对应端口5005,这样AIMP就能连上群晖的Webdav了,算是IPv4→IPv6吧

MXplayer的SMB地址填localhost,通过本地代理/转发 转发到NAS的公网IPv6的对应端口445

然后各种群里问了一圈,没有啥人知道安卓上怎么实现,终于晚上有人提了一嘴nginx好像有安卓的,我去GooglePlay搜了一圈,没找到,但忽然想起以前接触过一个APP,ksweb里面好像有nginx的功能,他本来是用手机搭网站的一个APP

我居然没卸载,不用到处找了,果然有nginx的功能,尝试了一番,踩了一些坑,知道了怎么填写nginx才能生效

自行下载ksweb这个APP,GooglePlay里面有



添加的代码如下

server {
        listen 10081;
        server_name localhost;
        location / {
            proxy_pass http://dsm.209902.xyz:5005;
        }
    }

修改了配置文件,要关掉再开nginx的开关才能生效

需求实现:

  • 不使用VPN类,不会和魔法上网软件冲突,可以和魔法上网同时使用 ✔
  • 安卓APP实现,不靠上级路由器,因为用手机流量时没有上级路由器 ✔
  • 尽量简单,不要复杂,不要root,不要面具模块,不搞Termux等这么复杂的方法 ✔
  • 支持Webdav✔ SMB×等常见文件传输协议
  • 节省流量,在WIFI局域网不会去公网绕一圈 ✔
  • WIFI/流量自适应,就一个地址,不需要用2个地址根据是否在外面来访问 ✔

SMB由于不是http,不能用nginx代理,可能得用frp之类的TCP转发才行,目前没找到安卓上的
因为是本地代理,在WIFI局域网下,dsm.209902.xyz这个地址被路由器解析后,触发路由器的loopback功能,走局域网不会去公网绕一圈,理论能达到局域网满速。不会像异地组我Zerotier/Tailscale这种,即使在局域网速度也只能30mbps左右(被运营商限速udp)。