在运行 Apache HTTP Deeamon 的同一服务器上设置 OpenVPN Connect 的最佳方法是什么。
我在该服务器上托管了多个域名,并且我想在 vpn.example.com 上配置 OpenVPN 以供客户端连接。
我尝试在 Apache 上设置代理,以便https://vpn.example.com将指向 localhost:943 但是它不起作用 :(
答案1
OpenVPN 配置有一个port-share
指令。它允许 OpenVPN 监听端口 443。它检测流量类型。如果是 VPN 流量,则对其进行处理。如果是 http,则将其重定向到指定的服务器。
来自 OpenVPN 文档:
--port-share 主机端口 [dir] 在 TCP 服务器模式下运行时,与另一个应用程序(如 HTTPS 服务器)共享 OpenVPN 端口。如果 OpenVPN 感知到其端口的连接使用非 OpenVPN 协议,它会将连接代理到主机:端口的服务器。目前仅设计用于 HTTP/HTTPS,但理论上可以扩展到其他协议,如 ssh。dir 指定一个可选目录,其中将为每个代理连接动态生成一个名为 N 的临时文件,其中包含内容 C,其中 N 是客户端连接的源 IP:端口,C 是与代理接收器的连接的源 IP:端口。代理接收器可以将此目录用作字典来确定连接的来源。当代理连接断开时,每个生成的文件将被自动删除。
答案2
听起来 Apache 和 OpenVPN 都正在尝试绑定到端口 TCP/443。
更改 OpenVPN 的配置以使用备用端口可能会解决冲突。 OpenVPN 默认监听 UDP/1194。
如果您能够向服务器添加额外的 IP 地址,请将 Apache 配置为绑定到第一个 IP 上的 TCP/443,并将 OpenVPN 配置为绑定到第二个 IP 上的 TCP/443。