前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零搭建frps服务

从零搭建frps服务

作者头像
花花522
发布2023-03-07 16:09:04
1K0
发布2023-03-07 16:09:04
举报
文章被收录于专栏:花花爱咖啡

什么是frp

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

为什么使用 frp ?

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

文档地址:https://gofrp.org/docs/

安装

因为frp是通过go语言编写的,本身是二进制文件,所以不需要多余的环境

在github中的release中下载最新版本

我这里同时下载两个文件

  • frp_0.44.0_linux_386.tar.gz
  • frp_0.44.0_windows_amd64.zip

一个给服务器端使用,一个给我本地,下载好后通过ssh提供的sftp功能,放到usr目录下

  • 解压
代码语言:javascript
复制
tar -zxvf frp_0.44.0_linux_386.tar.gz
  • 改名
代码语言:javascript
复制
 mv frp_0.44.0_linux_386 frp

到这里就已经准备好了

启动服务端

  • 进入启动目录
代码语言:javascript
复制
cd /usr/frp/
  • 修改配置文件
代码语言:javascript
复制
vim frps.ini
  • 修改成如下
代码语言:javascript
复制
[common]
#frps跟客户端通信的长连接端口
bind_port = 7000
#这个端口的http请求会走frps
vhost_http_port = 8765
#这个端口的https请求会走frps
vhost_https_port = 8766
#dashboard账号
dashboard_user = admin 
#dashboard 密 码 
dashboard_pwd = admin 
#dashboard 端 口 , 启 动 成 功 后 可 通 过 浏 览 器 访 问 如 http://ip:7500 
dashboard_port = 7500 
#二级域名后缀
subdomain_host = frps.jxwazx.cn
  • 启动服务端
代码语言:javascript
复制
nohup ./frps -c ./frps.ini &
  • 查看日志
代码语言:javascript
复制
 tail -f nohup.out 
代码语言:javascript
复制
[root@VM-12-4-centos frp]# tail -f nohup.out 
2022/07/24 17:03:44 [I] [root.go:209] frps uses config file: ./frps.ini
2022/07/24 17:03:44 [I] [service.go:194] frps tcp listen on 0.0.0.0:7000
2022/07/24 17:03:44 [I] [service.go:237] http service listen on 0.0.0.0:8765
2022/07/24 17:03:44 [I] [service.go:252] https service listen on 0.0.0.0:8766
2022/07/24 17:03:44 [I] [service.go:293] Dashboard listen on 0.0.0.0:7500
2022/07/24 17:03:44 [I] [root.go:218] frps started successfully

注意:需要放行服务器端口 7000 8765 8766 三个端口都需要

启动客户端

  • 解压放任意地方
  • 编辑frpc.ini
代码语言:javascript
复制
[common]
server_addr = 124.223.119.72
server_port = 7000

[web]
type = http
local_port = 8080
subdomain = wxoauth2
  • 编写脚本
代码语言:javascript
复制
frpc.exe -c frpc.ini

image-20220724180541605

image-20220724180528929

我们访问下我们的wxoauth2.frps.jxwazx.cn

wxoauth2是客户端指定的,frps.jxwazx.cn是服务端指定的

测试内网穿透

  • 修改gitee的回调地址

image-20220724222313484

  • 请求http://wxoauth2.frps.jxwazx.cn:8765/hello

image-20220724223710990

配置反向代理

image-20220724224154432

  • 配置文件
代码语言:javascript
复制
#PROXY-START/

location ^~ /
{
    proxy_pass http://127.0.0.1:8765/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;

    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache
    
    
    set $static_file8TcuwOOH 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
    	set $static_file8TcuwOOH 1;
    	expires 12h;
        }
    if ( $static_file8TcuwOOH = 0 )
    {
    add_header Cache-Control no-cache;
    }
}

#PROXY-END/
  • 配置反向代理

image-20220724224210484

软件下载地址

链接:https://pan.baidu.com/s/1uK0ypvrb_V68lZxAh9yR6w?pwd=6666 提取码:6666

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 花花爱咖啡 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是frp
    • 为什么使用 frp ?
    • 安装
    • 启动服务端
    • 启动客户端
    • 测试内网穿透
    • 配置反向代理
    相关产品与服务
    负载均衡
    负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档