且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

内网穿透技术浅评

更新时间:2022-08-13 09:15:11

科普一下给有需要的童鞋参考。
穿透原理大致分如下几类:

1、代理穿透

原理示意图:

内网穿透技术浅评

优势:

  • 保持100%穿透成功率
  • 用户无需公网IP

不足:

  • 运营方提供公网访问入口,硬件投入大
  • 带宽要求高,免费用户往往会被限速,产生免费使用上的“鸡肋”

2、直接穿透

原理示意图:

内网穿透技术浅评

优势:

  • 自主可控,无需第三方转发
  • 保持100%穿透成功率

不足:

  • 服务端必须具备公网IP
  • 带宽取决于服务端和客户端两者的最小带宽(面向云主机带宽不友好,主要是贵!死贵!!)
  • 由于直接暴露在公网,会有安全问题
  • 需要自己搭建,门槛较高

3、P2P穿透

原理示意图:

内网穿透技术浅评

优势:

  • 点对点,能最大化使用带宽,使用感知友好

不足:

  • Ipv4环境下成功率取决于NAT类型,移动网络(3G/4G下)基本没戏
  • Ipv6环境下成功率高,取决于防火墙策略(防火墙穿透)
  • 几乎全基于UDP协议或其衍生自定义协议,安全性和可靠性或多或少存在缺陷

4、Ssh隧道穿透:

常用免费工具穿透姿势:

-/- 代理穿透 直接穿透 P2P穿透 自主代理 公网IP 备注
花生壳 YES NO NO NO 不需要 限速到怀疑人生
teamviewer YES NO NO NO 不需要 烦人的商用提示
Ngrok YES YES NO YES 需要
Frp YES YES YES/UDP YES 需要 三种方式选其一
smarGate YES YES YES/TCP YES 不需要 同时支持,P2P优先

附:
Frp:https://github.com/fatedier/frp
Ngrok:https://github.com/inconshreveable/ngrok
smarGate: https://github.com/lazy-luo/smarGate