跳到正文
frp:需要原始 TCP 穿透时,它比网页隧道更直接

frp:需要原始 TCP 穿透时,它比网页隧道更直接

frp 通过公网 frps 和内网 frpc 建立反向代理,让没有公网入口的 SSH、远程桌面、游戏端口或内部服务对外可达。它自由、协议覆盖广,但认证、端口和中转服务器都要自己守。

frp:需要原始 TCP 穿透时,它比网页隧道更直接

状态:推荐使用 · 适合自建中转和任意 TCP/UDP 服务

速读#

frp 做的是经典反向代理:在有公网 IP 的服务器上运行 frps,在内网机器上运行 frpc,由内网端主动连接公网端,再把本地服务映射出去。没有公网 IP、处在 NAT 后面,仍然可以从外面访问 SSH、远程桌面、Web、游戏服或其他 TCP/UDP 服务。

它和 Cloudflare Tunnel 的差别不只是品牌。Tunnel 更适合 HTTP 类入口并把中转交给 Cloudflare;frp 允许自己控制公网服务器、监听端口和原始协议。要的是网页服务和少运维,Tunnel 更短;要的是任意 TCP/UDP、自定义端口或完全自托管,frp 更直接。

链路很简单#

外部客户端
公网 VPS:frps
↑ 长连接
内网机器:frpc
SSH / Web / RDP / 游戏端口 / 其他本地服务

真正的关键是连接方向:内网机器主动出站,所以路由器不需要给它分配公网 IP,也不用在每层 NAT 上做端口转发。公网 VPS 成为统一入口。

为什么推荐#

  • 协议覆盖广:TCP、UDP、HTTP、HTTPS 等常见场景都能处理。
  • 控制权完整:中转服务器、域名、端口、日志和升级节奏都由自己决定。
  • 部署结构小:核心就是 frpsfrpc 两个程序加 TOML 配置。
  • 适合非网页服务:SSH、远程桌面和游戏端口不必硬套 HTTP 隧道。

frp 的成熟之处还在于它没有把简单问题包装成平台。先建立一条可靠隧道,再按需要补 TLS、鉴权、域名路由、限速和监控;基础需求不必先部署控制台、数据库和账号系统。

安全边界要比配置先写#

内网穿透不是把端口「藏起来」,而是把入口搬到公网 VPS。映射出去的服务仍然暴露在互联网上,因此至少要处理:

  • 为 frpc 与 frps 配置认证,不接受匿名客户端接入。
  • 只开放实际需要的端口,并在 VPS 防火墙限制来源。
  • SSH 使用密钥并关闭密码登录;管理服务不要直接映射弱口令页面。
  • 对公网链路启用合适的 TLS,持续更新 frp 版本。
  • 记录连接和错误日志,给中转服务加 systemd 守护与资源限制。

如果只是自己远程管理机器,Tailscale 或 WireGuard 往往比公开一个端口更安全;如果只是发布网页,Cloudflare Tunnel 能少守一台中转。frp 的优势在于自由,但自由的另一面就是这些责任没有平台替你接走。

不适合什么情况#

  • 没有稳定公网 VPS,也不想维护中转节点。
  • 只需要私有设备互访,不需要任何服务公开给互联网。
  • 主要需求是带身份门禁的网页后台,现成零信任隧道会更省事。
  • 不清楚被映射服务自身是否安全,只想用隧道绕过网络限制。

我的选择标准#

我会先按协议选工具,而不是先选名气:HTTP 服务优先看托管隧道;设备私网互联优先看 VPN;只有需要原始端口、自己掌控入口时才上 frp。这样每种工具只做自己最擅长的一层,链路也更容易排查。

frp 不是魔法,它只是让内网主动连出,再把公网入口转回来。理解这件事之后,配置不难;真正要认真的是,你究竟把什么服务暴露给了谁。

s1oopX

登录 s1oopX