以非管理员身份运行时出现以下错误:
WireGuard 正在运行,但 UI 只能从内置管理员的桌面访问
如何启用 win10 的 wireguard 以便普通用户可以使用?
答案1
目前,您所要求的内容在 Windows 上是不可能的。
与其他 VPN 工具和技术不同,Wireguard 客户端会为您配置的每个连接创建一个隧道接口(显示为网络适配器)当你尝试连接时,又称“即时”。当您终止连接时,客户端会完全删除隧道接口。它在 Windows 的官方 VPN 管道之外执行此操作。该设计存在严重的限制,您需要成为机器的管理员,软件才能创建接口。
我在 Windows、Mac 和 Linux 上使用 Wireguard。Windows 是我遇到此问题的唯一平台。此外,我只使用 Wireguard 的官方客户端(撰写本文时为 0.38 版)。我不知道是否还有其他客户端。
答案2
正如之前的解决方案和评论所指出的那样,激活 wireguard(WG)隧道是不可能的——该操作需要某种权限提升。
到目前为止提到的解决方案都存在一些缺点,至少在我的用例中是这样。为了完整起见,我将列出所有提到的解决方案并添加我自己的解决方案。
正常的 WG 安装,切换到管理员用户以激活 Wireguard,然后切换回来。
- 优点:管理员用户可以访问 WG GUI 的所有功能
- 缺点:切换用户需要时间和点击次数
正常 WG 安装,添加
HKLM\Software\WireGuard\LimitedOperatorUI
注册表项并将用户添加到Network Configuration Operators
组看WG 注册表项文档
- 优点:WG GUI 可访问
- 缺点:干扰注册表,GUI 功能严重受限,干扰权限提升提示
最后一点需要澄清:作为一名常规的对于非特权用户,Windows 会出于多种原因要求提升权限,并且需要定期输入管理员密码。这非常简单,因为默认情况下会选择管理员帐户,并且可以快速输入密码。但是,作为 NCO 组的一部分,用户将成为种类在操作系统眼中,管理员的权限是不可或缺的,因此每个提升权限提示都会提供当前的默认情况下,NCO 用户 - 现在为了输入密码真实的管理员,需要先选择另一个用户。在最初几次需要提升权限后,这很快就会变得烦人。
企业 WG 安装无需启动管理 GUI,从快捷方式启动/停止 WG 隧道以管理员身份运行
- 优点:没有 GUI,没有 WG 后台服务,用户真正停留常规的
- 缺点:没有 GUI
看企业使用文档。
简单来说:
- 下载WG MSI 安装程序(而不是 .exe)
- 在管理命令提示符下,运行
msiexec /i <installer filename>.msi DO_NOT_LAUNCH=1
- 为 WG 创建桌面快捷方式:
- 开始使用命令
wireguard /installtunnelservice <path to conf>.conf
- 停止使用命令'wireguard /uninstalltunnelservice
- 勾选
run as Administrator
两个快捷方式
- 开始使用命令
可以使用 wg.exe 检查隧道状态
答案3
Wireguard 3.1+ 现在支持非管理员运行 wireguard,但您需要做一些小的修改:
https://lore.kernel.org/wireguard/[电子邮件保护]/T/#u
- 安装 wireguard 3.1+
- 将您的用户添加到“网络配置操作员”。以管理员身份打开资源管理器,右键单击“我的电脑”>“管理”>“用户/组”>“网络配置操作员”
- 在注册表中添加一个条目。Windows 键 + R > regedit > 创建键 HKLM\SOFTWARE\WireGuard,然后在 HKLM\SOFTWARE\WireGuard\LimitedOperatorUI 处创建一个 DWORD 并将其设置为 1
- 注销并重新登录。
- 运行 wireguard
答案4
针对此问题的其他所有解决方案都不理想。我见过的方法包括:
仅以管理员身份运行
将用户帐户添加到网络配置操作员
- 优点:Wireguard GUI,运行流畅
- 缺点:您的普通用户将被添加到管理员组,并会出现在 UAC 提示中。这非常烦人,而且可能不安全。
将 WireGuard 隧道作为 Windows 服务运行(如建议的那样这回答)
- 优点:运行完美
- 缺点:没有 GUI,需要升高的控制台。
使用任务计划程序这答案(对我根本不起作用)。
解决方案:
然后使用 .conf 文件在提升的控制台中运行此命令:
wireguard /installtunnelservice C:\path\to\some\myconfname.conf
这将创建一个名为 的服务
WireGuardTunnel$myconfname
,可以使用标准 Windows 服务管理实用程序(例如 services.msc 或 sc)进行控制。—来源
使用“ServiceTray”控制服务:https://www.coretechnologies.com/products/ServiceTray/
(这会在系统托盘上给您一个漂亮的图标,显示 WireGuard 隧道服务的启动状态。绿色 = 已连接,红色 = 未连接,您可以通过右键单击来启动和停止它。见下图)
注意:创建服务控制器时,将快捷方式保存到桌面而不是启动项(似乎不起作用,您可以稍后复制到启动项)
(可选)如果您不想在启动时连接到隧道,请将服务的启动类型更改为手动。
在 Win 10 上的示例. 将鼠标悬停在图标上会显示隧道的名称。