在 NixOS 下使用 wpa_supplicant 的 Wlan?

mus*_*tze 1 networking wireless-networking wpa-supplicant

如何在 NixOS 上使用 wpa_supplicant 设置网络 (wlan)?每当我尝试连接到我的本地 wlan 网络时,我都会得到CONN_FAILED一个原因,这有点缺乏信息。它还告诉我我pks的无效 ( WRONG_KEY) 但我确认它是正确的,并且我之前在我的 Archlinux 机器上的网络上使用了具有相同密钥(git 版本控制)的配置,并且它工作正常。

Mar*_*iae 6

我怀疑它会变得比您已有的信息更丰富,但我们开始了。

首先,我们需要存储我们的 WPA2-PSK 秘密:

       wpa_passphrase MyWifiSSID MySecretPassword > wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)

现在确保您已停止网络管理器(如果您使用),并以 sudo 身份发出以下所有命令。我们清理接口(我称之为 wlan0):

        ip link set dev wlan0 down
        ip addr flush dev wlan0
        ip link set dev wlan0 up
Run Code Online (Sandbox Code Playgroud)

现在我们关联到 AP:

         wpa_supplicant -B -i wlan0 -Dnl80211 -c wpa_supplicant.conf
         dhclient wlan0
Run Code Online (Sandbox Code Playgroud)

如果网络配置正确,那么您就完成了。如果 DHCP 配置中有一些错误,您可能缺少默认网关或 DNS 服务器。您可以像我在静态 IP 的情况下所做的那样设置它们。

如果您没有 DHCP 服务器,或者您希望给自己一个静态 IP(例如 192.168.1.200),则跳过上面的最后一个命令,而改为发出

         ip addr add 192.168.1.200/24 dev wlan0
Run Code Online (Sandbox Code Playgroud)

请记住,24是 CIDR 表示法中的网络掩码。如果你的不同,请相应地调整。完成此操作后,您将需要一个默认网关:

         ip route add default via 192.168.1.1 dev wlan0
Run Code Online (Sandbox Code Playgroud)

其中 192.168.1.1 是您的家庭路由器/网关和 DNS 服务器的地址,

         echo nameserver 8.8.8.8 >> /etc/resolv.conf
         echo nameserver 8.8.4.4 >> /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

就是这个。