快速反向代理(Fast Reverse Proxy, FRP)是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。 功能 多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。 TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。 代理组间的负载均衡。 端口复用:多个服务可以通过同一个服务端端口暴露。 P2P 通信:流量不必经过服务器中转,充分利用带宽资源。 客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。 服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。 用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便。 组件 服务端(frps):部署在公网服务器,接收外部请求并转发到内网客户端。 客户端(frpc):部署在内网设备,注册到服务端并建立隧道。 域名 公网服务器 #下载 wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz #解压 tar -zxvf frp_0.61.1_linux_amd64.tar.gz sudo mkdir /usr/local/frp mv ./frp_0.61.1_linux_amd64/* /usr/local/frp ls /usr/local/frp/ #修改frps.toml,token是安全认证密钥,需与客户端一致。 vi /usr/local/frp/frps.toml #配置监听端口 bindPort = 7000 #配置监控面版 http://sujj.wiki:7500/metrics enablePrometheus = true webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "admin" webServer.password = "admin" #身份认证 auth.method = "token" auth.token = "12345678" #日志配置 log.to = "./frpc.log" log.level = "info" log.maxDays = 3 #设置防火墙,未开启不需要设置防火墙 ufw allow 7000/tcp # 服务端通信端口 ufw allow 80/tcp # HTTP 穿透 ufw allow 443/tcp # HTTPS 穿透 ufw allow 7500/tcp # Dashboard 监控面板(可选) ufw reload #创建后台服务 vi /etc/systemd/system/frps.service [Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frps的命令,需修改为您的frps的安装路径 ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.toml [Install] WantedBy = multi-user.target # 启用开机自启 sudo systemctl enable frps # 启动frp sudo systemctl start frps # 停止frp sudo systemctl stop frps # 重启frp sudo systemctl restart frps # 查看frp状态 sudo systemctl status frps # 重新加载配置 systemctl daemon-reload # 查看日志 journalctl -u frps -f webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "admin" webServer.password = "admin" #身份认证 auth.method = "token" auth.token = "12345678" #日志配置 log.to = "./frpc.log" log.level = "info" log.maxDays = 3 #设置防火墙,未开启不需要设置防火墙 ufw allow 7000/tcp # 服务端通信端口 ufw allow 80/tcp # HTTP 穿透 ufw allow 443/tcp # HTTPS 穿透 ufw allow 7500/tcp # Dashboard 监控面板(可选) ufw reload #创建后台服务 vi /etc/systemd/system/frps.service [Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frps的命令,需修改为您的frps的安装路径 ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.toml [Install] WantedBy = multi-user.target # 启用开机自启 sudo systemctl enable frps # 启动frp sudo systemctl start frps # 停止frp sudo systemctl stop frps # 重启frp sudo systemctl restart frps # 查看frp状态 sudo systemctl status frps # 重新加载配置 systemctl daemon-reload # 查看日志 journalctl -u frps -f