通过 iwd(Linux 无线守护进程)从 Linux 系统上的命令行连接到 wifi

通过 iwd(Linux 无线守护进程)从 Linux 系统上的命令行连接到 wifi

iwd是 Intel 发布的 Linux 下的无线守护进程,也是 wpasupplicant 的后继者。 iwd的发展仍处于进步,但它被打包在一些linux发行版Gentoo,Arch-linux,Ubuntu(Cosmic)和德班巴斯特和席德)...

网络和连接的配置可以通过交互模式使用iwctl,帮助命令将显示可用命令的列表(无联机帮助页)。

不使用交互模式:

  1. 如何手动配置 wifi 凭据?
  2. 如何通过 来连接到已配置的wifi iwctl
  3. 如何在开机时自动启用 wifi 连接?

答案1

1) 在非交互模式下,您可以扫描并列出可用的接入点:

iwctl station wlp8s0 scan
iwctl station wlp8s0 get-networks

wifi凭证存储在 下/var/lib/iwd,应使用 SSID 的确切名称,格式:

SSID.psk 

内容:

[Security]
PreSharedKey=encripted-password
Passphrase=the-plain-txt-password

最小配置文件应包含加密的 wifi 密码 (PreSharedKey)

要生成加密的 psk ,您可以使用 wpa_passhrase 工具:

wpa_passhrase "My-SSID" passphrase

有一个使用“我的 SSID”和的示例mysecretpassword

$ cat My\ SSID.psk
[Security]
PreSharedKey=8e1e64a6ecaf2b5e0aa29816547af300d7f3b0473bbfa56ddb5514ad4683804c

2) 从终端连接:

iwctl station <INTERFACE> connect "SSID" 

例如:

iwctl station wlp8s0 connect "My SSID"
dhclient

dhclient可以替换 iproute2 命令来为 wlp8s0 分配 IP 地址。

3)要在启动时自动启用wifi连接,有一种方法使用systemd服务:

连接的最小脚本:

$ cat /usr/local/enable-wifi.sh

#!/bin/bash
iwctl station wlan0 connect "My SSID" 
dhclient

创建系统服务。

$ cat /etc/systemd/system/enable-wifi.service

[Unit]
Before=network.target
Wants=network.target

[Service]
ExecStart=/usr/local/enable-wifi.sh

[Install]
WantedBy=default.target

然后 :

# chmod 744 /usr/local/enable-wifi.sh
# chmod 664 /etc/systemd/system/enable-wifi.service
# systemctl daemon-reload
# systemctl enable enable-wifi.service

文档:

arch-linux 维基:国际妇女节

Debian 维基:网络管理器/iwd

卢恩:iwd:简化 WiFi 管理

相关内容