archlinux開機自動連接網絡
(https://bbs.archlinux.org/viewtopic.php?id=178625)
上一篇文章講到如何用命令行連接wifi,大家可以去看看。
本文參考 https://bbs.archlinux.org/viewtopic.php?id=178625
文章目錄
TL,DR
wpa_supplicant
# config wpa_supplicant
#/etc/wpa_supplicant/wpa_supplicant-wlp5s0.conf
# enable wpa_supplicant
systemctl enable wpa_supplicant@wlp5s0
config systemd-network
# config systemd-network
# /etc/systemd/network/00-wireless-dhcp.network
[Match]
Name=wlp5s0
[Network]
DHCP=yes
# enable systemd-networkd.service
systemctl enable systemd-networkd.service
需要工具
wpa_supplicant
dhcpcd
配置文件
-
/etc/wpa_supplicant/wpa_supplicant-網卡名.conf
-
/etc/systemd/network/00-wireless-dhcp.network
步驟
1. wpa_supplicant
1.1 查看網卡名字
ip link
# 1: lo
# 2: enp4s0
# 3: wlp5s0
- lo 是loop設備
- enp4s0 是有線設備
- wlp5s0 是無線設備
注意我的網卡名是 wlp5s0
,下文中的wlp5s0
都需替換成你的
1.2 生成 wpa_supplicant.conf
文件
將生成的wpa_supplicant.conf
放到/etc/wpa_supplicant/
文件夾下,並重命名,格式爲:
wpa_supplicant-網卡名.conf
例如我的就是:
wpa_supplicant-wlp5s0.conf
通過修改原始配置文件
man wpa_supplicant.conf
知道原始配置文件在
/usr/share/doc/wpa_supplicant/wpa_supplicant.conf
通過wpa_passphrase
生成配置文件
# wpa_passphrase MyNetwork SuperSecretPassphrase > /etc/wpa_supplicant/wpa_supplicant-wlp5s0.conf
通過下面的格式
priority
越大優先級越高
country=CN
update_config=1
network={
ssid="SSID"
psk="Passwd"
key_mgmt=WPA-PSK
priority=9
id_str="identify which wifi is"
}
network={
ssid="SSID"
psk="Passwd"
key_mgmt=WPA-PSK
priority=8
id_str="identify which wifi is"
}
1.3 用systemctl
啓動wpa_supplicant
服務
systemctl enable wpa_supplicant@wlp5s0
注意arch bbs 原回答多寫了.conf
,後面也有跟帖指出了這個問題。
2. systemd-networkd
2.1 配置systemd-network的配置文件
創建/etc/systemd/network/00-wireless-dhcp.network
,archbbs中說這個名字隨意。
[Match]
Name=wlp5s0
[Network]
DHCP=yes
2.2 用systemctl
設置啓動服務systemd-networkd.service
systemctl enable systemd-networkd.service
回顧
在1.3的systemctl enable wpa_supplicant@wlp5s0
中,我們看到:
Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /usr/lib/systemd/system/[email protected].
查看/usr/lib/systemd/system/[email protected]
,其中有一行:
ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I
這裏的%I
就是systemctl enable wpa_supplicant@wlp5s0
中的wlp5s0
,它通過%I
來傳遞設備名,所以我們也就知道之前爲什麼要把配置文件這樣命名了
/etc/wpa_supplicant/wpa_supplicant-網卡名.conf