一、核心原理
市面上许多内网穿透服务,如花生壳,其技术基石与开源项目FRP是相通的,即反向代理。可以把这个过程理解为一个“服务总机”模型:
内网设备(Client):身处一座无法从外部直接拨号进入的大楼内部。它知道“总机”的公共电话号码。
公网服务器(Server):就是那台“总机”,它拥有一个所有人都能拨打的公共电话号码(公网IP)。
外部访问者(Visitor):想要联系大楼内某个特定服务的人。

工作流程如下:
主动注册:内网的frpc(客户端)启动后,会主动拨打公网frps(服务端)的电话,并保持这条线路通话。它告诉总机:“你好,我是内部的3389端口服务。如果外面有人打总机的12345分机号找我,请把通话转接给我。”
请求中继:当外部访问者访问公网服务器IP:12345时,请求实际上是打给了“总机”。
连接建立:总机frps收到请求,根据之前frpc注册的规则,通过已经建立好的那条内部线路,将这个外部请求原封不动地转发给内网的frpc。frpc再将请求交给本地的3389端口。
至此,一次从公网到内网的连接就打通了。
花生壳
花生壳可以看作是一个大规模、商业化、并提供了友好图形界面的FRP服务集群。它的特点是:
针对端口 (Port-based):操作的核心对象是端口。用户创建一个映射规则,如 your-domain.hsk.me:12345 -> 192.168.1.100:3389。
公网暴露 (Publicly Exposed):映射一旦建立,your-domain.hsk.me:12345这个地址就在公网上变得可访问。任何知道该地址的人都可以尝试连接,因此服务的安全性高度依赖于被暴露的内网服务本身(例如,Windows的登录密码强度)。
二、典型场景:远程桌面(RDP)
将内网Windows主机的3389端口通过FRP或花生壳暴露到公网,是实现远程桌面控制的常见“DIY”方案。但它和“向日葵”、“TeamViewer”这类成熟的远程桌面软件相比,存在显著差异。这好比是“DIY手动挡”与“品牌自动挡”的区别。
FRP/花生壳 + RDP:一个强大、灵活的工具包。它利用基础协议实现远程访问,适合技术人员连接自己完全受控的设备,但使用者必须对安全加固措施有清晰的认知。
向日葵/TeamViewer:一个成熟、可靠的一站式产品。它封装了所有复杂的技术细节,提供安全、易用、功能丰富的体验,更适合为非技术人员提供支持,或在不稳定的网络环境中工作。
三、frp和vpn的异同
FRP解决了“将特定服务请出来”的问题,而VPN(如WireGuard, OpenVPN)则解决了“让自己走进去”的问题。
1、核心比喻
FRP 方案: 像一个大楼的前台总机。你想找大楼里的“张三”(内网的Web服务),你告诉总机(frps服务器),总机帮你接通张三的电话分机(内网端口)。你只能和张三通话,但你不能在大楼里自由走动去拜访“李四”。
VPN 方案: 像一张大楼的门禁卡。你刷卡进入大楼后(连接VPN),你就身处大楼内部了。你可以自由地去访问任何你被授权进入的房间(内网的任何设备和服务),就像你本人就在大楼里一样。
2、详细对比表格
3、总结异同
相同点:
都解决了远程访问内网资源的问题。
都依赖一个公网服务器作为“跳板”或“网关”。
都可以对传输的数据进行加密,保证了基本的安全性。
不同点(核心差异):
范围的本质区别: 这是最大的不同。frp 是“点对点”的服务暴露,而 VPN 是“点对面”的网络接入。用 frp,你朋友的内网只为你打开了几扇小窗户;用VPN,你朋友给了你一把他家大门的钥匙。
对访问者的要求不同: frp 对访问者极其友好,他们只需要一个URL。VPN 则要求访问者进行软件安装和配置,更适合固定的、受信任的用户(比如你自己或公司员工)。
网络集成度不同: 连接VPN后,你的电脑会获得一个内网IP地址(例如 192.168.1.101),在网络层面,你的电脑和内网中的其他设备是“对等”的。而frp不会改变你电脑的任何网络配置。
评论区