gpt4 book ai didi

linux - 在 ifconfig wlan0 up 上停止自动连接

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:05 27 4
gpt4 key购买 nike

我目前正在编写两个脚本,一个用于连接到 wifi 网络,另一个用于断开连接。

连接脚本运行良好,但是当我这样做时

sudo ifconfig wlan0 down
sudo ifconfig wlan0 up

即使/etc/network/interfaces 中没有关于 wlan0 的内容,接口(interface)也会自动重新连接到网络。

但是,如果我重新启动,wlan0 将不会连接。

这是我为你感兴趣的人编写的脚本

#!/bin/bash

SSID="ssid"
PASSWORD="pass"

CONF_FILE="/etc/wpa_supplicant/$SSID.conf"

if [ -f "$CONF_FILE" ]; then
echo "wpa configuration file already exists"
else
echo "wpa configuration file doesn't exists"
#Generating configuration file
sudo wpa_passphrase $SSID $PASSWORD > $CONF_FILE
#Delete the line containing the password
sudo sed -i '/$PASSWORD/d' $CONF_FILE
fi

#Connecting to network
sudo wpa_supplicant -c $CONF_FILE -i wlan0 &

我认为这是因为 wpa_supplicant 仍在后台运行,有谁知道如何在不知道其 pid 的情况下终止正在运行的 wpa_supplicant 进程?

编辑: 我确认它来自后台运行的 wpa-supplicant。我发现解决它的唯一方法是调用

sudo killall wpa_supplicant 

但是这个解决方案并不令我满意,假设我在另一个接口(interface)上运行另一个 wpa_supplicant 实例,我将失去所有网络连接。很确定有更好的方法来终止与此特定接口(interface)关联的进程。我会四处挖掘。希望有人已经遇到过这种情况。

最佳答案

忘记 ifconfig,它也会启动 wpa_supplicant。
而是使用 ip link set wifi0 upip link set wifi0 down 到 up/down 接口(interface),和 wpa_supplicant/wpa_cli 连接到网络。
调用请求者示例:
wpa_supplicant -i wifi0 -D nl80211 -c/etc/wpa_supplicant/my_wpa_supplicant.conf您可以直接在 .conf 文件中设置您的网络,或动态添加它们。通过 wpa_passphrase 生成 psk,将输出放入您的 .conf 文件。

network={
ssid="TOPGUN"
#psk="qwerty123"
psk=f910451a8a67c0e061d1a296955ad604b4fe6fb0e442b8a997f350f434e07f00
}

network={
ssid="TOPGUN2"
#psk="qwerty123"
psk=538a2337031c5308082285cee3e433c62aaf49260cbb35768eeb3e6baa2d5191
}

现在您可以使用 wpa_cli 从脚本更改这些网络,就像这样。

wpa_cli -iwifi0 select_network 0
wpa_cli -iwifi0 enable_network 0

wpa_cli -iwifi0 select_network 1
wpa_cli -iwifi0 enable_network 1

其中 0 是 .conf 文件中第一个网络的编号,1 是第二个网络。
或者
每次在您的脚本中动态添加网络,这样您就可以更好地控制网络拥有的数字。请记住,这些不是持久性的,应该在每次重新启动系统时运行。

wpa_cli -iwifi0 add_network <-- this command returns number of network which is used in following commands, you should remember returned value

wpa_cli -iwifi0 set_network 0 key_mgmt WPA-PSK
wpa_cli -iwifi0 set_network 0 psk '"qwerty123"'
wpa_cli -iwifi0 set_network 0 ssid '"TOPGUN"'
wpa_cli -iwifi0 select_network 0
wpa_cli -iwifi0 enable_network 0

关于linux - 在 ifconfig wlan0 up 上停止自动连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45217029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com