Loading...

文章背景图

frp:高性能反向代理(内网穿透)|服务端与客户端部署全指南

2026-11-02
0
- 字
- 分钟
|

frp · 高性能反向代理(内网穿透)|服务端与客户端部署全指南

项目仓库: https://github.com/fatedier/frp

开源协议:Apache 2.0 · 组件:frps(服务端)+ frpc(客户端) · 配置:TOML(frps.toml / frpc.toml) · 默认绑定端口:7000 · 协议:TCP/UDP/HTTP/HTTPS · 发布:Releases


1 项目简介

frp 是一个快速反向代理,用于把位于 NAT 或防火墙后的本地服务器暴露到公网。它支持 TCP、UDP、HTTP、HTTPS 协议,可通过域名把请求转发到内网服务。典型用法:把家里/公司内网机器的 SSH、Web 服务通过一台有公网 IP 的服务器暴露出来。

1.1 核心信息一览

项目项 内容
项目名称 frp
仓库地址 github.com/fatedier/frp
项目定位 高性能反向代理(内网穿透)
开源协议 Apache 2.0
服务端 frps(部署在有公网 IP 的机器)
客户端 frpc(部署在内网机器)
配置文件 frps.toml / frpc.toml
默认绑定端口 7000(bindPort)

1.2 适用场景

  • 内网机器 SSH/Web 远程访问。
  • 把本地服务通过公网服务器暴露给外部。
  • 多服务复用同一端口(tcpmux)。

1.3 能力边界与注意(官方)

  • 部分杀毒软件会把 frpc 误报为恶意软件(因其是可穿透防火墙的反向代理工具),需加白名单/排除,见 issue 3637。

2 部署架构

  • Server A(公网 IP):放置 frps 二进制与 frps.toml。
  • Server B(内网):放置 frpc 二进制与 frpc.toml。
  • 从 Releases 下载对应操作系统与架构的二进制。

3 示例:通过 SSH 访问内网机器

3.1 服务端 A(公网)

frps.toml:

# frps.toml
bindPort = 7000

启动:

./frps -c ./frps.toml

3.2 客户端 B(内网)

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

启动:

./frpc -c ./frpc.toml

3.3 连接

# 通过公网服务器 A 访问内网机器 B(用户名 test)
ssh -oPort=6000 test@x.x.x.x

说明:localPort(客户端本地监听)与 remotePort(服务端暴露)是进出 frp 的流量端口;serverPort 是 frps 与 frpc 之间通信端口。

4 典型配置项

配置 位置 说明
bindPort frps.toml frpc 连接端口(默认 7000)
serverAddr / serverPort frpc.toml 公网 frps 地址与端口
[[proxies]] frpc.toml 代理规则(name/type/localIP/localPort/remotePort)
tcpmuxHTTPConnectPort frps.toml 多 SSH 复用同一端口(tcpmux)

5 官方跳转链接汇总

类别 链接 说明
仓库主页 https://github.com/fatedier/frp 源码
发布下载 Releases 各平台二进制
文档 仓库 README 目录 多端口复用、KCP/QUIC、热重载等

6 常见问题

  • 杀毒软件删 frpc:反向代理工具易被误报,加白名单(issue 3637)。
  • 连不上:确认公网服务器 7000 与 remotePort 已在安全组/防火墙放行。
  • 多 SSH 复用端口:用 tcpmux 类型代理与 tcpmuxHTTPConnectPort。

7 风险与说明

  • 许可证:Apache 2.0。
  • 安全:暴露内网服务到公网有风险,建议启用认证(token)、限制端口、TLS。
  • 非官方声明:本文基于官方仓库 README 整理,配置以最新 release 为准。
评论交流

文章目录