如何在 Ubuntu 16.04 上從終端連接 WiFi

WiFi 是當今最流行的互聯網連接方式,無論是在辦公室、家中、餐廳等。本教程旨在幫助那些想從 Ubuntu 16.04 上的終端​​連接 WiFi 的人。 無論您使用的是桌面版還是 Ubuntu 的服務器版,都沒有關係。

唯一的要求是:

  • 工作無線網卡
  • Internet 連接以安裝一些軟件包
  • 交互式 shell 會話

有兩種常用的方法可以從終端連接無線網絡。 這些是:

  1. 使用 iwconfig 命令
  2. 使用 wpasupplicant 方法

方法一:使用 iwconfig 命令

您可以按照以下步驟將 Ubuntu 配置為連接到 WiFi。 如果您不知道 wifi 設備的名稱,請使用:

$ ip link sho | grep w
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000

打開終端並輸入 ifconfig 接口 並按下 Enter.

$ sudo ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 192.168.0.16 netmask 255.255.255.0 broadcast 192.168.0.255
 inet6 fe80::557e:6563:6f86:f8b2 prefixlen 64 scopeid 0x20<link>
 ether e4:a7:a0:ef:27:d9 txqueuelen 1000 (Ethernet)
 RX packets 4025786 bytes 5253861542 (4.8 GiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 2997242 bytes 563513781 (537.4 MiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

默認情況下,此命令只會打開您的無線網卡。 如果您的無線網卡名稱不同,請將 wlan0 替換為正確的名稱。 現在卡已打開,您可以通過指定其 ESSID 名稱來連接到您的 WiFi 網絡:

$ iwconfig wlan0 essid <name> key <password>

代替 <名稱> 接入點的實際名稱,以及無線網絡實際安全密鑰的密碼。 如果您的無線網絡不需要安全密鑰,請不要輸入密鑰密碼。 只需使用:

$ iwconfig wlan0 essid <name>

對於 ASCII 密碼,請使用:

$ iwconfig wlan0 essid <name> key s:<password>

現在確認您已連接。 您也可以使用手動請求 IPv4 地址。

$ dhclient wlan0

然後嘗試檢查您的IP並嘗試ping外面。

$ ip addr
$ ping 8.8.8.8

方法二:使用 wpasupplicant

wpa_supplicant 是一個跨平台的請求者,支持 WEP、WPA 和 WPA2 (IEEE 802.11i / RSN (Robust Secure Network))。 它適用於台式機、筆記本電腦和嵌入式系統。 對於這種方法,您首先需要安裝包含主程序的 wpasupplicant 包 wpa_supplicant, 密碼工具 wpa_passphrase, 和文本前端 wpa_cli

$ sudo apt-get install wpasupplicant

這個包將提供一個 wpa_supplicant 我們將使用該命令來管理我們的無線網絡。 要配置的文件是 /etc/wpa_supplicant.conf。

# cat /etc/wpa_supplicant.conf
network={
 ssid="ssid_name"
 psk="password"
}

您也可以從 cli 生成基本配置:

# wpa_passphrase MYSSID passphrase > /etc/wpa_supplicant.conf

現在重新掃描可用設備:

# iwlist scan

確保您可以看到要連接的無線網絡。 現在啟動 wpa_supplicant:

# wpa_supplicant -B -i interface -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
....

常用的參數有:

-B – 分叉到後台。
-c 文件名 – 配置文件的路徑。
-i 接口 – 界面收聽。
-D 驅動程序 – 可選地指定要使用的驅動程序。 有關支持的驅動程序列表,請參閱 wpa_supplicant -h 的輸出。
nl80211 是當前的標準,但並非所有無線芯片的模塊都支持它。

使用 wpa_cli

此時運行:

# wpa_cli

這將顯示一個交互式提示(>),其中包含選項卡完成和已完成命令的描述。 使用 wpa_cli 時需要注意的一些重要命令包括:

  • 掃描可用的接入點
> scan
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
...
  • 列出可用的接入點
> scan_results
bssid / frequency / signal level / flags / ssid
11:22:33:44:55:66 2462 -33 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] MYSSID1
00:11:22:33:44:55 2412 -73 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] MYSSID2
...

要與 MYSSID 關聯,請添加網絡、設置憑據並啟用它:

> add_network
0
> set_network 0 ssid "MYSSID1"
> set_network 0 psk "passphrase"
> enable_network 0
<2>CTRL-EVENT-CONNECTED - Connection to 11:22:33:44:55:66 completed (reauth) [id=0 id_str=]

對於沒有身份驗證的接入點,請使用:

> set_network 0 key_mgmt NONE

最後,將此網絡保存在配置文件中:

> save_config
OK

要獲得 DHCP 租用,首先釋放您仍然持有的任何租用(以 root 用戶身份):

# dhclient -r

並請求一個新地址

# dhclient interface

您現在應該通過從 cli 連接的接入點建立了有效的互聯網連接。 此方法適用於 Ubuntu 發行版或帶有無線網卡的服務器的最小安裝。 這些方法很容易編寫腳本,只要付出更多努力,您就可以編寫一個在重啟時連接到它的 cron 作業。 感謝您閱讀我們關於如何在 Ubuntu 16.04 上從終端連接 WiFi 的指南。 如果您遇到任何問題,請通過評論部分告訴我們。