iwd命令浅析


目录:

介绍

iNet Wireless Daemon(iwd) 项目旨在为基于 Linux 的设备提供全面的Wi-Fi连接解决方案,由Intel团队进行维护开发。该项目的核心目标是通过不依赖于任何外部库,并最大限度地利用Linux内核提供的功能来优化资源利用率:存储、运行时内存和链路时间成本。是一个仅依赖于Linux内核和运行时C库的自包含环境(self-contained environment)。 项目架构 iwd的基本架构如下图所示: iwd基本架构

iwd需要使用ell(Embedded Learning Library)这个库来进行编译守护进程和控制实用程序的开发版本。 iwd将Linux内核的crypto子系统用于所有加密操作,不使用_OpenSSL_或任何其他用户空间加密库。

安装

直接使用各个发行版自带的包管理器下载即可,这里以arch系的pacman为例:

    pacman -S iwd

安装完软件包之后,直接使用systemctl enable iwd.service命令启动iwd服务。

基本使用方法

启动iwctl 键入以下命令进入交互式命令行:

    $ iwctl
    [iwd]# 

注意:这里的[iwd]#是交互式命令行的提示符。

连接到网络

首先,如果你不知道无线设备名称,使用下面的命令列出所有 Wi-Fi 设备:

    [iwd]# device list

然后,要扫描网络:

    [iwd]# station device scan

然后,您可以列出所有可用的网络:

    [iwd]# station device get-networks

最后,要连接到网络:

    [iwd]# station device connect SSID

如果你想要手动断开网络链接,使用以下命令:

    [iwd]# station device disconnect

要列出以前已连接到的网络:

    [iwd]# known-networks list

要忘记已知网络:

    [iwd]# known-networks SSID forget

要显示 WiFi 设备的详细信息(如 MAC 地址):

    [iwd]# device device show

要显示连接状态,包括 Wi-Fi 设备的连接网络:

    [iwd]# station device show

如果你想进行其他操作,可以在交互式命令行中输入help获取帮助信息。

进阶使用

使用内置的网络配置

iwd内置DHCP客户端以及静态配置IP地址的功能,所以你可以不用使用独立的dhcpd软件包来管理网络。 如果使用iwd的网络配置功能,需要编辑/etc/iwd/main.conf并添加以下部分(如果不存在就手动创建):

    [General]
    EnableNetworkConfiguration=true

MAC地址随机化

01. 基本方法

IWD在版本初期已经支持将MAC地址随机化了,不过刚开始在IWD的整个生命周期内仅对地址随机化了一次。在1.6版本中,添加了基于每个网络的随机地址的功能。这个功能可以在IWD的主配置文件(默认为/etc/iwd/main.conf)中启用此功能:

    # main.conf
    [General]
    AddressRandomization=network

> p.s.如果设置_AddressRandomization=once_,MAC地址只在iwd启动或硬件启动时第一次被检测到时随机化一次;如果设置AddressRandomization=disabled,显而易见,就是不隐藏MAC地址,使用真实地MAC地址。

其实这个时候的MAC地址并不是真正意义上的随机,而是伪随机,因为这个MAC地址是使用SHA256摘要从永久适配器地址和所连接的SSID生成的--这也就意味着,如果使用同一个网络所随机化生成的MAC地址是一样的。通常来说,对于普通用户来说已经足够了。

02. 高级方法

如果你想使用IWD来完全随机化你的MAC地址,那么可以使用AlwaysRandomizeAddress选项来生成。

    AlwaysRandomizeAddress=true

下面列举一些常用网络配置选项: 常用网络配置选项

03. 设定随机化范围

iwd配置中还有一个AddressRandomizationRange选项,用来控制地址的哪一部分是随机化的,那一部分是真实的。

当你把“AddressRandomizationRange”设置为“nic”时,仅NIC特定的字节(最后3个字节)是随机的。有一点要注意,随机范围限制为00:00:01至00:00:FE。物理网卡的mac地址用于前3个字节。

当使用“AddressRandomizationRange”设置为“full”时,MAC地址的6个字节都是随机的。

END