如何通过 wpa_supplicant、dhcpcd 或 nmcli 连接到 Wi-Fi?

如何通过 wpa_supplicant、dhcpcd 或 nmcli 连接到 Wi-Fi?

我使用 Funtoo Linux,用 git 克隆 Gentoo,而不是 rsync,并修复了一些错误(正如我所读到的)。

我已经安装了 LXDE 桌面、NetworkManager,但当我输入 Wi-Fi 密码时,小程序无法连接。所以我需要在命令行中连接才能继续安装和配置。

这是指令:如何在不使用 GUI 的情况下连接 wi-fi 网络?

它不起作用,给出这个:

# ifconfig wlan0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
...
# wpa_passphrase WIFI222 20172017 > /etc/wpa_supplicant.conf
# cat /etc/wpa_supplicant.conf
network={
    ssid="WIFI222"
    #psk="20172017"
    psk=7.it975ot8o686f8fo86ff...
}

# wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && dhclient wlan0
Successfully initialized wpa_supplicant
ioctl[SIOCSIWENCODEEXT]: Invalid argument 
ioctl[SIOCSIWENCODEEXT]: Invalid argument 

# wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf && dhclient wlan0
Successfully initialized wpa_supplicant

# ping -c 3 www.stackexchange.com
ping: unknown host www.stackexchange.com

我在 rc-update 中有 dhcpcd,wlan0 已启动,接口未阻塞。但这一转变也并不成功:

# rc-update show
       NetworkManager |      default                 
               binfmt | boot                         
             bootmisc | boot                         
                 dbus |      default                 
                devfs |                       sysinit
               dhcpcd |      default                 
                dmesg |                       sysinit
                 fsck | boot                         
             hostname | boot                         
              hwclock | boot                         
              keymaps | boot                         
            killprocs |              shutdown        
    kmod-static-nodes |                       sysinit
                local |      default                 
           localmount | boot                         
             loopback | boot                         
              modules | boot                         
             mount-ro |              shutdown        
                 mtab | boot                         
             netmount |      default                 
               procfs | boot                         
                 root | boot                         
            savecache |              shutdown        
                 sshd |      default                 
                 swap | boot                         
               sysctl | boot                         
                sysfs |                       sysinit
         termencoding | boot                         
                 udev |                       sysinit
              urandom | boot                         
                  xdm |      default   

localhost ~ # rfkill list all
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: asus-wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
2: asus-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no
3: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no


localhost ~ # cat wpa
wpa_supplicant -B -i wlan0 -c<(wpa_passphrase 'WIFI222' '20172017') && dhcpcd wlan0

localhost ~ # ./wpa
Successfully initialized wpa_supplicant
sending commands to master dhcpcd process

localhost ~ # rc
 * WARNING: netmount will start when NetworkManager has started

localhost ~ # ./wpa
Successfully initialized wpa_supplicant
sending commands to master dhcpcd process
localhost ~ # ping -c 3 funtoo.org
ping: unknown host funtoo.org

Nmcli 没有帮助:

# nmcli device wifi connect WIFI222 password 20172017
Error: Timeout 90 sec expired.

我的另一台笔记本 funtoo+ xfce 使用 nm-applet 连接到该网络,我可以看到网络具有安全性 WPA/WPA2。我只想在 LXDE 上连接并安装 nm-applet。

请问,什么不起作用?

答案1

我不太清楚什么您的设置出了问题,但至少按步骤进行测试。试图同时完成所有事情无助于找出问题所在。

所以。

1)测试Wifi是否正常,可以看到WIFI222

# iw wlan0 scan

2) 添加控制接口/etc/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

network={
    ssid="WIFI222"
    psk="your_wlan_key"
}

根据你的系统调整路径和组,我不知道Funtoo用什么。

3)在前台的额外终端窗口中启动wpa_supplicant,这样你就可以看到消息,并使用nl80211驱动程序(几乎所有现代适配器都使用这个,你没有说你有什么适配器......)。

wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dnl80211,wext

4)使用wpa_cli查看发生了什么:

# wpa_cli list_networks

应该显示配置文件中的网络,

# wpa_cli status

显示当前状态,并且

# wpa_cli help | less

显示其他命令。

如果您看到了wpa_state=COMPLETED,那么您可以运行dhclient并尝试ping

相关内容