在 Windows 10 上以非管理员身份运行 wireguard 时出现问题 - “UI 只能从内置管理员的桌面访问”

在 Windows 10 上以非管理员身份运行 wireguard 时出现问题 - “UI 只能从内置管理员的桌面访问”

以非管理员身份运行时出现以下错误:

WireGuard 正在运行,但 UI 只能从内置管理员的桌面访问

如何启用 win10 的 wireguard 以便普通用户可以使用?

答案1

目前,您所要求的内容在 Windows 上是不可能的。

与其他 VPN 工具和技术不同,Wireguard 客户端会为您配置的每个连接创建一个隧道接口(显示为网络适配器)当你尝试连接时,又称“即时”。当您终止连接时,客户端会完全删除隧道接口。它在 Windows 的官方 VPN 管道之外执行此操作。该设计存在严重的限制,您需要成为机器的管理员,软件才能创建接口。

我在 Windows、Mac 和 Linux 上使用 Wireguard。Windows 是我遇到此问题的唯一平台。此外,我只使用 Wireguard 的官方客户端(撰写本文时为 0.38 版)。我不知道是否还有其他客户端。

答案2

正如之前的解决方案和评论所指出的那样,激活 wireguard(WG)隧道是不可能的——该操作需要某种权限提升。

到目前为止提到的解决方案都存在一些缺点,至少在我的用例中是这样。为了完整起见,我将列出所有提到的解决方案并添加我自己的解决方案。

  1. 正常的 WG 安装,切换到管理员用户以激活 Wireguard,然后切换回来。

    • 优点:管理员用户可以访问 WG GUI 的所有功能
    • 缺点:切换用户需要时间和点击次数
  2. 正常 WG 安装,添加HKLM\Software\WireGuard\LimitedOperatorUI注册表项并将用户添加到Network Configuration Operators

    WG 注册表项文档

    • 优点:WG GUI 可访问
    • 缺点:干扰注册表,GUI 功能严重受限,干扰权限提升提示

    最后一点需要澄清:作为一名常规的对于非特权用户,Windows 会出于多种原因要求提升权限,并且需要定期输入管理员密码。这非常简单,因为默认情况下会选择管理员帐户,并且可以快速输入密码。但是,作为 NCO 组的一部分,用户将成为种类在操作系统眼中,管理员的权限是不可或缺的,因此每个提升权限提示都会提供当前的默认情况下,NCO 用户 - 现在为了输入密码真实的管理员,需要先选择另一个用户。在最初几次需要提升权限后,这很快就会变得烦人。

  3. 企业 WG 安装无需启动管理 GUI,从快捷方式启动/停止 WG 隧道以管理员身份运行

    • 优点:没有 GUI,没有 WG 后台服务,用户真正停留常规的
    • 缺点:没有 GUI

    企业使用文档。

    简单来说:

    1. 下载WG MSI 安装程序(而不是 .exe)
    2. 在管理命令提示符下,运行msiexec /i <installer filename>.msi DO_NOT_LAUNCH=1
    3. 为 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

针对此问题的其他所有解决方案都不理想。我见过的方法包括:

  1. 仅以管理员身份运行

  2. 将用户帐户添加到网络配置操作员

    • 优点:Wireguard GUI,运行流畅
    • 缺点:您的普通用户将被添加到管理员组,并会出现在 UAC 提示中。这非常烦人,而且可能不安全。
  3. 将 WireGuard 隧道作为 Windows 服务运行(如建议的那样回答)

    • 优点:运行完美
    • 缺点:没有 GUI,需要升高的控制台。
  4. 使用任务计划程序答案(对我根本不起作用)。

解决方案:

  1. 安装最新的 MSI:https://download.wireguard.com/windows-client/

  2. 然后使用 .conf 文件在提升的控制台中运行此命令:

    wireguard /installtunnelservice C:\path\to\some\myconfname.conf

这将创建一个名为 的服务WireGuardTunnel$myconfname,可以使用标准 Windows 服务管理实用程序(例如 services.msc 或 sc)进行控制。—来源

  1. 使用“ServiceTray”控制服务:https://www.coretechnologies.com/products/ServiceTray/

    (这会在系统托盘上给您一个漂亮的图标,显示 WireGuard 隧道服务的启动状态。绿色 = 已连接,红色 = 未连接,您可以通过右键单击来启动和停止它。见下图)

    注意:创建服务控制器时,将快捷方式保存到桌面而不是启动项(似乎不起作用,您可以稍后复制到启动项)

  2. (可选)如果您不想在启动时连接到隧道,请将服务的启动类型更改为手动。

在 Win 10 上的示例. 将鼠标悬停在图标上会显示隧道的名称。

相关内容