返回更新列表
新发布Aug 21, 2026

wlctl v0.1.10

🛜 用于在 Linux 上通过 Network Manager 管理 WiFi/以太网/VPN 的 TUI

分享

wlctl

WiFi TUI 工具,基于 NetworkManager。

CI Crates.io 下载量 许可证

演示

为什么

impala 是一款优秀的 WiFi TUI 工具,但它只与 iwd 通信。如果你的发行版已经运行着 NetworkManager(大部分发行版都是如此——GNOME、KDE、Ubuntu、Fedora、Pop 等),那么要想使用 impala,就必须把现有网络栈整个换掉。wlctl 保留了 impala 的用户体验,并将其指向 NetworkManager,因此它可以与你桌面环境已有的网络管理协同工作,无需任何改动。

特性

  • 工作站(Station)和接入点(Access Point)模式
  • WPA 企业版(802.1X)
  • 多适配器——选择使用哪个适配器,可随时切换
  • VPN 连接——像 nmtui 一样开关连接、管理自动连接、删除已保存的 VPN / WireGuard 配置文件;活动隧道会在右上角显示一个徽章
  • wlctl doctor —— 逐一检查 rfkill、驱动程序、关联、IP、DHCP、网关、DNS、互联网连接
  • 分享二维码、隐藏网络、速度测试
  • Vim 按键,所有快捷键均可自定义

安装

# crates.io
cargo install wlctl

# Arch(AUR)
yay -S wlctl-bin

# Nix(无需安装,直接运行)
nix run github:aashish-thapa/wlctl

# 从源码安装
git clone https://github.com/aashish-thapa/wlctl && cd wlctl
cargo build --release

在 NixOS 上,将 flake 作为输入添加到配置中,然后使用 wlctl.packages.${system}.default,或者通过 nix shell github:aashish-thapa/wlctl 将其放入一个 shell 中。

需要 NetworkManager 正在运行。Nerd Fonts 可选,用于显示图标。

使用方法

运行 wlctl 启动 TUI。当出现问题,想确定是哪一层出了问题时,运行 wlctl doctor

全局

操作按键
切换面板Tab / Shift+Tab
移动j k / 方向键
切换适配器模式(工作站 ↔ 接入点)Ctrl+R
VPN 连接v
退出q / Ctrl+C
关闭弹出窗口Esc

已知网络

操作按键
连接 / 断开SpaceEnter
切换自动连接t
忘记网络d
设为互联网路径u
显示全部a
分享二维码p
速度测试(需要 speedtest-cliShift+S

当 WiFi 和以太网都处于连接状态时,NetworkManager 实际用于路由互联网的链接会以绿色高亮显示,并且面板底部会明确说明(󰖟 互联网: WiFi · <ssid>)。在以太网行或已连接的 WiFi 上按下 u 可以切换默认路由(另一个链接继续保持连接状态)。

设备面板底部会显示当前活动适配器的 LAN IP(例如 󰩟 wlan0 · 192.168.1.20),这样你就可以直接 SSH 连接,而无需运行 ip addr

新网络

操作按键
连接 / 断开SpaceEnter
连接隐藏网络h
按名称过滤/
显示全部a

按下 / 可以在扫描列表中按 SSID 实时过滤;按 Enter 保留过滤条件,按 Esc 清除。

VPN 连接(按 v 打开)

操作按键
开关SpaceEnter
切换自动连接a
删除配置文件(确认 y/nd
导入 WireGuard 配置i
关闭Esc

选中的隧道在连接时,其分配的 IP 和运行时间会显示在列表下方。

导入 WireGuard 配置:按下 i,然后粘贴整个配置(大多数提供商——Proton、Mullvad——会直接提供文本)或输入一个 .conf 文件的路径,然后按 Enter。wlctl 会解析该配置并创建一个 NetworkManager 配置文件——无需 nmcli。粘贴的配置按照服务器端点命名;文件导入则按照文件名命名。路径中的 ~ 会被展开。配置文件添加后不会自动连接;按 Enter 开启连接。这里不支持 OpenVPN .ovpn 文件——请使用 nmcli connection import type openvpn file <路径> 导入(需要 NetworkManager-openvpn 插件)。

设备面板

操作按键
适配器信息i
开关电源o
诊断?

工作站模式

操作按键
扫描s

接入点模式

操作按键
启动接入点n
停止接入点x

配置

~/.config/wlctl/config.toml。所有按键均可重新绑定。

switch = "r"
mode = "station"
esc_quit = false
vpn = "v"

[device]
infos = "i"
toggle_power = "o"
doctor = "?"

[station]
toggle_scanning = "s"

[station.known_network]
toggle_autoconnect = "t"
remove = "d"
show_all = "a"
share = "p"
speed_test = "S"
prefer = "u"

[station.new_network]
show_all = "a"
connect_hidden = "h"
filter = "/"

[access_point]
start = "n"
stop = "x"

与 impala 对比

特性impalawlctl
后端iwdNetworkManager
与默认桌面网络栈共存
多适配器选择器
VPN 连接开关
doctor 子命令

致谢

派生自 pythops/impala。UI 和架构归原作者所有。

许可证

GPLv3

分类