如何从命令行连接到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

相关内容