全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别
查看: 115|回复: 0

【转载】详解Proton -PN 是如何绕过限制的

[复制链接]
发表于 8 小时前 | 显示全部楼层 |阅读模式
以下内容为转载且已翻译为中文,转载仅用于传递更多信息之目的,不代表本人立场

---

Proton-PN 在一些网络严格受限的地方依然可以正常工作,这是因为其采用了一套巧妙的机制。整个流程可以分为两部分:

1. 确保客户端可以正常访问 API 端点  
2. 确保客户端可以连接到 -PN 服务器


一、API 端点的访问策略
为了让客户端能够正常工作,Proton-PN 首先需要解决如何访问 API 端点的问题。流程如下:

1. 尝试通过 HTTPS 直接访问 API 端点
   - 客户端首先以 HTTPS 协议访问默认的 API 端点,尝试解析一个特定的 DNS 记录用于获取备用API端点地址。
   - 如果访问 成功,客户端会直接与主 API 端点通信,不再进行其他操作。并放弃上一步查询到的结果。
   - 如果访问 失败,则执行下一步。

2. 调用内置的 DoH 服务
   - 如果直接访问失败,客户端会切换到内置的两个 DoH(DNS over HTTPS)服务:Quad9 和 Google。
   - 通过 DoH 查询特定的 DNS 记录,以获取备用 API 服务器地址。
   - 使用获取到的 IP 地址直接访问:
     - 如果 成功,客户端会与备用 API 端点继续通信。
     - 如果 失败且错误非连接超时,放弃连接。
     - 如果 失败且错误为超时,进入下一步。
   - 如果 DoH 服务都无法连接,则直接进入下一步

3. 启动临时 -PN 模块
   - 如果通过内置的 DoH 服务依然无法获取备用地址,客户端会启动一下设备上的 -PN 模块。
   - 临时 扶墙 模块尝试连接到 Proton 的已知服务器,建立通信后再次请求 API 端点。
   - 请求完成后关闭 -PN,客户端切换到备用 API 地址继续通信。
   - 如果以上方法仍然失败,客户端会继续轮询备用 API 地址,直到成功为止。


二、-PN 服务器的连接策略
当客户端成功访问 API 后,接下来的目标是连接到 Proton-PN 的服务器。  
为此,Proton-PN 使用了名为 Stealth 协议 的技术,这是一种经过精心设计的混淆协议。

1. Stealth 协议的技术核心
   - Stealth 协议的本质是 混淆后的 WireGuard over TLS 隧道。
     - 在 WireGuard 的基础上增加了一层 TLS 加密。
   - 外层的 TLS 层可以模仿标准 HTTPS 流量:
     - 使用 OpenSSL 库来实现TLS连接。
     - 通过 JA3 指纹的伪造,使客户端发出的流量伪装成常见的的 HTTPS 应用。
   - 服务端也保持相同的伪装技术(也使用openssl库实现TLS连接和JA3S指纹的伪造),使流量难以被检测和追踪。

2. 连接流程
   - 客户端随机选择一个或者由用户指定一个已存在的 -PN 服务器。
   - 使用 Stealth 协议发起连接,混淆流量以避开网络审查。
   - 如果当前服务器连接失败,客户端会自动尝试其他服务器,直到成功为止。

在这两种技术的确保下,终于实现了较高的可靠性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-11-23 17:30 , Processed in 0.059969 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表