frp一内网穿透的配置
frp 是什么?
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。 官网详细介绍
使用目的
平时有给用户演示或者开发第三方工具有白名单可信IP的要求(比如微信、企业微信、钉钉开发等),这时在服务器上部署调试就比较困难,如果能在本地开个通道就方便很多,所以选择FRP工具实现,配置中也走过不少弯路,记录下配置过程方面后续忘记时查看。
- HTTP
- HTTPS
准备内容
- 域名(已备案)
- 外网可访问的服务器
- SSL证书(如需HTTPS)
部署过程
下载frp
访问frp GitHub发布页下载对应版本: https://github.com/fatedier/frp/releases
shell
wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.60.0_linux_amd64.tar.gz
tar -zxvf frp_0.60.0_linux_amd64.tar.gz
cd frp_0.60.0_linux_amd64服务器端配置(frps)
toml
# 使用端口
bindPort = 7000
vhostHTTPSPort = 443
vhostHTTPPort = 80
# frp管理端配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "你的密码"
# log
log.to = "./logs"
log.level = "info"
log.maxDays = 5启动服务端:
shell
./frps -c ./frps.toml客户端配置(frpc)
注意下载对应的本地电脑版本windows ,mac 软件包不一样,版本与服务器端一致。编辑frpc.toml
toml
# 服务器配置
serverAddr = "服务器外网IP"
serverPort = 7000
# http配置
[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["dev.gocpu.cn"]
# https 配置
[[proxies]]
name = "test_htts2http"
type = "https"
customDomains = ["dev.gocpu.cn"]
[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:80"
# ssl证书配置
crtPath = "./dev.gocpu.cn_public.crt"
keyPath = "./dev.gocpu.cn.key"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"启动客户㡣
shell
./frpc -c ./frpc.toml其他事项
服务器防火墙配置
# 开放frp端口
sudo ufw allow 7000/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 8443/tcp
sudo ufw allow 443/tcp
sudo ufw reload域名解析配置
将域名解析指向你的服务器IP:A记录 your.domain.com -> 服务器IP

