The*_*veO 10 debian linux-networking systemd
在 Linux 系统上systemd
,networkd
我需要在一个 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 请求方服务而不全局禁用它?
小智 12
使用 /etc/dhcpcd.conf 中的“nohook wpa_supplicant”选项。如果您不希望 wpa_supplicant 用于 wlan0,这将是:
interface wlan0
nohook wpa_supplicant
Run Code Online (Sandbox Code Playgroud)
[编辑:看看@rweisse 的答案以获得更好的方法]
我的树莓派也遇到了同样的问题。
我发现wpa_supplicant@wlan0和wpa_supplicant@wlan1(我有两个 wlan 接口)和wpa_supplicant.service都被禁用。
我设法找到(至少在 raspbian 上,我不知道在其他 debian 版本上是如何)dhcpcd负责wpa_supplicant 启动。
在/lib/dhcpcd/dhcpcd-hooks下,有一个名为“10-wpa-supplicant”的文件,您可以在其中找到 wpa_supplicant 的启动/重新配置/停止过程。
在这个文件中,我只是添加了正在处理的$interface 的条件。对于每个 PROCEDURE_NAME(启动/停止/重新配置):
PROCEDURE_NAME( )
if [ "$interface" != "TheInterfaceWPASupplicantShouldBeDisabledOn" ] then
Code of the prodecure
else
return 0
fi
Run Code Online (Sandbox Code Playgroud)
之后,我重新启动了 dhcpcd 服务
systemctl restart dhcpcd
Run Code Online (Sandbox Code Playgroud)
现在,使用 hostapd 时 InterfaceWPASupplicantShouldBeDisabledOn 不再是问题。这个解决方案有点残酷,因为我不认为应该这样做,但我找不到任何关于如何以另一种方式做到这一点的手册。
希望这可以帮助。
归档时间: |
|
查看次数: |
17073 次 |
最近记录: |