在 Gentoo 上,如何在不运行 NetworkManager 守护进程的情况下从命令行连接到 WiFi?

在 Gentoo 上,如何在不运行 NetworkManager 守护进程的情况下从命令行连接到 WiFi?

我正在使用 runit init 系统运行 Gentoo 系统。我似乎无法启动 NetworkManager,因为当我使用从 Void Linux 复制的运行文件为其设置服务并启用它(通过运行ln -sf /etc/sv/networkmanager /etc/service)时,它似乎没有运行(是的,dbus 服务是跑步)。我创建了一个包来提供此 NetworkManager 服务,它是这里,如果您对这个问题感兴趣。我的意思似乎并不是运行nmtui返回:

NetworkManager is not running.

因此,作为临时解决方法,我想知道是否有任何方法可以在不需要运行 NetworkManager 守护进程的情况下连接到 WiFi。同样,wpa_supplicant 似乎也不起作用。当我跑的时候:

wpa_supplicant -B -i interface -c <(wpa_passphrase SSID passwd)
dhclient interface

当然,SSID 替换为我的 SSID,passwd 替换为我的接口密码,并且仍然ping www.google.com返回经典:

ping: unknown host www.google.com

最后一个命令 ( dhclient interface) 大约需要一分半钟才能完成,而该wpa_supplicant命令立即完成。

我已经设置了 wpa_supplicant 守护进程来运行:

sudo ln -sf /etc/sv/wpa_supplicant /etc/service/

我的 wpa_supplicant 运行文件也是从 Void 获得的。我可以确认 wpa_supplicant 正在后台运行,ps ax | grep wpa返回结果:

 2651 ?        Ss     0:00 runsv wpa_supplicant
 3192 ?        Ss     0:00 wpa_supplicant -B -i wlo1 -c /proc/self/fd/11
18843 ?        Ss     0:00 wpa_supplicant -B -i wlo1 -c /proc/self/fd/11
22662 ?        Ss     0:00 wpa_supplicant -B -i wlo1 -c /proc/self/fd/11

当然,wlo1 是我的 WiFi 接口。

答案1

您可以通过 来连接 linux 系统上的 Wifi wpa_supplicant,您不需要网络管理器,这nmtui是网络管理器的文本用户界面。

通过命令检查是否有wpa_supplicant正在运行ps,确保killall wpa_supplicant在使用该wpa_supplicant命令之前杀死进程。

要临时连接而不创建配置文件:

killall wpa_supplicant
wpa_supplicant -B -i <interface> -c <(wpa_passphrase SSID password)
dhcpcd

使用配置文件进行连接:

创建一个/etc/wpa_supplicant/wpa_supplicant.conf包含以下内容的文件:

/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/run/wpa_supplicant
update_config=1

要配置某些接入点,请使用:

wpa_passphrase SSID password >> /etc/wpa_supplicant/wpa_supplicant.conf

连接:

killall wpa_supplicant
wpa_supplicant -B -i <interface> -c /etc/wpa_supplicant/wpa_supplicant.conf
dhcpcd

您还可以使用该wpa_cli工具通过 cli 进行管理和连接。

Gentoo 维基:wpa_请求者

相关内容