Ubuntu

如何自動應用 wpa_supplicant 配置?

  • February 21, 2015

要在公司網路中進行身份驗證,我必須執行以下命令:

$ sudo wpa_supplicant -i eth0 -D wired -c /etc/wpa_supplicant/mywired.conf -B

由此載入的配置腳本如下所示:

# global configuration
ctrl_interface=/var/run/wpa_supplicant
#ctrl_interface_group=wheel
ap_scan=0

# 802.1x wired configuration    

# eap-ttls
network={
   key_mgmt=IEEE8021X
   eap=TTLS
   identity="me@example.com"
   anonymous_identity="anonymous@example.com"
   password="password"
   ca_cert="/home/user/deutsche-telekom-root-ca-2.pem"
   phase2="auth=PAP"
   eapol_flags=0
   priority=5
}

# eap-peap
network={
   key_mgmt=IEEE8021X
   eap=PEAP
   identity="me@example.com"
   anonymous_identity="anonymous@htw-berlin.de"
   password="password"
   ca_cert="/home/user/deutsche-telekom-root-ca-2.pem"
   phase2="auth=MSCHAPV2"
   eapol_flags=0
   priority=10
}

如果沒有配置,我不會獲得通過 DHCP 分配的 IP 地址。

如何在啟動時自動應用此配置?我正在執行 Ubuntu 14.10。

只需將您的命令放在 /etc/rc.local 中。確保它在單行上。

sudo wpa_supplicant -i eth0 -D wired -c /etc/wpa_supplicant/mywired.conf -B

我假設你的連接是穩定的並且沒有掉線。如果您的連接斷開,請發表評論。我會做一個腳本。現在得睡覺了。

如果您希望 wpa-supplicant 在啟動時使用該配置執行,那麼您應該將命令放在rc.local中。

以root 身份在文本編輯器中打開*/etc/rc.local*並粘貼您的命令:

wpa_supplicant -i eth0 -D wired -c /etc/wpa_supplicant/mywired.conf -B

確保Systemd正在執行rc.local

sudo systemctl enable rc-local

並重新啟動。應該管用。

編輯:

如果做不到這一點,您也可以編寫自己的systemd規則。

首先,將您的 wpa-supplicant 命令保存到合理的位置,例如*/usr/local/bin/opt*並使其可執行。

該文件應如下所示:

#!/bin/sh
wpa_supplicant -i eth0 -D wired -c /etc/wpa_supplicant/mywired.conf -B

假設您已將其命名為wpastart.sh現在在/usr/lib/systemd/system

中創建一個文件,並將其命名為wpa.service。 在文本編輯器中打開空文件並使其看起來像這樣:

[Unit]
Description=WPA Supplicant Startup

[Service]
Type=idle
ExecStart=/usr/local/bin/wpastart.sh

[Install]
WantedBy=multi-user.target

照常啟動服務:

systemctl enable wpastart.service

現在您已經編寫了您的第一個systemd啟動腳本。

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