Loading...

文章背景图

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

2026-10-23
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

```toml

frps.toml

bindPort = 7000

```

3. 启动 frps

```bash

./frps -c ./frps.toml

```

4. 客户端配置 frpc.toml

```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

```bash

./frpc -c ./frpc.toml

```

6. 验证

```bash

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

```

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

7. systemd 自启

/etc/systemd/system/frps.service:

```ini

[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

```

```bash

sudo systemctl enable --now frps

```

五、使用方法

暴露内网 Web 服务

```toml

[[proxies]]

name = "web"

type = "http"

localPort = 8080

customDomains = ["web.example.com"]

```

启用 Dashboard

```toml

frps.toml

webServer.addr = "0.0.0.0"

webServer.port = 7500

webServer.user = "admin"

webServer.password = "admin"

```

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

鉴权

```toml

frps.toml

auth.token = "your_token"

```

```toml

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
评论交流

文章目录