之前已经实现了在安卓上搭建内网可访问的的linux服务器,但如果局限于内网访问当然是不够的,并且由于DHCP的缘故内网ip也一直在变(当然可以设置静态,不过不方便),更好的便是通过frp来实现内网的环境"穿透"到外网,通过访问域名的形式即可访问本地。

frp服务端的搭建可以参考https://github.com/fatedier/frp,这里只说下利用现有frp工具来实现内网穿透。

原理

利用现有frp服务器实现内网穿透

准备

  • Cpolar
  • 搭建好的本地环境

网上的工具繁多,我们这里首选cpoalr,免去了写入配置这一环,如果有公网ip,可以略过这文章,直接去撸路由器了。

尝试

由于手机是高通骁龙410处理器,官网选择linux(ARM)安装包下载到根目录(由于手机设置,下载时只能选择手机内存或者内存卡,导致后来一切不顺利)

利用现有frp服务器实现内网穿透

ssh连接服务器

利用现有frp服务器实现内网穿透

找到目录并解压

利用现有frp服务器实现内网穿透

然后根据官网文档来配置

./cpolar authtoken YOUR_AUTHTOKEN 

这时控制台提示权限不够,即是使用chmod也没有效果

利用现有frp服务器实现内网穿透

查阅过后发现是/sdcard目录下一些文件无法修改权限,无论是通过命令还是RE文件管理器,一些手机允许将文件下载到/mnt目录下,即可进行上述操作。

解决

好在cpolar有一个隧道转发功能,可以转发到内网其他机器上面

利用现有frp服务器实现内网穿透

言外之意,我们可以通过一台有执行权限的平台来转发其他内网机器,在windows同样进行上述操作(需要在文件目录执行,命令稍有变化)

利用现有frp服务器实现内网穿透

当看到生成一个cpolar.yml文件时,即表示顺利进行

利用现有frp服务器实现内网穿透

按文档输入转发命令,内网ip及端口号视自己而定

cpolar http 192.168.1.1:8080 

回车看到online即表明"穿透"成功,外网输入代理域名即可访问本地服务器

利用现有frp服务器实现内网穿透

访问

利用现有frp服务器实现内网穿透

有瑕疵的是:其一,http访问延迟较高甚至响应超时,以https访问速度较快,可能是frp服务端或者端口问题;其二,对于多端口任务的环境,可以尝试多开程序测试。


電光石火 正面突破。 日進月歩 百花繚乱。 順風満帆 天真爛漫。