前言:
最近在整理微信公众号开发教程,我们知道在公众号开发时候,需要备案域名。在本地联调的时候需要不方便。所以就直接搭建一个内网穿透服务器。之前使用ngrok搭建了,这次使用frp。个人感觉frp真的好简单啊。
一:什么是frp
二:frp内网穿透实现
2.1:前期准备
1:拥有固定外网的服务器一台(国外的VPS或者是阿里云ECS等)
这里需要说下:有很多朋友说既然有了ECS或者vps了干嘛还有内网穿透。在此凯哥只想说:你有但不代表别人有。而且VPS活ECS容量是有限的,再者在开发微信公众号或者是和银行本地联调的时候,内网穿透还是很有必要的。
2:域名。最好是已经备案的
3:域名解析,可以使用泛域名解析。
4:本地8085的项目
2.2:frp下载及服务端配置
github地址:https://github.com/fatedier/frp/releases
从上面我们可以看到
有不同的版本。
需要注意:
客户端和服务端最好一个版本。这里凯哥使用的是最新的V0.21.0这个版本。
根据自己服务器版本下载对应的。凯哥这里下载的是:frp_0.21.0_linux_amd64.tar.gz
下载之后,将压缩包放到外网服务器上。试用tar 命令进行解压
解压之后我们可以看到如上图几个文件。因为我们这里是服务器端,所以只需要配置frps.ini这个文件即可。
简单配置如下:
[common]
bind_port = 7000
vhost_http_port = 8085
vhost_https_port = 7443
subdomain_host = *.xxx.kaigejava.com
启动frp服务器命令:
cd到解压的文件夹下使用命令:
./frps -c frps.ini
看到如下图,说明启动成功了。
需要注意:注意!注意!
如果防火墙启动了,需要在防火墙开对应端口。如果是阿里云的ECS,需要在安全组进行相应配置。切记!切记!凯哥就因为这搞了好久才想起来的。
接下来,我们配置客户端。
2.3:客户端配置
根据自己客户端下载对应的客户端。凯哥本地使用的是win10.所以下载:frp_0.21.0_windows_amd64.zip。解压后:
我们看到一样的。这里我们只需要配置frpc.ini 。因为我们现在配置的是客户端。
客户端配置:
[common]
server_addr = vps或者是ECS的ip
server_port = 服务器的端口bind_port
[ssh1]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[web1]
type = http
local_ip = 127.0.0.1
local_port = 8085
remote_port = 7779
custom_domains = xx.kaigejava.com
需要注意:使用type=http的时候需要配置custom_domains。不然启动会报错。
至此服务器端和客户端都配置好了,启动客户端。
我们可以看到启动成功。
三:启动测试
启动本地8085的项目,启动成功后,浏览器中输入custom_domains的值 vhost_http_port 项目名称进行访问
在浏览器中可以看到。通过域名已经实现了内网穿透。
下节预告:
每次访问都需要带上端口号访问,是不是感觉很麻烦。在下一篇中凯哥将讲解怎么使用nginx进行方向代理以及在代理时候遇到的坑。