一、frp是一个什么东西?
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。(理论上限网速取决你公网服务器的带宽,这点非常nice哦,比那些白嫖的龟速内网穿透服务好得多)
我们可以使用frp搭建简易的文件服务器、远程连接你的家庭电脑,连接你的windows,linux,mac、把你的本地web应用服务暴露在公网供他人访问等等一系列强大功能(本文给出关于如何把自己的web服务暴露在外网的功能,剩余功能可以自行探索哦)。
二、frp的简单使用示例---把本地的web服务暴露到公网中
2.1、需要的准备的工具材料与基础知识准备
一)一台有公网ip的云服务器主机(学生可以去腾讯云、阿里云华为云等官网去申请白嫖,或者直接买一台玩玩,新用户很便宜的)
二)本地电脑一台 + 自己编写好的web应用
三)选择对应的文件下载frp,如windows的选下载 frp_0.41.0_windows_amd64.zip
(github地址:https://github.com/fatedier/frp/releases)
下载太慢的可以用网易的UU加速器加速(具体操作自行上网查找,记得在UU加速器的 “设置”里把”手动休眠不断网“给取消了=.=)
2.2操作步骤介绍
1) 在云服务器上运行frp
由于我的云服务器是windows2012server操作系统(偷个懒,就不用linux系统了),把下载好的 frp_0.41.0_windows_amd64.zip 上传到云服务器上,解压。
修改frps.ini(不是frpc.ini,frps是给服务端用的,frpc是客户端用的),修改如下:
(切记:修改完后请注意在云服务器上开放对应的端口,如7000端口是一定要开放的)
[common]
bind_addr = xxx.xxx.xxx.xxx #这里请改成自己的云服务器ip地址
bind_port = 7000 #注意云服务器需要开放该端口
dashboard_port = 7500
dashboard_user = root #改成自己喜欢的
dashboard_pwd = root #改成自己喜欢的
token = 123456 #改成自己喜欢的
heartbeat_timeout = 90
修改完后,保存,然后在文件地址栏输入“cmd”后按“回车”,进入该文件夹下
然后输入frps.exe -c frps.ini,回车就行(可以在云服务器上输入localhost:7500看服务有没有启动,能进去的话就是正常启动)。
2)在本地的window的上启动frp
与上面云服务器的配置一样,这边本地的windows下载好对应的文件,解压后,修改fprc.ini文件
[common]
server_addr = xxx.xxx.xxx.xxx #修改为自己的云服器ip
server_port = 7000
token = 123456 #与上面的frps.ini里的token一致
[HTTP] #这种随便写,就是一个标记名称,我这边写成HTTP
type=tcp
local_ip = 127.0.0.1
local_port = 18090 #要映射的本地端口,就是我的本地web服务端口
remote_port = 18089 #要映射的服务端端口,注意需要你去云服务器上开放这个端口
custom_domains=www.test.com #这个必须要有,可以随便写
然后跟上面一样,cmd进入文件夹,然后输入frpc.exe -c frpc.ini ,回车搞定。
3)运行我们本地的web服务
4)这样子我们就基本可以在外网访问我们的本地web服务了,可以在本地打开浏览器,输入http://{云服务器ip}:{frpc.ini中的remote_port }/{自己的web服务访问路径};
如我本地的web应用自己在本地访问的路径是http://localhost:18090/qq/private/test且假设我的云服务器ip为123.123.123.123,那么在外网上要访问我本地电脑上的web服务的话,需要在地址栏输入地址http://123.123.123.123:18089/qq/private/test (注意对应好端口号就行)