现在市场上的代理ip越来越贵,而优质的ip资源却越来越少。但是我们身边的手机作为一个移动互联网终端设备,能否经过改造以后变成一个代理服务器呢?经过不断的尝试总算摸索出了一套理想的解决方案。
初步尝试:
手机作为一个互联网终端设备毋庸置疑是肯定具备了联网功能的,但是经过检查自己的ip分析得出结论我们手机通过4g/5g获取到的ip并不是有效的互联网ip。
由上面的两张图,我们可以得到一个结论。我们手机实际上并没有被运营商分配到一个真实的互联网ip。而是类似于家用电脑在局域网中,拥有一个局域网内的内网ip然后通过路由器连接互联网。
通过这张图片我们可以清楚的看出来,其实手机和家里用的电脑是一样的上网环境。唯一不同的是它是通过4g/5g信号与基站的交换机进行数据传输。
既然知道了这一点,接下来我们想要通过它来实现代理似乎是很难的。因为我们无法打开基站的路由器或者交换机,给我们的手机映射一个外网能直接访问的端口。并且由于手机网络环境的特殊性,它可能在某个时段会自动切换到另外一个基站。就算你知道了其中的一个外网ip它也不是固定的。
在思考了一番之后,从家用路由器上的花生壳端口映射功能中获得了一束灵光。
既然花生壳能让公司的电脑访问到家里台式机上的web服务器,那如果在手机上开启一个http代理服务,然后再通过花生壳的内网穿透功能给公司电脑提供一个代理ip便就不成问题了。接下来就是实际操作。
首先安装一个every proxy并且开启http代理服务。
这个时候我们的手机已经在8080端口上开启了代理服务。
接下来就可以用花生壳来实现端口转发。
花生壳的话。有两个app,一个是花生壳管理 一个是花生壳内网版。
先打开花生壳管理app添加一个应用
然后打开花生壳内网版app
如此我们就获得了一个由花生壳给到的三级域名
ping一下以后我们得到了一个公网ip
http://39.108.xxx.xxx
然后花生壳分配给我们的端口是13507
我们来试试。这个ip加这个端口访问一下。
这种解决方案的好处是免费,能很快速的部署。缺点是如果你有非常多的手机,你需要注册n个花生壳来实现。所以如果是企业级的业务场景是不太适合的。
如果需要实现企业级大批量的手机来提供代理服务,应该是自己写一套服务器端的中转程序,再在手机上写一个能与服务器端程序传输数据的app。大概的业务逻辑如下:
经过尝试编写了一套这样的框架,最终验证了这种方案是可行的。自此如何通过手机实现企业级的代理方案就实现了。希望这些经验能对你有用,如果有什么技术上的问题请在评论区评论回复吧~