Wifi

通過 iwd(linux 的無線守護程序)從 linux 系統上的命令行連接到 wifi

  • January 23, 2021

iwd是英特爾和 wpasupplicant 繼任者發布的用於 linux 的新興無線守護程序。iwd 的開發仍在進行中,但它被打包在一些 linux 發行版 Gentoo、Arch-linux、Ubuntu(Cosmic)和DebianBuster和 Sid)下…

網路和連接的配置可以通過互動模式使用iwctl,幫助命令將顯示可用命令的列表(無手冊頁)。

不使用互動模式:

  1. 如何手動配置 wifi 憑據?
  2. 如何通過 wifi 連接到配置的 wifi iwctl
  3. 如何在啟動時自動啟用 wifi 連接?
  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" 

e、g:

iwctl station wlp8s0 connect "My SSID"
dhclient

dhclient可以替換為 iproute2 命令為 wlp8s0 分配 IP 地址。

  1. 要在開機時自動啟用 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 wiki : iwd

Debian wiki: NetworkManager/iwd

lwn: iwd: 簡化 WiFi 管理

引用自:https://unix.stackexchange.com/questions/477488