如何确保始终使用 VPN?

如何确保始终使用 VPN?

我正在运行 VPN,想知道如果 VPN 连接中断会发生什么。

当我运行时,ifconfig我看到我的默认以太网适配器位于en0,VPN 位于utun0。所有流量都通过该接口运行utun0

  1. 谁定义一切都是通过utun0而不是在 上运行en0?我知道我的 VPN 提供商软件通过一些 DNS 条目来实现这一点,但我不明白整个概念。

  2. 如果 VPN 连接关闭,则en0再次接管。我该如何防止这种情况发生?例如,可以暂时停用该功能吗?en0或者,为了防止在连接意外中断的情况下泄露 IP 地址,我必须采取哪些步骤?

我对一般概念感兴趣,因此我询问 osx 和 linux。我可能误解了一些基本概念。

答案1

谁规定一切都通过 utun0 而不是 en0 运行?我知道我的 VPN 提供商软件通过一些 DNS 条目实现了这一点,但我不明白整个概念。

这些就是路由表。它们基本上定义了哪个网关将带您进入哪个网络。在 OS X 上,使用内置守护进程的 L2TP 和 PPTP VPN 下racoon有一个System Preferences > Network > (VPN interface) > Advanced > Options名为“通过 VPN 连接发送所有流量”的选项,可以为您执行此操作。

您可以ipconfig route在 Linux 和 OS X 上使用。

如果 VPN 连接关闭,en0 将再次接管。我该如何防止这种情况发生?例如,可以暂时停用 en0 还是我必须采取哪些步骤才能防止在连接意外中断时 IP 地址泄露?

  1. 您可以挂接在网络配置发生变化时触发的某些操作(当 VPN 失败或接口消失时)。在 OS X 上,您可以创建一个 launchd 守护进程,在该事件发生时运行脚本。该脚本应尝试恢复 VPN,否则会中断互联网。这是一个我在 github 上找到的示例要点至于如何在 OS X 上执行此操作。应该是在 Linux 上分配接口“关闭”脚本或直接在 OpenVPN 中执行此操作的方法。

  2. 作为一种可能更具弹性的解决方案,您可以制定一些防火墙规则以仅允许通过 VPN 进行通信,但 VPN 本身除外,因为它必须从您的实际接口出去。

如果非常担心泄漏,我相信 VPN 软件供应商会制作一个驱动程序,在 OS X 上更加强健地执行此操作,以确保即使不通过 VPN,也不会有数据包泄露。

相关内容