去年写了一篇博客:如何通过代理共享网络,在这篇文章探索了怎么在同一个局域网内共享代理服务。不过,它的实用性也比较缺乏,要求必须处于同一个局域网之下,大多数时候,我们可能很难有这样的环境。所以,我就思考怎么在公网环境下,通过代理软件来共享网络。因为之前了解过并简单使用过内网穿透(FRP),所以这个问题其实就是很简单了,在之前的工作基础之上再加一个内网穿透的功能即可。它的整个流程图如下:
简而言之:在公网环境下(通常是阿里云服务器)运行 FRP 的服务端,再在运行代理的终端运行 FRP 的客户端(这里的终端可以是笔记本、台式机、平板电脑或者手机,下面我将会使用手机作为演示环境),接着普通用户连接到任意一个 WIFI,然后配置代理(通常是 IP+端口)即可完成整个网络共享的流程了。
注意:这里连接 WIFI 指的是手机,如果是电脑的话可以直接设置系统的代理即可。
我的演示环境是:阿里云服务器+手机+平板,阿里云服务器运行 Frp 的服务端,手机本身开启代理软件,然后运行 Frp 的客户端,平板电脑配置代理服务器的地址(IP+Port)。它们不必处于同一个局域网之下,只需要可以连接到公网环境即可。
termux
一个模拟终端软件,可以在其上运行一些二进制的可执行文件(这里运行的是 frp 的 arm64 平台的可执行文件)。
frp
内网穿透软件,因为服务端是阿里云的 X86 架构,客户端是安卓的 arm64 架构,所以我需要下载两种架构的包,但是只使用每个服务端客户端其中的一个。
代理软件
,这里的代理软件是运行在手机上的,在手机上做演示其实比较麻烦,但是这里面的逻辑是同样的。只要理解这个过程,使用其他的环境也是一样的。
注意:阿里云服务器只需要 frps+frps.toml 即可,当然了也可以直接把 amd64 的包拷贝过去。手机上是三个文件,在下面的截图里面(代理软件本身就是在手机上了,你应该有的,如果没有的话那么就先去弄好再往下阅读吧。)在手机上安装 termux,然后把 frpc 和 frpc.toml 拷贝到 termux 的 home 目录下。
安卓手机使用Termux搭建web服务器(含frp内网穿透、wake on lan远程唤醒)
手机上安装好 Termux,并且准备好需要的文件。
注意:直接拷贝的 frpc 没有执行的权限,所以需要手动给添加权限(chmod +x frpc
)。
好了,到这一步就是万事俱备,只欠东风了,那么我们就开始吧。
注意:主机名,这里我在截图中用来一个假的,实际是你的公网 IP 地址。
好了,整个流程已经全部走通了。这里面可能说得不是十分详细,因为有些话还是点到为止比较好。对于需要了解的人,大概率是可以看懂的,如果本身不了解这些东西的话,还是不要去了解为好。总得来说,多了解一些东西,在需要的时候还是可以用起来的。我对网络这一块还是蛮感兴趣的,但是一直了解的都是一些比较浅显的知识,更多的是网络的应用了,哈哈!
后续测试发现一些问题,暂时不知道为什么?搜索是可以使用的,但是有些网站打不开,或者无法加载样式文件。原因都是连接被对端重置(Connection reset by peer),似乎是 HTTP2 协议的网站有问题(不太确定),而且无法定位问题是出现在哪里的。所以,就先不处理这个问题了,先把博客发出来吧。之后如果可以解决的话,再更新或者重新写一篇博客。