debian – systemd:如何有选择地禁用特定WLAN接口的wpa_supplicant?

前端之家收集整理的这篇文章主要介绍了debian – systemd:如何有选择地禁用特定WLAN接口的wpa_supplicant?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在具有systemd和networkd的 Linux系统上,我需要在一个WLAN接口上操作WLAN接入点,同时在正常站(“客户端”)模式下进一步操作(热插拔)WLAN接口.

事实证明,wpa_supplicant.service在我的所有WLAN接口上都可以使用,如果只有所有这些WLAN接口都可以在站/客户端模式下运行,那就没问题了.但是,虽然wpa_supplicant.service服务于WLAN接口,但是不可能(不再是?)hostapd.service在AP接入点模式下操作该WLAN接口.

所以我想只为特定的接口禁用wpa_supplicant.service,比如说wls35u2.我的想法是有一个wpa_supplicant@wls35u2.service单元,我可以有选择地禁用,但是启用wpa_supplicant.service.但是,这似乎没有用,或者我在wpa_supplicant@wls35u2.service中做错了.

那么,如何在不全局禁用特定接口的情况下禁用WPA请求者服务呢?

解决方法

我有同样的问题. @Nproject找到了一个很好的解决方案.但是您不必修改每个程序.只需转到Nproject提到的文件的末尾(/ lib / dhcpcd / dhcpcd-hooks / 10-wpa_supplicant)并修改以下if子句:

原版的

if [ "$ifwireless" = "1" ] && \
    type wpa_supplicant >/dev/null 2>&1 && \
    type wpa_cli >/dev/null 2>&1
then
        case "$reason" in
        PREINIT)        wpa_supplicant_start;;
        RECONFIGURE)    wpa_supplicant_reconfigure;;
        DEPARTED)       wpa_supplicant_stop;;
        esac
fi

以这种方式添加[“$interface”!=“TheInterfaceWPASupplicantShouldBeDisabledOn”]:

改性

if [ "$ifwireless" = "1" ] && [ "$interface" != "TheInterfaceWPASupplicantShouldBeDisabledOn" ]  && \
    type wpa_supplicant >/dev/null 2>&1 && \
    type wpa_cli >/dev/null 2>&1
then
        case "$reason" in
        PREINIT)        wpa_supplicant_start;;
        RECONFIGURE)    wpa_supplicant_reconfigure;;
        DEPARTED)       wpa_supplicant_stop;;
        esac
fi

此外,这将阻止任务栏中的网络管理器(GUI)显示此界面.

猜你在找的Linux相关文章