公告

任何建议或需求可联系我!


Skip to content

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

访问测试