banner
约 2,100 字
7 分钟

无需公网服务器,公益frp网站实现内网穿透

-
-
无标签

摘要

本文介绍利用公益 frp 实现内网穿透。frp 通过客户端主动连接公网服务器,无需公网 IP。虽配置简单且免费,但数据经第三方中转,存在安全风险,仅适合临时体验,不可用于敏感服务或建站。设置流程包括注册实名、建隧道、安装 frpc 并粘贴配置。若需长期稳定,建议自建服务器或使用 Cloudflare Tunnel。

前言

frp 一直是我觉得最好用的内网穿透方案之一 —— 它无需在访问端装客户端,配好后直接用域名访问内网服务,体验很接近"真公网"。唯一的问题是:它需要一个有公网 IP 的中转服务器,而个人并不一定都有。

好消息是,现在有很多公益 frp 网站提供免费的中转节点,帮你省掉自己买服务器的成本。有些站已经稳定跑了好几年,对个人临时访问来说是个可行的选择。

[!note] 使用公益 frp 前请想清楚:最好的方式始终是用自己的服务器,不要拿公益节点跑重要服务 —— 毕竟你的流量要经过别人的服务器中转,既不占带宽优势,也存在被对方查看/中断的风险。个人体验、测试用途最合适。

先搞懂 frp 的工作原理

很多人把 frp 当成"魔法",配置照抄能用,一出问题就完全不知道从哪查。花两分钟理解它的数据流,后面排查会顺很多:

纯文本
外网访客 ──► frps(公网中转服务器)──► 隧道 ──► frpc(你的 NAS)──► 本地服务
             ↑ 这里监听端口                        ↑ 这里主动"拨出去"

关键在于连接是谁发起的

  • 你 NAS 上的 frpc 客户端主动出站去连公网上的 frps,建立一条长连接(控制通道)。

  • 之后外网有人访问 frps 的某个端口,frps 就顺着这条已经建好的隧道把数据回传给你的 NAS。

所以内网这一侧完全不需要开任何入站端口,也不需要公网 IP,更不用改路由器端口映射。 这也是 frp 能"绕过 NAT"的本质 —— 不是打通了 NAT,而是根本不依赖入站连接。

理解了这一点,很多现象就能自己解释:

现象

原因

NAS 上 frpc 没启动,外网就断了

隧道是 frpc 主动维持的,客户端一停,通道就没了

重启 NAS 后要等一会才能访问

frpc 需要重新连上 frps 并注册隧道

用域名访问走的是别人服务器的带宽

数据确实绕路了,frps 是必经之路

公益 frp 的信任边界(配之前先想清楚)

这部分原文没展开,但它是决定"能不能用、能用在哪"的前提。

数据流经第三方服务器时,对方能看见什么?

你的本地服务

frps 能看到

