Windows 10 上的 OpenVPN 版本 2.5.0。安装后,我得到了两个新的网络适配器:OpenVPN Wintun
和OpenVPN TAP-Windows6
。
我的 .ovpn 配置文件包含该行dev tun
,因此我假设连接将使用接口tun
,但事实并非如此tap
。我尝试重新安装 OpenVPN,仅安装tun
接口,连接失败并显示以下日志:
...
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
为,但失败并出现多个错误,所以我的 vpn 确实是这种类型。有人能解释一下为什么它会这样工作吗?如果无论如何都要使用适配器,那适配器有什么用呢?dev tap
tun
OpenVPN Wintun
tap
如果出于某种原因这种行为是正确的,那么它是否实际上像tun
应该的那样在第 3 级运行?
答案1
对 Wintun 的支持(来自 WireGuard)是 OpenVPN 2.5 的最新功能,因此您需要明确选择使用它:
windows-driver wintun
长期以来,不是Windows 上任何类似于“tun”接口的东西都可以被 OpenVPN 使用,所以dev tun
别无选择,只能使用“TAP-Windows”驱动程序并创建一个 L2 以太网接口,即使对于 L3 隧道也是如此——它只会模拟所有 L2 的东西(比如客户端的 ARP 响应,甚至为本地机器提供假 DHCP。
然而,尽管对于第 3 层链接来说它很笨重,但“TAP-Windows”驱动程序已经运行了很长时间,因此目前仍然是默认驱动程序。(Wintun 还采用了更严格的权限检查,因此 OpenVPN 需要以系统权限作为服务运行。看来 OpenVPN 为此使用了“交互式服务”模式。)
另一个类似的选项是 OpenVPN 自己的“数据通道卸载”驱动程序ovpn-dco
,它将随 OpenVPN 2.6 一起提供。