科普一下给有需要的童鞋参考。
穿透原理大致分如下几类:
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优先
|
附:
smarGate:
https://github.com/lazy-luo/smarGate
Frp:
https://github.com/fatedier/frp
Ngrok:
https://github.com/inconshreveable/ngrok