如何从命令行连接到wifi?

use*_*383 31 wifi debian kali-linux

我正在使用最新版本的基于 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
Run Code Online (Sandbox Code Playgroud)

另一方面,当我打电话时:

   ip link set wlan0 up
   ip link show wlan0
Run Code Online (Sandbox Code Playgroud)

我得到:

  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
Run Code Online (Sandbox Code Playgroud)

并在使用有效的网络详细信息运行 wpa 请求者之后

wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)

iw wlan0 link 仍然返回 Not connected.

我该如何解决这个问题,接下来我该怎么做?

GAD*_*D3R 39

我假设wpa_supplicantiw已安装。

  1. 要通过wpa_supplicant 您连接到wifi,您需要创建一个wpa_supplicant.conf文件

    nano /etc/wpa_supplicant.conf
    
    Run Code Online (Sandbox Code Playgroud)

    有以下几行:

    network={
             ssid="wifi_name"
             psk="wifi_key"
    }
    
    Run Code Online (Sandbox Code Playgroud)

或者您可以使用wpa_passphrase来创建配置文件(复制和粘贴):

wpa_passphrase "Your_SSID" Your_passwd 
Run Code Online (Sandbox Code Playgroud)

您也可以wpa_supplicant.conf直接通过以下方式编写:

wpa_passphrase "Your_SSID" Your_passwd > /etc/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)

要连接,请键入以下命令:

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
Run Code Online (Sandbox Code Playgroud)

注意:选项中的多个逗号分隔驱动程序包装-Dnl80211,wext器使 wpa_supplicant 使用能够初始化接口的第一个驱动程序包装器(请参阅 wpa_supplicant(8))。这在使用使用不同驱动程序的多个或可移动(例如 USB)无线设备时很有用。

您可以在wpa_supplicant没有wpa_supplicant.conf文件的情况下连接:

wpa_supplicant -B -i wlan0 -c <(wpa_passphrase "Your_SSID" Your_passphrase) && dhclient wlan0
Run Code Online (Sandbox Code Playgroud)

您可以访问Arch-linux的官方文档 以获取有关配置文件和参数的更多信息。

  1. 你可以通过 nmcli

    nmcli d wifi connect Your_SSID password Your_Psswd_here ifname Your_interface
    
    Run Code Online (Sandbox Code Playgroud)

例子:

nmcli d wifi connect MYSSID password 12345678 ifname wlan0
Run Code Online (Sandbox Code Playgroud)
  1. 您也可以通过wpa_cli以下方式连接:

打开终端并输入 wpa_cli

要扫描,请键入:

scan
scan_results
Run Code Online (Sandbox Code Playgroud)

创建网络:

add_network
Run Code Online (Sandbox Code Playgroud)

这将输出一个数字,即网络ID,例如0 接下来我们需要为网络设置SSID和PSK。

set_network 0 ssid "SSID_here"
set_network 0 psk "Passphrase_here"
Run Code Online (Sandbox Code Playgroud)

无线连接后,它应该会自动获取 IP 地址。如果没有,您可以运行dhclient以通过 DHCP 获取 IP 地址。

dhclient命令可以替换为 2 个ip命令:

ip addr add IP-ADDRESSE/24 dev wlan0
ip route add default via ROUTE
Run Code Online (Sandbox Code Playgroud)
  1. iwctl 命令行工具。

iwd 软件包提供了iwctl命令行工具。默认情况下未安装该软件包。为了避免任何冲突,wpasupplicant.service应该停止/禁用。

有关更多详细信息,请参阅 U&L 上的此答案:通过 iwd(适用于 linux 的无线守护程序)从 linux 系统上的命令行连接到 wifi

进一步阅读:

与 wpa_cli 连接

使用 wpa_passphrase 连接

nmcli 示例

Archlinux: iwd/iwctl

  • 请为debian用户添加准系统arm系统需要添加接口到`/etc/network/intefaces auto wlp1s0 iface wlp1s0 inet dhcp pre-up wpa_supplicant -i wlp1s0 -c /etc/wpa_supplicant.conf -B` 然后重启小盒子和已经有ip了... (2认同)
  • nmtui 安装后不可用。必须上网才能得到一个gui才能上网,这是一个先有鸡还是先有蛋的问题。我在安装过程中设法保存了 /target/etc/network/interfaces;安装后,wifi 线路被移除。 (2认同)