在本教程中,您將學習如何在 Ubuntu 18.04/20.04 服務器和桌面上使用命令行連接到 Wi-Fi 網絡。 wpa_請求者現代家庭無線網絡使用 WPA-PSK(預共享密鑰)而不是為企業網絡設計的 WPA-Enterprise 來保護通信。 WPA-PSK 也稱為 WPA-個人。 wpa_請求者 WPA 請求者組件的實現。無線 LAN 請求者是安裝在最終用戶計算機上的客戶端軟件,必須經過身份驗證才能加入網絡。
第 1 步:檢查您的無線接口和無線網絡的名稱
跑 iwconfig
運行命令以查找您的無線接口的名稱。
iwconfig
wlan0
它是不使用 systemd 的 Linux 系統上無線網絡接口的通用名稱。 Ubuntu 使用 Systemd,因此無線網絡接口的名稱為: wlp4s0
您還可以看到它當前未與任何接入點關聯。
如果您沒有看到您的無線接口,您可能需要使用以下命令將其調出:
sudo ifconfig wlp4s0 up
接下來,通過使用以下命令掃描附近的網絡來查找無線網絡名稱。交換 wlp4s0
使用您自己的無線接口名稱。 ESSID 是網絡名稱標識符。
sudo iwlist wlp4s0 scan | grep ESSID
第 2 步:使用 WPA_Supplicant 連接到 Wi-Fi 網絡
現在安裝 wpa_supplicant
來自默認軟件存儲庫的 Ubuntu 18.04/20.04。
sudo apt install wpasupplicant
需要創建 wpa_supplicant.conf
利用 wpa_passphrase
公共事業。 wpa_supplicant.conf
描述用戶連接到計算機的所有網絡的配置文件。通過運行以下命令創建此文件: 將 ESSID 和 Wi-Fi 密碼替換為您自己的密碼。
wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf
在上面的屏幕截圖中,ESSID 用雙引號括起來,因為它包含空格。
輸出 wpa_passphrase
命令通過管道傳輸 tee
, 然後寫 /etc/wpa_supplicant.conf
文檔。使用以下命令將無線網卡連接到無線接入點:
sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp4s0
以下輸出顯示無線網卡已成功連接到接入點。
Successfully initialized wpa_supplicant wlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz) wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz) wlp4s0: Associated with c5:4a:21:53:ac:eb wlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP] wlp4s0: CTRL-EVENT-CONNECTED - Connection to c5:4a:21:53:ac:eb completed [id=0 id_str=]
請注意,如果您使用的是 Ubuntu 桌面,則需要使用以下命令停止網絡管理器。否則,您在使用時會遇到連接問題。 wpa_請求者.
sudo systemctl stop NetworkManager
此外,通過運行以下命令禁用 NetworkManager 在啟動時的自動啟動:
sudo systemctl disable NetworkManager-wait-online NetworkManager-dispatcher NetworkManager
默認情況下 wpa_supplicant 在前台運行。連接後,打開另一個終端窗口並運行:
iwconfig
您可以看到無線接口與接入點相關聯。
可以推 CTRL+C
當前中斷 wpa_請求者 通過過程和添加 -B
橫幅。
sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0
您已通過身份驗證並連接到無線網絡,但您還沒有 IP 地址。 要從 DHCP 服務器獲取私有 IP 地址,請使用以下命令:
sudo dhclient wlp4s0
您的無線接口現在有一個私有 IP 地址,應該如下所示:
ip addr show wlp4s0
現在您可以訪問互聯網了。要釋放您的私有 IP 地址,請執行以下操作:
sudo dhclient wlp4s0 -r
連接到隱藏的無線網絡
如果您的無線路由器不廣播 ESSID, /etc/wpa_supplicant.conf
文檔。
scan_ssid=1
如下:
network={ ssid="LinuxBabe.Com Network" #psk="12345qwert" psk=68add4c5fee7dc3d0dac810f89b805d6d147c01e281f07f475a3e0195 scan_ssid=1 }
第 3 步:啟動時自動連接
要在啟動時自動連接到無線網絡,您需要編輯 wpa_supplicant.service
文檔。我們建議您從 /lib/systemd/system/
目錄 /etc/systemd/system/
打開目錄並編輯文件的內容。新版本的 wpa_supplicant
覆蓋您的更改。
sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service
使用命令行文本編輯器(例如 Nano)編輯文件。
sudo nano /etc/systemd/system/wpa_supplicant.service
找到這一行:
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
請改為以下。這裡的配置文件和無線接口名稱是 ExecStart
命令。
ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant.conf -i wlp4s0
如果檢測到故障,始終建議重新啟動 wpa_supplicant。在右下角添加以下內容 ExecStart
金屬絲。
Restart=always
如果您在此文件中找到以下行,請將其註釋掉(在行首添加 # 字符)。
Alias=dbus-fi.w1.wpa_supplicant1.service
保存並關閉文件。 (要將文件保存在 Nano 文本編輯器中, Ctrl+O
按 Enter
確認。按退出 Ctrl+X
.) 然後重新加載 systemd。
sudo systemctl daemon-reload
效力 wpa_請求者 該服務將在啟動時啟動。
sudo systemctl enable wpa_supplicant.service
我們還需要開始 dhclient
在引導時從 DHCP 服務器獲取私有 IP 地址。這可以通過創建一個 systemd 服務單元來實現。 dhclient
.
sudo nano /etc/systemd/system/dhclient.service
將以下文本放入文件中。
[Unit] Description= DHCP Client Before=network.target After=wpa_supplicant.service [Service] Type=forking ExecStart=/sbin/dhclient wlp4s0 -v ExecStop=/sbin/dhclient wlp4s0 -r Restart=always [Install] WantedBy=multi-user.target
保存並關閉文件。然後啟用此服務。
sudo systemctl enable dhclient.service
如何獲取靜態 IP 地址
如果要獲取靜態 IP 地址,應禁用 dhclient.service
.
sudo systemctl disable dhclient.service
我需要在 Ubuntu 18.04/20.04 上使用 netplan 配置靜態 IP 地址。創建以下配置文件 /etc/netplan/
.
sudo nano /etc/netplan/10-wifi.yaml
將以下行添加到此文件中:交換 192.168.0.102
使用您的首選 IP 地址。注意縮進。任何額外的空間都會使配置無效。
network: ethernets: wlp4s0: dhcp4: no addresses: [192.168.0.102/24] gateway4: 192.168.0.1 version: 2
保存並關閉文件。然後應用配置。
sudo netplan apply
你也可以開啟 --debug
如果事情沒有按預期工作的選項。
sudo netplan --debug apply
如果有其他 .yaml
下面的文件 /etc/netplan/
目錄,然後 netplan
來自不同文件的配置會自動合併。 netplan
利用 systemd-networkd
作為後端網絡渲染器。推薦配置 wpa_supplicant.service
向前跑 systemd-networkd.service
,系統首先關聯一個Wi-Fi接入點,然後獲取一個私有IP地址。
sudo nano /etc/systemd/system/wpa_supplicant.service
找到這一行:
Before=network.target
將其更改為:
Before=network.target systemd-networkd.service
保存並關閉文件。
獲取靜態 IP 地址的另一種方法是登錄路由器的管理界面並為無線網卡的 MAC 地址分配一個靜態 IP(如果您的路由器支持)。
在 Ubuntu 中使用主機名訪問服務
事實上,您不需要為您的 Ubuntu 機器獲取靜態 IP 地址。 Ubuntu 可以使用 mDNS(多播 DNS)向本地網絡公佈其主機名。然後,客戶端可以使用此主機名訪問 Ubuntu 機器上的服務。 此主機名將始終解析為您的 Ubuntu 機器的 IP 地址,即使 IP 地址發生更改。
要使用 mDNS,您需要安裝 avahi-daemon,它是 mDNS/DNS-SD 的開源實現。
sudo apt install avahi-daemon
啟動服務。
sudo systemctl start avahi-daemon
啟動時啟用自動啟動。
sudo systemctl enable avahi-daemon
Avahi-daemon 偵聽 UDP 5353,因此您需要在防火牆中打開此端口。 如果您使用的是 UFW,請運行以下命令:
sudo ufw allow 5353/udp
接下來,您需要為您的 Ubuntu 機器設置一個唯一的主機名 hostnamectl
命令。 將 ubuntubox 替換為您的首選主機名。它不應該被本地網絡中的其他設備使用。
sudo hostnamectl set-hostname ubuntubox
重新啟動 avahi 守護進程。
sudo systemctl restart avahi-daemon
檢查狀態
systemctl status avahi-daemon
您可以檢查以 . 開頭的 mDNS 主機名。 .local
場地。
客戶端計算機還必須安裝 mDNS/DNS-SD 軟件。
- Linux 用戶應該安裝
avahi-daemon
. - Windows 用戶必須安裝 Bonjour 打印服務或安裝 iTunes 才能啟用 Bonjour 服務。
- 在 macOS 上,Bonjour 已預先安裝。
現在你可以使用 ubuntubox.local
無需檢查和輸入 IP 地址。
在樹莓派上解鎖 Wi-Fi
Raspberry Pi 的 Ubuntu ARM 操作系統默認阻止無線接口。您需要通過以下方式解除阻止:
sudo rfkill unblock wifi
要在啟動時解鎖它,請創建一個 systemd 服務單元。
sudo nano /etc/systemd/system/unblock-wifi.service
添加以下行:
[Unit] Description=RFKill Unblock WiFi Devices Requires=wpa_supplicant.service After=wpa_supplicant.service [Service] Type=oneshot ExecStart=/usr/sbin/rfkill unblock wifi ExecStop= RemainAfterExit=yes [Install] WantedBy=multi-user.target
保存並關閉文件。啟動時啟用自動啟動。
sudo systemctl enable unblock-wifi
我找到了 unblock-wifi.service
必須在 wpa_supplicant.service
否則無法解鎖wifi。請注意,如果您安裝了桌面環境,則正在運行的網絡管理器可能會干擾您的連接。應該被禁用。例如,在 Raspberry Pi 上使用輕量級 LXQT 桌面環境(sudo apt install lubuntu-desktop
) connman.service 和 NetworkManager.service 應該被禁用。
sudo systemctl disable connman.service NetworkManager.service
多個 Wi-Fi 網絡
這個 /etc/wpa_supplicant.conf
一個配置文件可以包含多個 Wi-Fi 網絡。 wpa_supplicant 根據配置文件中網絡塊的順序、網絡安全級別和信號強度自動選擇最佳網絡。
要添加第二個 Wi-Fi 網絡,請執行以下操作:
wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee -a /etc/wpa_supplicant.conf
請注意,您應該使用 -a
選項 tee
運行該命令會將新的 Wifi 網絡添加到文件中,而不是刪除原始網絡。
無線網絡安全
不使用 WPA2TKIP 還 WPA2 TKIP + AES 作為 Wi-Fi 路由器的加密方法。 TKIP 不再被認為是安全的。你可以使用它 WPA2-AES 作為一種加密方法。
包起來
我希望本教程可以幫助您使用 WPA 請求者從命令行將 Ubuntu 18.04/20.04 連接到您的 Wi-Fi 網絡。與往常一樣,如果您發現本文對您有幫助,請註冊我們的免費時事通訊以獲取提示和技巧。