如何從命令列連接到wifi?

如何從命令列連接到wifi?

我正在使用最新版本的基於 Debian 的 Linux Kali。也許這是一個XY問題,因為主要問題是在我登入系統後,我得到一個空白畫面和滑鼠指標。網路上有人建議我更改視窗管理器。

但我無法執行此操作,因為我無法連接到 wifi。

我找到瞭如何執行此操作的教程這裡

我試圖一步一步地做到這一點,但這對我來說不起作用。在作者寫的那個教學中,我需要使用指令ip link set wlan0 ip來開啟 wifi 介面。在他的範例中,輸出如下所示:

root@kali:~# ip link show w
lan0 4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000
  link/ether 00:60:64:37:4a:30 brd ff:ff:ff:ff:ff:ff

root@kali:~# ip link set wlan0 up

root@kali:~# ip link show wlan0
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
    link/ether 00:60:64:37:4a:30 brd ff:ff:ff:ff:ff:ff

另一方面,當我打電話時:

   ip link set wlan0 up
   ip link show wlan0

我得到:

  4: wlan0: <NO_CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000
   link/ether 00:60:64:37:4a:30 brd ff:ff:ff:ff:ff:ff

並在使用有效的網路詳細資訊運行 wpa 請求者之後

wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf

iw wlan0 link仍然返回Not connected.

我該如何解決這個問題以及下一步該怎麼做?

答案1

我假設wpa_supplicantiw已安裝。

  1. 要透過您連接到wifi,wpa_supplicant 您需要建立一個wpa_supplicant.conf文件

    nano /etc/wpa_supplicant.conf
    

    包含以下幾行:

    network={
             ssid="wifi_name"
             psk="wifi_key"
    }
    

或者您可以使用wpa_passphrase建立設定檔(複製並貼上):

wpa_passphrase "Your_SSID" Your_passwd 

也可以wpa_supplicant.conf直接寫:

wpa_passphrase "Your_SSID" Your_passwd > /etc/wpa_supplicant.conf

若要連接,請鍵入以下命令:

sudo ip link set wlan0 down
sudo ip link set wlan0 up
sudo wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant.conf -Dnl80211,wext
sudo dhclient wlan0

筆記:選項中的多個逗號分隔的驅動程式包裝器使-Dnl80211,wextwpa_supplicant 使用第一個能夠初始化介面的驅動程式包裝器(請參閱 wpa_supplicant(8))。當使用使用不同驅動程式的多個或可移動(例如USB)無線裝置時,這非常有用。

您可以在wpa_supplicant沒有wpa_supplicant.conf文件的情況下進行連線:

wpa_supplicant -B -i wlan0 -c <(wpa_passphrase "Your_SSID" Your_passphrase) && dhclient wlan0

您可以訪問官方Arch-linux 的文檔 取得有關設定檔和參數的詳細資訊。

  1. 你可以透過以下方式連接nmcli

    nmcli d wifi connect Your_SSID password Your_Psswd_here ifname Your_interface
    

例子:

nmcli d wifi connect MYSSID password 12345678 ifname wlan0
  1. 您也可以透過以下方式連線wpa_cli

打開終端機並輸入wpa_cli

若要掃描,請輸入:

scan
scan_results

建立網路:

add_network

這將輸出一個數字,即網路ID,例如0 接下來,我們需要設定網路的SSID和PSK。

set_network 0 ssid "SSID_here"
set_network 0 psk "Passphrase_here"

無線連接後,它應該會自動取得 IP 位址。如果沒有,您可以執行dhclient透過 DHCP 取得 IP 位址。

dhclient命令可以替換為 2 個ip命令:

ip addr add IP-ADDRESSE/24 dev wlan0
ip route add default via ROUTE
  1. iwctl命令列工具。

iwd 軟體包提供iwctl命令列工具。預設情況下不安裝該軟體包。為了避免任何衝突,wpasupplicant.service應該停止/停用。

欲了解更多詳細信息,請參閱 U&L 上的這個答案:透過 iwd(Linux 無線守護程式)從 Linux 系統上的命令列連接到 wifi

延伸閱讀:

使用 wpa_cli 連接

使用 wpa_passphrase 連接

nmcli 範例

Archlinux:iwd/iwctl

答案2

若要在 Debian 上安裝 wpa_supplicant,請輸入

sudo apt install wpasupplicant

在終端中。若要建立wpa_supplicant.conf文件,請輸入

echo 'network={ssid="nameOfYourWiFiNetwork" psk="thePassword"}' >> /etc/wpa_supplicant.conf

相關內容