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

优势:
不足:
- 运营方提供公网访问入口,硬件投入大
- 带宽要求高,免费用户往往会被限速,产生免费使用上的“鸡肋”
2、直接穿透
原理示意图:

优势:
不足:
- 服务端必须具备公网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