本篇教程很长,相当于上一篇教程里的完善版,所以写得时间也会比较多。在这篇文章里,我会介绍frp的搭建,电脑和手机frpc客户端的使用,以及手机如何通过终端开运行frpc,还有反向代理的开启。
我仔细研究了一下这些优势。
在旧电脑手机上,搭建属于自己的个人网站,就可以无需当心数据的安全问题,拥有非常高的灵活自由度,因为数据全部在自己的硬盘或者内存卡里。而且甚至不必保持设备始终在线,毕竟反向代理服务器可以设置自动缓存,变为消耗性能极低的静态资源(所以只需要准备一个低配置服务器,就可以带高资源网站)。同时就算被攻击了,可以直接通过更换外层服务器,或者还可以给外层服务器再套cdn,来直接恢复访问。
坏处也有,就是因为缓存为静态资源,所以很多动态功能就基本报废,但是如果不缓存,那么访问压力造成的影响也算蛮大的,比如电费和手机电脑的寿命问题。但是这个方案很适合本来就需要生成静态资源的新闻资讯,以及小说网站,搜索可以采用百度的站内搜索,阅读记录通过js实现,可以说基本完美了。
那么,上面的废话说完了,开始动工吧。
可以和上篇教程配合使用,旧小米手机搭建php环境,实现本地网站搭建修改,实现旧手机架设公开网站。
前期准备:
一台CentOS系统的服务器(配置无需太高,仅负责内网穿透与反向代理)
frp客户端
本地的站点,我根据上篇教程搭建在了我的手机上
一:服务器上安装内网穿透程序FRPS
这里直接搬运的追梦人博客教程原地址
1.首先执行安装指令
wget https://raw.githubusercontent.com/MvsCode/frp-onekey/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install
2.安装过程中会让你手动选择一些参数,对于端口那些,请尽量选择到一些不会起冲突的端口,同时在之后也一定要在服务器防火墙,或者是安全组端口里打开这些端口,否则是无法连接的。
Please input frps bind_port [1-65535](Default Server Port: 5443):
#输入frp提供服务的端口,用于服务器端和客户端通信,按Enter键表示默认5443,否则手动输入新端口
Please input frps dashboard_port [1-65535](Default dashboard_port: 6443):
#输入frp的控制台服务端口,用于查看frp工作状态,按Enter键表示默认6443,否则手动输入新端口
Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80):
#输入frp进行http穿透的http服务端口,按Enter键表示默认80,否则手动输入新端口,一般不建议默认80
Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443):
#输入frp进行https穿透的https服务端口,按Enter键表示默认443,否则手动输入新端口
Please input privilege_token (Default: WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq):
#输入frp服务器和客户端通信的密码,默认是随机生成的,按Enter键表示按默认来,否则手动输入。frpc客户端需要这个接头暗号
Please input frps max_pool_count [1-200](Default max_pool_count: 50):
#设置每个代理可以创建的连接池上限,默认50
Please select log_level #####
1: info
2: warn
3: error
4: debug
#####################################################
Enter your choice (1, 2, 3, 4 or exit. default [1]):
#设置日志等级,4个选项,默认是info
Please input frps log_max_days [1-30]
(Default log_max_days: 3 day):
#设置日志保留天数,范围是1到30天,默认保留3天。
##### Please select log_file #####
1: enable
2: disable
#####################################################
Enter your choice (1, 2 or exit. default [1]):
#设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效
3.安装完成后会给出一些信息,请及时保存起来,这些直接是客服端需要用到的信息。
Congratulations, frps install completed!
==============================================
You Server IP : 192.2x.x.x
Bind port : 5443
KCP support : true
vhost http port : 80
vhost https port : 443
Dashboard port : 6443
token : FvHqtRfxxxxxxxxx
tcp_mux : true
Max Pool count : 180
Log level : info
Log max days : 30
Log file : enable
==============================================
frps Dashboard : http:// 192.2x.x.x:6443/
Dashboard user : zmrbk.com
Dashboard password : zmrbk.com
==============================================
frps status manage :frps {start|stop|restart|status|config|version}
到此,frp的服务端就安装完成了,管理命令为如下:
/etc/init.d/frps start
/etc/init.d/frps stop
/etc/init.d/frps restart
/etc/init.d/frps status
/etc/init.d/frps config
/etc/init.d/frps versio
二:客户端连接frp服务端,frp客户端除v0.16.0以下版本外通用。
1.首先去下载客户端,根据你的操作系统或者CPU版本来决定下载哪一个。
https://file.kskxs.com/?dir=frp/frp-v0.20.0
如果上述地址失效,可以去github官方:
https://github.com/fatedier/frp/releases
2.对于一般的windows电脑,可以下载windows_amd64版本的客户端,然后修改frpc.ini(最好使用notepad++)
[common]区域修改为如下(就是之前安装过程中的服务器地址和端口)
[common]
# 服务器地址
server_addr = 192.2x.x.x
# 服务器端口
server_port = 5443
# 服务器连接凭证
privilege_token = FvHqtRfxxxxxxxxx
如果客户端版本是0.17以前,则为privilege_token,如果是之后为token,一定要注意,否则会出现报错。
3.然后,可以去掉默认的[ssh],后面再加一段,比如我有一个内网地址为192.168.1.15:8080的网站,我新定义一个[web]
[Localweb]
type = tcp
local_ip = 192.168.1.15
local_port = 8080
remote_port = 2555
remote_port代表远程使用的端口,我使用2555,那么肯定也要去打开2555这个端口,frp自带了http协议,但是最好不要用,因为还有个反向代理会使用http协议。
于是效果如下:
4.启动frpc,在文件夹内的空白区域,shift+鼠标右键,选择CMD终端打开本文件夹,执行指令(对于win10,则手动打开cmd到frp所在目录)
frpc.exe -c frpc.ini
出现以下界面代表成功。
然后访问网址,效果就出来了:
5.如果是安卓手机端,那就先安装一个FRP软件,下载地址如下:
链接:https://pan.baidu.com/s/1T9sBq-nRrdLn5FxgDe-EvA
提取码:hfpf
安装完成之后,点击右上角修改,复制电脑上的frpc.ini,因为我的网站在手机上,所以可以改成本地的127.0.0.1,然后因为2555端口已经使用,所以我改成了2556
修改内容:
完成上述操作之后,点击右下角的按钮启动
然后就可以查看访问效果了。
三:反向代理的设置和域名的绑定。
1.安装宝塔面板(如果会单独安装nginx,就直接装,不用装宝塔了,但是新手很难没办法
),就在搭建了frp的服务器上就可以(只需要安装nginx就好,其它的都不用,超级节约性能),这个就不用我强调了。然后就是新建一个网站,设置域名,不需要数据库,不需要ftp,而且设置为静态就好。
2.域名解析就不用我说了,直接去设置反向代理,就填frp映射所出现的地址。如果是那种大多是静态资源的网站,就开启缓存,时间长点没关系,大部分请求就全部在服务器上了,如果是动态的,就不开启,但是旧手机电脑等设备得一直保持在线了,请求就会到达本地网站内部。
3.最后就可以访问自定义的域名查看效果了,这是我最近在做的一个自动写诗程序。
最后说一句:
大冬天的写起来手好冷啊,挺辛苦的。
可能存在一些漏掉的地方,我会时不时补充一些。