nginx frp内网穿透

我在自己的博客中也介绍了,自己搭建一个ngrok的服务 我的ngrok是:ngrok.luckylxh.top。但是ngrok开源的有严重的内存泄漏问题,服务过一段时间就自动关闭了,要在启动,感觉很烦,就投入了frp的怀抱(真正的开箱即用,大神的作品啊,比ngrok配置简单多了)。。。。。我的 frp:frp.luckylxh.top

1、必要条件

(1)服务器,用来搭建frp的服务器,必须有公网ip,并且可以正常访问(本次测试使用的是CentOS 7 64位)。

(2)域名,用来生成访问域名(必须实名认证,才可以解析到你自己的公网ip)。

(3)再添加一条 泛解析到你的公网ip上,*.frp.luckylxh.top–>** (ps:一般生效时间是10分钟)

2、下载

下载地址
CentOS 7 64位 下载 (作为服务端)

upload successful
windows64位 下载 (作为客户端)

upload successful

3、安装服务端

上传frp_0.22.0_linux_amd64.tar.gz 到 /usr/local/src 解压,并命名为 frp,然后进入 frp文件夹看到:

upload successful

编辑frps.ini文件,这个就是我们服务端唯一需要修改的东西
编辑为:

upload successful
然后我们在frp目录下运行(记得加权限 )

1
2
chmod +x frps
./frps -c frps.ini

如果报错:-bash: ./frps: cannot execute binary file: Exec format error 说明你的版本不对
出现

upload successful
代表启动成功

4.修改nginx,监听80端口转发给frp,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#frp 后台
server {
listen 172.27.0.14:80;
server_name admin.frp.luckylxh.top;
#上传文件大小
client_max_body_size 20m;
location / {
proxy_pass http://172.27.0.14:7500;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_connect_timeout 1;
proxy_send_timeout 120;
proxy_read_timeout 120;
}

}

#匹配域名转发给frp
server {
listen 172.27.0.14:80;
server_name *.frp.luckylxh.top;
#上传文件大小
client_max_body_size 20m;
location / {
proxy_pass http://172.27.0.14:9090;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_connect_timeout 1;
proxy_send_timeout 120;
proxy_read_timeout 120;
}

}

5、配置客户端

解压 frp_0.22.0_windows_amd64 ,然后修改 frpc.ini文件为:

upload successful
然后打开命令行窗口 在frp_0.22.0_windows_amd64文件夹下 frpc.exe

upload successful
这时我们已经成功了!!

然后登陆后台管理页面可以看到:

upload successful
后面我们可以把服务端的frp启动做成服务,就不再说了,客户端启动可以用 bat命令做成一键启动,都留给大家了