Loading...

文章背景图

frp:高性能反向代理内网穿透工具部署指南

2026-10-27
0
- 字
- 分钟
|

frp 是一个高性能反向代理,能把位于 NAT 或防火墙后的本地服务暴露到公网。支持 TCP、UDP、HTTP、HTTPS 协议,可通过域名把请求转发到内网服务,还提供 P2P 连接模式。

一、项目官方信息

项目 信息
GitHub 仓库 https://github.com/fatedier/frp
中文文档 https://github.com/fatedier/frp/blob/master/README_zh.md
开源协议 Apache-2.0
主要语言 Go(约 84.9%)
Star 数 约 110k

架构:服务端 frps 部署在有公网 IP 的服务器 A,客户端 frpc 部署在内网服务器 B。

二、官方图片

frp 架构示意图:

frp

三、环境要求

  • 公网服务器一台(运行 frps)。
  • 内网机器一台(运行 frpc)。
  • Linux/macOS/Windows 均可,下载对应架构二进制即可。
  • 放行 frps 的 bindPort 与各 remotePort。

四、完整部署步骤

1. 下载二进制

到 https://github.com/fatedier/frp/releases 下载最新版本,解压得到 frps、frpc 与示例配置。

2. 服务端配置 frps.toml

# frps.toml
bindPort = 7000

3. 启动 frps

./frps -c ./frps.toml

4. 客户端配置 frpc.toml

# frpc.toml
serverAddr = "x.x.x.x"
serverPort = 7000

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

5. 启动 frpc

./frpc -c ./frpc.toml

6. 验证

ssh -p 6000 user@x.x.x.x

即可连到内网机器的 22 端口。

7. systemd 自启

/etc/systemd/system/frps.service:

[Unit]
Description=frp server
After=network.target

[Service]
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.tomr
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now frps

五、使用方法

暴露内网 Web 服务

[[proxies]]
name = "web"
type = "http"
localPort = 8080
customDomains = ["web.example.com"]

启用 Dashboard

# frps.toml
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

访问 http://x.x.x.x:7500 查看隧道状态。

鉴权

# frps.toml
auth.token = "your_token"
# frpc.toml
auth.token = "your_token"

常用隧道场景

  • SSH 隧道(TCP);
  • 多 SSH 共享同一端口(STCP);
  • 内网 Web 服务(HTTP/HTTPS);
  • DNS 查询转发;
  • Unix Domain Socket 转发;
  • HTTPS 终止;
  • P2P 模式。

六、常见问题 FAQ

1. 杀毒软件把 frpc 删了? frp 是反向代理工具,部分杀毒软件误报,把 frpc 加入白名单。

2. 连接被拒绝? 检查 frps 的 bindPort 与 remotePort 是否在防火墙放行;确认 frpc 的 serverAddr/serverPort 正确。

3. 如何配置 HTTPS? 在 frpc 配置里用 type=https 并设置 customDomains,或在 frps 上配置 TLS 证书。

4. 如何多客户端共用一个端口? 用 HTTP/HTTPS 类型的 vhostHTTPPort + customDomains 路由。

5. 如何热加载 frpc 配置? 启动 frpc 时加 --hotReload,修改配置后自动生效。

6. v2 什么时候出? 官方在开发中,基于 K8s/ServiceMesh 理念,与 v1 不兼容。

七、跳转链接

  • GitHub 仓库:https://github.com/fatedier/frp
  • Releases:https://github.com/fatedier/frp/releases
  • 中文文档:https://github.com/fatedier/frp/blob/master/README_zh.md
  • Dashboard 示例:https://github.com/fatedier/frp/blob/master/doc/pic/dashboard.png
评论交流

文章目录