Windows 10 上的 OpenVPN 版本 2.5.0。安装后,我得到了两个新的网络适配器:OpenVPN Wintun
和OpenVPN TAP-Windows6
.
我的 .ovpn 配置文件包含该行dev tun
,因此我假设连接将使用该tun
接口,但不,它使用该接口tap
。我尝试重新安装仅安装tun
接口的 OpenVPN,但连接失败并显示以下日志:
...
open_tun
MANAGEMENT: Client disconnected
All tap-windows6 adapters on this system are currently in use
Exiting due to fatal error
这是有道理的,因为没有tap
安装适配器,但是如果配置这么说它为什么不使用那个tun
呢?日志甚至告诉open_tun
。
出于好奇,我尝试更改dev tun
为dev tap
失败并出现多个错误,因此我的 vpn 确实属于这种tun
类型。谁能解释一下为什么它会这样工作?OpenVPN Wintun
如果仍然使用适配器,那么适配器有什么tap
用?
如果出于某种原因这种行为是正确的,它是否真的像tun
应该或不应该在第 3 级运行?
对 Wintun 的支持(从 WireGuard 引入)是 OpenVPN 2.5 的最新补充,因此您需要明确选择使用它:
很长一段时间以来,在 Windows 上没有任何类似“tun”接口的东西可以被 OpenVPN 使用,所以
dev tun
只好使用“TAP-Windows”驱动程序并为 L3 隧道创建 L2 以太网接口– 它只会模拟所有 L2 事物(例如客户端的 ARP 响应,甚至向本地机器提供虚假 DHCP。然而,与第 3 层链接一样笨拙,“TAP-Windows”驱动程序已经工作了很长时间,因此目前仍然是默认设置。(Wintun 也写了更严格的权限检查,所以 OpenVPN 需要作为具有系统权限的服务运行。OpenVPN 似乎为此使用了“交互服务”模式。)
另一个类似的选项是 OpenVPN 自己的“数据通道卸载”驱动程序
ovpn-dco
,它将在 OpenVPN 2.6 中提供。