对于工作,我不得不使用 OpenVPN 服务器来访问一些网站,因为它们只允许使用工作 OpenVPN 服务器的 IP 地址。但是,我仍然希望使用我自己的 OpenVPN 服务器的 IP 地址来访问大多数网站(我的 VPN 安装在 VPS Linux 服务器上)。目前,我能够通过使用 SSH 隧道到具有 OpenVPN 客户端的 LXC 容器,将我用于工作的 OpenVPN 服务器转变为 SOCKS 代理(除了 LXC,也可以使用 VirtualBox 中的 Linux 虚拟机来完成,但使用 LXC 的性能更好)。我还通过使用 SSH 隧道到我自己的 Linux 服务器创建了一个 SOCKS 代理,以便能够使用 2 个 Firefox 配置文件连接到不同的代理,一个用于个人浏览,另一个用于工作浏览。
我用于工作的 OpenVPN 服务器仅允许浏览少数网站,因此它推送允许的路由,而不是使用默认网关将所有流量路由到 VPN。当我使用此 VPN 连接时,一个隐私问题是它会将我的真实 IP 地址泄露给工作网站的所有第三方请求。如果这些第三方请求使用的是 HTTP 而不是 HTTPS,本地网络也存在中间人攻击的风险,这是一个安全问题,因为 VPN 不会路由所有互联网流量。另一个隐私问题是,当连接到我必须用于工作的 OpenVPN 服务器时,我的真实 IP 地址会被泄露。
在连接到 VPN 之前,使用代理或其他 VPN 是否可以解决这些安全和隐私问题?我尝试同时连接到 2 个 VPN,但工作网站无法正常工作。我还尝试使用 redsocks 在整个系统范围内使用 SOCKS 代理,然后连接到工作 OpenVPN 服务器,但工作网站也无法正常工作。我也尝试了 proxychains。我听说有一个socks-proxy
可以在 OpenVPN 客户端文件中配置的变量,但我没有让它工作,可能是因为 OpenVPN 服务器使用的是 UDP 而不是 TCP,而使用 SSH 隧道的 SOCKS 代理不支持它。
更新:我通过使用允许同时使用 2 个 VPN 的路由部分解决了该问题ip route add WORK_VPN_IP via GATEWAY_IP
。在 LXC 容器中,我现在可以将工作 VPN 用于工作网站,并将我自己的 VPN 用于所有其他网站或第三方请求。但是我认为这仍然会将我的真实 IP 地址泄露给工作 VPN。通过在工作域名上使用 traceroute 命令,我可以看到流量仅通过我的工作 VPN。在 LXC 容器外使用我自己的 VPN 并在 LXC 容器内使用工作 VPN 甚至无法通过工作 VPN 访问 HTTPS 网站(https://askubuntu.com/questions/703905/unable-to-open-sites-with-https-when-connected-through-openvpn/1206914#1206914)。我没有使用 LXC 容器,而是使用 VirtualBox 中带有 NAT 网络的虚拟机进行了测试。HTTPS 问题也发生在 VPN-Chain 等脚本上(https://github.com/TensorTom/VPN-Chain/issues/7)。一种解决方案是直接连接到我的 Linux 服务器上的工作 VPN,但出于安全原因,我不想在云中输入工作 VPN 凭据(这也可能扰乱安装在这台 Linux 服务器上的我自己的 VPN 的路由)。
更新 2:我在服务器上安装了 Dante SOCKS 代理,现在我能够使用socks-proxy
OpenVPN 客户端配置文件中的变量在工作 VPN 之前连接到我的代理。这解决了我的问题,但我仍然想知道是否可以在连接到另一个 VPN 之前连接到 VPN 而不是代理,而不会出现我在 HTTPS 网站上遇到的问题。
更新 3:我能够通过添加mssfix 1400
OpenVPN 客户端配置文件(如 @Enrico 在回答中建议的那样)来解决问题,但它不再适用于其他 VPN。现在我必须使用一种变通方法,即通过 TCP 端口 443 而不是 UDP 端口 1194 连接到其中一个 VPN。参见评论:连接 VPN 之前使用代理或其他 VPN(链接无需 JavaScript 也能运行:https://superuser.com/posts/1522164/comments)。
答案1
你写了:
通过在工作域名上使用 traceroute 命令,我可以看到流量仅通过我的工作 VPN
如果你使用工作 VPN 访问(工作)网站,则该网站将看到 (工作) VPN 服务器所链接到的互联网连接的 IP 地址。
如果你担心(工作)VPN 集中器本身是的,如果您使用您提到的静态路由,它可以看到您的原始 IP 地址。为了避免这种情况,您可以避免使用静态路由,并在您自己的个人 VPN 之后启动工作 VPN:通过这样做,所有工作 VPN 数据包都将在个人 VPN 内流动(正如您所说,您的个人 VPN 将设置默认网关)。
如果个人 VPN 启动时工作 VPN 不起作用,可能是:
- 您的个人 VPN 正在阻止特定目标 IP、端口或流量
- 您的工作 VPN 集中器(或其防火墙)正在阻止您的个人 VPN 使用的源 IP/子网
对于后者,您可以询问公司的 IT 部门,防火墙是否对 VPN 的传入连接进行限制。