自带 HTTPS(如 https:// 反代后)

只看到加密后的密文,看不到内容

纯 HTTP(如 http://192.168.1.10:3002

明文,包括请求头、Cookie、登录表单

结论很直接:如果你要走公益节点,至少给服务套一层 HTTPS;而不管加不加密,请求发往哪个域名、什么时候发的、发了多少,中转方都是清楚的。所以:

  • ❌ 别穿透网盘、照片库、密码管理器这类含隐私数据的服务

  • ❌ 别穿透生产环境的数据库、管理后台

  • ✅ 临时演示、给别人看个页面、自己在外网取个文件 —— 这类用途合适

实名认证不是"站点麻烦你"。 国内公益 frp 站要求实名,是《网络安全法》对网络服务提供者的要求(需要留存用户真实身份信息与访问日志)。这其实是件好事 —— 会跑路的小站往往不做这一步,愿意做实名、并且能查到公司/主体信息的站,相对更可靠。

为什么"免费节点不适合建站"? 两个硬原因:一是免费节点是多人共享同一条线路和同一个出口 IP,带宽被抢,晚高峰会很难受;二是共享 IP 的历史行为不可控,这个 IP 可能已经被搜索引擎或风控系统标记过,你用它建站,关键词排名和访问体验都受影响。

网站选择

可选的公益 frp 站非常多,有付费也有免费。建议优先选择运营时间长、口碑好的大站,稳定性更有保障。

我自己选的是 ChmlFrp

  • 免费用户可新建 4 个服务,无限流量;

  • 需要免费实名认证

  • NAS 端能用原版 frp 客户端(有些站强制用魔改版客户端,安全性/兼容性存疑,建议避开)。

关于"魔改客户端"这个坑,值得单独说一下。 frp 官方客户端 frpc 是开源的,你能审计、能自己编译、能核对哈希。而"魔改版"是站点自己改过的二进制 —— 你既看不到源码,也不知道它除了连隧道之外还做了什么。在一个本来就掌握你全部流量走向的环境里,再运行一个闭源的、由对方提供的可执行文件,风险是叠加的。 遇到强制要求魔改客户端的站,建议直接换一家。

"4 个服务"到底限制的是什么? 是 4 条隧道,也就是最多把 4 个本地端口暴露出去。每条隧道的映射关系大致是:

纯文本
本地 192.168.1.10:3002  ──►  站点分配的公网地址:远程端口

大多数站会同时给你一个 HTTP 子域名(如 xxx.chmlfrp.cn)和一个 TCP 端口。前者适合网页类服务(自动带域名),后者适合非 HTTP 协议(比如游戏联机、SSH、RTSP)。

如何设置

以在飞牛 NAS 上把一个本地服务(sun-panel)穿透出去为例:

  1. 网站注册并完成实名认证(多数公益站出于合规都会要求)。

blog image
  1. 创建一条隧道,填写本地服务信息。

blog image
  1. 选择节点。注意:免费用户可选节点通常很少、线路也一般,不适合拿来建站(延迟和稳定性达不到),个人内部访问够用即可。

blog image
  1. 填写要映射的本地端口。我以 sun-panel(一个 NAS 导航面板)为例,它运行在容器端口 3002,这里就填 3002

blog image
  1. 获取启动代码:隧道创建好后,网站会给你一段 frpc 客户端的启动配置/代码。

blog image
  1. 复制对应系统的代码:不同客户端(Windows / Linux / NAS 等)的启动代码会略有不同。我是飞牛 os,所以复制适用于飞牛/原版 frpc 的那一段。

blog image
  1. 本地安装 frpc 服务:飞牛 NAS 为例,直接在它的应用商店里搜索安装 frpc 即可,省去手动折腾。

blog image
  1. 打开服务并粘贴代码:在 frpc 的配置界面里,把上一步复制的启动代码粘贴进去并保存。

blog image
  1. 回 ChmlFrp 网站确认状态:提交后回到网站,如果隧道状态从"离线"变成了"在线",说明 frpc 已成功连上中转节点。

blog image
  1. 访问测试:点击网站给你的链接地址,即可打开 sun-panel 页面。个人自己用用是完全没问题的。

blog image

出问题了怎么查

公益 frp 是"黑盒"最多的场景 —— 中转方的东西你看不到,所以排查要按顺序缩小范围:

现象

先查这三点

隧道一直显示"离线"

① NAS 上 frpc 进程是否在跑(服务是否启动成功);② 粘贴的配置里 serverAddr / token 有没有多余空格或换行;③ 节点是否在维护(看站点公告)

隧道"在线"但打不开

① 本地端口填错了 —— 先在 NAS 上 curl 127.0.0.1:3002 确认服务本身正常;② 用的是容器但填了宿主机外的地址;③ 站点分配的是 HTTP 子域名,你却在用 TCP 端口访问(或反过来)

能开但特别慢 / 频繁断

免费节点带宽争抢,换一个节点试;或避开晚高峰验证是否与时段相关

昨天还好今天不行

节点下线或 IP 变更,在站点后台换节点后重新复制启动代码(节点换了,配置里的地址和端口也会变)

一个判断技巧:先在 NAS 本机 curl 通,再从外网访问。 本机不通就是你的服务问题,本机通了外网不通就是隧道/节点问题 —— 这一步能立刻把问题范围砍一半。

如果要用在重要场景,还有两条路

公益 frp 适合"零成本解决临时访问",但只要需求往"长期、稳定、在乎安全"方向走,它就不够了。这时候有两个更靠谱的方向:

① 自建 frps 服务端。 如果你手上有任何一台带公网 IP 的机器(比如云服务器),就能自己搭中转,流量只经过你自己的服务器,节点质量、端口、限速全由你控制。完整流程我写在用 frp 自建中转服务器,通过域名访问本地服务这篇里,配置方式和公益站的差别不大,主要是要自己装一次 frps

② 干脆不用中转服务器 —— Cloudflare Tunnel。 这是目前零成本方案里安全性最高的一种:cloudflared 客户端主动外连 Cloudflare 边缘节点,不开放任何入站端口,也不需要你有公网 IP,连服务器都不用买。代价是 Cloudflare 边缘节点在国内访问偏慢,需要额外做一步"优选 IP 加速"才能跑应用类服务。具体配置我写在无公网 IP 的内网穿透:Cloudflare Tunnel + 优选加速;如果你想先把这套方案的原理和进阶玩法吃透,可以先看这篇总纲:Cloudflare Tunnel 完全指南

小结与提醒

公益 frp 的价值在于零成本解决"没公网服务器"的内网穿透需求,配置也不难(核心就是:注册实名 → 建隧道 → 本地 frpc 粘贴代码 → 确认在线)。

但要记住三条原则:

  1. 别跑重要/敏感服务,数据经过第三方中转,安全边界要心里有数;

  2. 别指望它建站,免费节点性能和稳定性有限;

  3. 能用自己的服务器 / 官方 frp 就优先用自己的,公益站只当应急和体验的手段。

如果你的宽带支持 IPv6,其实还有更快、更安全的"IPv6 直连"方案,感兴趣可以看我另写的那篇通过 Lucky 走 IPv6 访问内网服务的教程。

END

相关文章

暂无相关文章