插图来源:Storyset
问:什么是 fallback(回落)?#
答:服务端只开一个端口(通常是 443),却能同时服务多种流量:Trojan 用户连进来走代理,普通访客连进来看到的是一个正常网站。服务端像个门卫,看一眼来人的"暗号",决定把他领去哪。
问:门卫怎么分辨流量?#
答:看流量开头的特征。比如 Trojan 协议握手有固定格式,对上了就进代理通道;对不上(比如浏览器正常访问),就"回落"到后面的网站服务。整个过程在毫秒级完成,用户侧完全无感知。
问:它解决的是什么问题?#
答:伪装。如果有人扫描你的服务器 443 端口,看到的是一个正经网站,而不是"此处有代理服务"。这大大降低了被主动探测发现的概率。Trojan 的伪装思路见 Trojan 协议详解,REALITY 是另一种伪装思路:REALITY 详解。
问:回落的网站有讲究吗?#
答:有。回落目标最好是一个看起来真实、内容完整的网站,而不是默认的 Nginx 欢迎页。越像真的,伪装效果越好。有些人会回落到一个真正的博客或企业站。
问:fallback 会影响速度吗?#
答:几乎不影响。分发判断只看流量开头的一点点特征,耗时在毫秒级。真正决定速度的还是线路质量,和有没有 fallback 没关系。
问:用户侧需要配置什么?#
答:什么都不用。fallback 是纯服务端机制,客户端按正常配置连接就行。你甚至感觉不到它的存在——这正是它设计得好的地方。
问:fallback 和 SNI 阻断有关系吗?#
答:有间接关系。SNI 阻断针对的是"握手时明文暴露的域名",而 fallback 解决的是"端口被扫描发现服务类型"。两者是不同层面的防护,配合 ECH(见 ECH 科普)效果更好。经典的三件套组合可以看 WebSocket + TLS + CDN 组合详解。
一句话:fallback 让服务器"表里不一"——外面看是网站,里面跑的是代理。用户无感,探测者迷惑,这就是它的价值。
问:fallback 和客户端的 SNI 分流是一回事吗?#
答:不是,但经常被搞混。SNI 分流是客户端的事:根据你要访问的域名决定走代理还是直连;fallback 是服务端的事:根据进来的流量特征决定分给代理还是网站。一个管"出去走哪条路",一个管"进来去哪个房间"。两者可以同时存在,互不冲突。SNI 层面的阻断原理见 SNI 阻断科普。
问:回落用的网站需要维护吗?#
答:需要,而且这是很多人忽略的细节。一个两年没更新、证书过期的"博客",在主动探测面前同样可疑。回落站最好满足三条:内容像真的(有几篇像样的文章)、证书有效、能正常打开。你可以把它当成一个真正的轻量小站来养,成本不高,但伪装分拉满。
问:fallback 能防 SNI 阻断吗?#
答:不能。SNI 阻断发生在握手阶段,针对的是你明文宣告的域名;fallback 发生在握手之后,针对的是"连进来的是什么流量"。前者是"不让你进门",后者是"进门后把你领去哪"。想两层都防,思路是 ECH 藏 SNI + fallback 做伪装,再叠一层 CDN 隐藏真实 IP——新一代 VMess 组合玩法见 VMess + WS + TLS。