我已经设置了 OpenVPN,它正在运行。但是,有一件事我怀疑:在客户端机器上,OpenVPN 启动后的路由如下所示:
0.0.0.0/1 via 10.8.0.5 dev tun0
default via 192.168.1.1 dev enp3s0 proto dhcp src 192.168.1.33 metric 1024
10.8.0.1 via 10.8.0.5 dev tun0
10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6
128.0.0.0/1 via 10.8.0.5 dev tun0
如果 OpenVPN 崩溃或失去连接,它能否悄悄恢复到默认路由(第 2 行)?这样,客户端与通用 Internet 的连接将不受保护且不会发出警告。会发生这种情况吗?VPN 启动后,我是否需要编写脚本来拆除旧路由?
答案1
除了极少数情况外,您的 VPN 确实会使用默认路由来获取 VPN 端点。VPN 通常被实现为通过外部不受信任的网络进入专用网络的隧道。它使流量不可见。
当您的 VPN 连接失去同步时,隧道可能会难以处理几个数据包,但最终会在您的终端丢弃,并且您的流量不会超出 VPN 隧道的终端,这通常是某种奇怪的网络设备。这应该会导致您的应用程序软件引发错误,但这是特定于协议的,因为有些协议会自动尝试通过任何可用连接恢复,而其他协议则与安全、性能或操作要求的具体要求相关。
当您需要隐藏您正在执行的 DNS 操作时,使用 VPN 时需要小心,并非所有 VPN 解决方案都会通过 VPN 链接发送 DNS 查询,这就像是将您访问的主机列表提供给 DNS 服务器的所有者或任何可以嗅探其间流量的人。
答案2
我做了一些研究,发现我是对的。确实如我所担心的一样,VPN 断开连接后,应用程序会默默地恢复到默认路由。为了防止这种情况,我应该使用防火墙。
# Default policies
ufw default deny incoming
ufw default deny outgoing
# Openvpn interface (adjust interface accordingly to your configuration)
ufw allow in on tun0
ufw allow out on tun0
# Local Network (adjust ip accordingly to your configuration)
ufw allow in on enp3s0 from 192.168.1.0/24
ufw allow out on enp3s0 to 192.168.1.0/24
# Openvpn (adjust port accordingly to your configuration)
ufw allow out on enp3s0 to any port 1194
ufw allow in on enp3s0 from any port 1194
如果您需要 DNS 来访问您的 VPN 服务器:
# DNS
ufw allow in from any to any port 53
ufw allow out from any to any port 53
答案3
费了好大劲却一无所获。OVPN.se 给了我支持。ubuntu 的最新版本有问题。使用 OVPN-linux-6-2.10.... 我可以登录但无法连接。使用旧版本 https://files.ovpn.com/client/new-updates/linux/ubuntu-qt6/2.11.0.6132/repo/OVPN-linux-6-2.11.0.6132.run我可以登录并连接。
当我同意更新并修复错误后,OVPN 表现得和以前一样。应用程序出现、验证并崩溃。
Ovpn.se 应该将此事告知 Ubuntu 用户并让他们安装 2.11 版本。要运行它,我必须在 sudo 模式下在终端中启动 OVPN。cd /opt/OVPN,然后 sudo ./OVPN