Wireguard 最近很火,当之无愧。我也迫不及待地想用 Wireguard 替换 OpenVPN。
但是,与 OpenVPN 不同,Wireguard 仅支持 UDP。我喜欢使用 TCP 端口 443,因为此端口很可能不会被防火墙阻止。OpenVPN 甚至有一个使用 HTTP 代理的选项。这非常酷,因为它使我能够在没有互联网路由并要求用户使用 Web 代理的网络中获得完全、不受限制的互联网访问。
我如何使用 wireguard 实现相同的功能?适用于 UDP 的 HTTPS 隧道?
让我们假设两个端点都运行 Linux,我对两者都有完全的根访问权限,当然我也有所有相关人员的许可来执行此操作。
答案1
这似乎完全符合我的要求,尽管cntlm
如果代理需要 NTLM 身份验证,您仍然需要一个附加代理。
答案2
官方文档解释了为什么他们不支持 TCP 和 DPI [1]
WireGuard 明确不支持通过 TCP 建立隧道,因为通过 TCP 建立隧道的网络性能非常糟糕。相反,将 WireGuard 的 UDP 数据包转换为 TCP 是上层混淆的工作
对于 TCP 隧道,他们建议使用 udp2raw[2] 或 udptunnel[3]。
请注意,这仅涵盖 TCP 隧道,它不会通过 HTTP(S) 屏蔽它,因此如果您的防火墙执行深度数据包检查或标头分析等,它将不受保护。您需要更高级的设置。
答案3
HTTPS 不是用来传输隧道流量的东西,但是 websockets 适合这样做。
我认为你正在寻找隧道。它也能够通过 TLS 进行隧道传输。
答案4
可以运行SSH VPN(在端口 443 上使用 ssh)并在创建的接口上运行 Wireguard。
可能还可以在您现有的 OpenVPN 上运行 Wireguard。
Wireguard 的前提在设计上似乎是无连接的,所以我怀疑 TCP 或 HTTP 功能是否很快就会推出(抱歉)。