VPN 服务器协议或在伊朗的诡计

dan*_*lli 10 vpn openvpn datacenter

希望这个问题符合论坛的规则。我们从伊朗访问国际互联网变得非常困难。只有某些特定的 VPN 可以工作。

您对我在伊朗建立 VPN 服务器有什么建议吗?例如,特定的协议——特定的技巧——使用特定类型的数据中心。

dro*_*kie 11

到目前为止,您可以尝试一些 VPN 协议。我将尝试总结它们以及我对使用或不使用 DPI 时如何轻松区分(和阻止)它们的观察结果。

这篇文章并不是对任何商业或免费使用 VPN 服务的推荐,而是对一些流行的现有协议的回顾,您可以使用它们来构建自己的服务。

可以在任何简单的数据包过滤器上轻松阻止的原型:

  • PPTPtcp/1723 - 控制、gre - 数据。协议是硬编码的(端口号/底层协议无法更改)。可以很容易地被阻止。
  • L2TP 简单UDP/1701。原型是硬编码的。可以很容易地被阻止。
  • L2TP/IPSec,带 NAT-T 或不带。udp/4500带 NAT-T 或普通 ESP 不带。可以很容易地被阻止。
  • GRE/IP-in-IP封装,普通。使用 IP 标头分析可以轻松阻止。
  • 任何类型的IPSec(在 GRE/IP-in-IP 隧道之上,或不使用)- VTI、传统隧道等。相同 - 可以使用IP 标头分析轻松阻止。

只能使用 DPI 阻止且仅在应用特定 DPI 技能级别时才能阻止的 Proto:

  • 开放VPN。proto 不是硬编码的,端口是可变的,使用 tcp 或 udp(tcp 是TCP Meltdown的一个主题,而 openvpn 一般来说实现得很差)。
  • 线卫udp/自定义。端口可变。
  • ssh 隧道( ssh -w [...]),使用专用隧道接口。tcp/自定义端口,或者只是tcp/22 - 它无法轻易与普通 SSH 区分开来,而后者又是互联网上最常用的原型之一。虽然这也是 TCP 崩溃的一个主题,但这是最难嗅探的情况。

最后但并非最后:根据我的经验,访问自由世界的互联网资源的最简单方法是使用TLS 加密的 HTTP 代理 而不使用 VPN:例如,这可以只是一个支持 TLS 的鱿鱼代理( ,因为鱿鱼的配置有点棘手,但仍然)和带有FoxyProxy插件的Firefox(需要后者,因为 FF 开箱即用不能使用支持 HTTPS 的代理)。即使使用 DPI,此流量也与端口 3128(或您的鱿鱼配置侦听的任何其他端口)上的自定义 TLS 流量无法区分。

错误:

  • 还有一个 ICMP 隧道实现,但开销太大,我不推荐它。
  • 还有一个使用 TypeScript 编写的 VPN、一个使用 Visual Basic for Applications 编写的 VPN 和一个使用 Microsoft Paint 的画布编写的 VPN:所有这些虽然名义上可以工作,但由于性能最终不可接受,因此不推荐使用。

来自魔多的问候,祝你好运。

  • OpenVPN over TCP 允许非常不寻常但难以发现的设置:您可以使用“端口共享”功能在端口 tcp/443 上运行 VPN,但如果通过浏览器访问,则正常的 SSL Web 服务器会出现在那里!这愚弄了许多工具,这些工具执行各种检查是否存在实际的 HTTPS 服务器,并在发现它时平静下来。`sslh` 也提供了这种可能性。另外值得注意的是,OpenVPN 的“tls-crypt”功能允许它以一种无法可靠地将其识别为 OpenVPN 的方式隐藏流量。 (5认同)
  • 甚至还有一个 DNS 隧道(`iodine`),但效率非常低。 (2认同)