iwd
iNet Wireless Daemon (iwd) 项目旨在为基于 Linux 的设备提供全面的 Wi-Fi 连接解决方案。 iwd 提供了一个自包含的环境,仅依赖于 Linux 内核和运行时 C 库。 Alpine Linux 的 v3.10 版本之后开始支持 iwd。
前提条件
安装
使用以下命令安装 iwd 软件包
# apk add iwd
接下来,确定您想要在单机模式下使用 iwd,还是与 NetworkManager 一起使用,或者与 ifupdown-ng 一起使用。 从这三个选项中选择一个,然后继续进行服务配置。
单机模式
为了让 iwd 在连接到 Wi-Fi 网络时自行完成大多数网络配置,需要安装 openresolv 软件包,因此请先安装它
# apk add openresolv
然后编辑配置文件 /etc/iwd/main.conf 并按如下方式设置
内容 /etc/iwd/main.conf
将 iwd 用作 networkmanager 后端
可以将 NetworkManager 配置为使用 iwd 作为 后端,以替代默认的 wpa_supplicant。
将 iwd 与 ifupdown-ng 结合使用
iwd 可以将处理 IP 地址分配(静态或 DHCP)的责任委托给 ifupdown-ng。 要做到这一点,请编辑 /etc/network/interfaces 文件。 例如,如果您在 wlan0 接口上使用 DHCP
内容 /etc/network/interfaces
服务配置
首先启动 iwd 服务以继续配置
# rc-service iwd start
一旦 iwd 服务完全配置并测试完毕,为了让 iwd 服务在每次启动时自动启动(推荐)
# rc-update add iwd default
iwctl 的用法
iwd 软件包提供了客户端程序 iwctl
、守护进程 iwd
和 Wi-Fi 监控工具 iwmon
。
首先启动客户端
$ iwctl
列出所有可用命令
[iwd]# help
连接到网络
列出所有 Wi-Fi 设备
[iwd]# device list
如果您的无线适配器未列出,请参阅 Wifi 故障排除 页面。
如果设备或其对应的适配器已关闭,请将其打开
[iwd]# device device set-property Powered on
[iwd]# adapter adapter set-property Powered on
然后,启动网络扫描(请注意,此命令不会输出任何内容)
[iwd]# station device scan
然后您可以列出所有可用网络
[iwd]# station device get-networks
最后,连接到网络
[iwd]# station device connect SSID
如果需要密码,系统将提示您输入。 或者,您可以将其作为命令行参数提供
$ iwctl –passphrase 密码 station 设备 connect SSID
- iwd 会自动将网络密码存储在 /var/lib/iwd 目录中,并在将来使用它们自动连接。
- 如果您运行无盘 Alpine,请务必提交:
# lbu add /var/lib/iwd && lbu commit -d
- 要连接到 SSID 中带有空格的网络,连接时网络名称应使用双引号引起来。
- iwd 仅支持 8 到 63 个 ASCII 编码字符的 PSK 密码短语。
断开网络连接
断开网络连接
[iwd]# station device disconnect
显示设备和连接信息
显示 Wi-Fi 设备的详细信息,如 MAC 地址
[iwd]# device device show
显示连接状态,包括 Wi-Fi 设备的已连接网络
[iwd]# station device show
管理已知网络
列出您之前连接过的网络
[iwd]# known-networks list
忘记已知网络
[iwd]# known-networks SSID forget
- 信号强度级别
- 安全特性
- 最大速率
- 信道利用率
- 自上次连接以来的时间。
iwgtk

iwgtk 是 iwd 的无线网络 GUI,其支持的功能与 iwctl
类似。 功能包括查看和连接到可用网络、管理已知网络、通过 WPS 或 Wi-Fi Easy Connect 配置新网络,以及显示连接状态和信号强度的指示器(托盘)图标。
安装 iwgtk 软件包
# apk add iwgtk
故障排除
如果 iwctl
命令失败并显示消息 The name net.connman.iwd was not provided by any .service files Failed to retrieve IWD dbus objects, quitting...
。
此错误表示 iwd
守护进程未启动。 启动 iwd 守护进程