侧边栏壁纸
博主头像
ZDREAM

一万年太久,只争朝夕

  • 累计撰写 35 篇文章
  • 累计创建 2 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

内网穿透的几点思考:从FRP原理到方案选择

Thassarian
2023-03-29 / 0 评论 / 0 点赞 / 6 阅读 / 0 字

一、核心原理

市面上许多内网穿透服务,如花生壳,其技术基石与开源项目FRP是相通的,即反向代理。可以把这个过程理解为一个“服务总机”模型:

  • 内网设备(Client):身处一座无法从外部直接拨号进入的大楼内部。它知道“总机”的公共电话号码。

  • 公网服务器(Server):就是那台“总机”,它拥有一个所有人都能拨打的公共电话号码(公网IP)。

  • 外部访问者(Visitor):想要联系大楼内某个特定服务的人。

工作流程如下:

  • 主动注册:内网的frpc(客户端)启动后,会主动拨打公网frps(服务端)的电话,并保持这条线路通话。它告诉总机:“你好,我是内部的3389端口服务。如果外面有人打总机的12345分机号找我,请把通话转接给我。”

  • 请求中继:当外部访问者访问公网服务器IP:12345时,请求实际上是打给了“总机”。

  • 连接建立:总机frps收到请求,根据之前frpc注册的规则,通过已经建立好的那条内部线路,将这个外部请求原封不动地转发给内网的frpcfrpc再将请求交给本地的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/花生壳 + RDP (3389)

向日葵/TeamViewer

安全性

高风险! 直接将RDP端口暴露在公网,是黑客和扫描机器人的首要攻击目标。安全性完全依赖于:<br>1. 极其复杂的Windows登录密码。<br>2. 开启网络级别身份验证(NLA)。<br>3. (可选)修改默认的3389端口为其他高位端口。<br>安全责任完全在你。

高得多。它们不直接暴露端口。连接是通过一个ID和随机密码来建立的,这个密码通常是临时的。所有连接都经过其服务器中继和强加密。它们有专门的团队负责安全。

易用性

对技术人员友好。你需要知道域名、端口号,并使用Windows自带的“远程桌面连接”客户端。对于非技术人员(比如父母)来说,这个过程很复杂。

对所有人友好。设计初衷就是为了简单。只需要告诉对方一个ID和密码即可连接,几乎不需要任何网络知识。

功能丰富度

基础。你只能得到一个纯粹的远程桌面。文件传输需要手动映射驱动器,没有内置的聊天、会话录制、远程重启等功能。

非常丰富。集成了文件传输、远程命令行(CMD)、聊天、会话录制、多屏幕切换、远程重启到安全模式等大量为远程支持量身定做的功能。

网络适应性

一般。Windows RDP协议对网络延迟和丢包比较敏感。在网络状况不佳时,体验会很差。

优秀。这些软件的核心技术之一就是智能网络优化。它们会根据当前网络状况自动调整画质、帧率和压缩算法,以保证在糟糕的网络下依然有可用的流畅度。

三、frp和vpn的异同

FRP解决了“将特定服务请出来”的问题,而VPN(如WireGuard, OpenVPN)则解决了“让自己走进去”的问题。

1、核心比喻

  • FRP 方案: 像一个大楼的前台总机。你想找大楼里的“张三”(内网的Web服务),你告诉总机(frps服务器),总机帮你接通张三的电话分机(内网端口)。你只能和张三通话,但你不能在大楼里自由走动去拜访“李四”。

  • VPN 方案: 像一张大楼的门禁卡。你刷卡进入大楼后(连接VPN),你就身处大楼内部了。你可以自由地去访问任何你被授权进入的房间(内网的任何设备和服务),就像你本人就在大楼里一样。


2、详细对比表格

Feature

FRP (Fast Reverse Proxy)

VPN (e.g., WireGuard, OpenVPN)

核心目标

发布服务 (Publishing):将内网的特定服务安全地暴露到公网上。

加入网络 (Joining):将远程的设备安全地接入到内网中,使其成为内网的一员。

访问范围

端口级 (Per-Port):只能访问你在配置文件里明确指定的端口/服务。

网络级 (Network-Level):一旦连接,理论上可以访问内网中的任何设备和任何端口(受防火墙限制)。

工作原理

反向代理 / 隧道中继:所有流量都由frps服务器进行中转

虚拟网卡 / IP隧道:在你的设备上创建一个虚拟网卡,分配一个内网IP,所有数据包通过加密隧道传输。

访问者体验

对访问者透明:朋友访问 http://<你的公网IP>:8080 即可,不需要安装任何客户端

需要专用客户端:朋友必须安装VPN客户端软件,并配置好证书/密钥,每次访问前都要先“连接”VPN。

网络层级

主要工作在应用层/传输层 (Layer 4/7)

主要工作在网络层 (Layer 3)

安全性

隧道本身可以加密(需配置),安全性依赖于token和单个服务的认证。

默认且强制对整个隧道进行强加密,认证机制更完善(如证书体系)。安全性是其核心设计。

典型场景

1. 将家里的NAS分享给朋友访问。<br>2. 临时将本地开发环境的网站展示给客户看。<br>3. 搭建一个我的世界(Minecraft)服务器让朋友加入。

1. 远程办公,安全访问公司内部的文件服务器、数据库等。<br>2. 组建一个私有的游戏局域网。<br>3. 在外地安全地管理家里的所有智能设备。


3、总结异同

相同点:

  • 都解决了远程访问内网资源的问题

  • 都依赖一个公网服务器作为“跳板”或“网关”

  • 都可以对传输的数据进行加密,保证了基本的安全性。

不同点(核心差异):

  1. 范围的本质区别: 这是最大的不同。frp 是“点对点”的服务暴露,而 VPN 是“点对面”的网络接入。用 frp,你朋友的内网只为你打开了几扇小窗户;用VPN,你朋友给了你一把他家大门的钥匙。

  2. 对访问者的要求不同: frp 对访问者极其友好,他们只需要一个URL。VPN 则要求访问者进行软件安装和配置,更适合固定的、受信任的用户(比如你自己或公司员工)。

  3. 网络集成度不同: 连接VPN后,你的电脑会获得一个内网IP地址(例如 192.168.1.101),在网络层面,你的电脑和内网中的其他设备是“对等”的。而frp不会改变你电脑的任何网络配置。

0

评论区