You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设备Station模式systemd服务启动后wlan0自动断开问题求助

解决systemd启动wpa_supplicant脚本后wlan0自动断开的问题

我之前碰到过几乎一模一样的情况:手动跑命令或脚本联网完全正常,用systemd启动就触发本地主动断开(就是你日志里的DEAUTH_LEAVING)。结合你的配置和日志,大概率是systemd的服务生命周期管理、脚本进程后台逻辑不匹配,或者有隐藏的网络服务干扰导致的,给你几个实用的排查和解决方向:

1. 调整systemd服务的进程管理逻辑

你的服务用了Type=simple,但脚本里的wpa_supplicant加了-B(后台运行),dhclient默认也是后台进程——这会让systemd误以为脚本执行完就退出了,可能触发意外的进程清理动作,甚至误杀关联的网络进程。

修改station.service配置:

[Unit]
Description=station mode service.
After=network.target
Wants=network.target

[Service]
Type=forking
# 让systemd识别后台进程的启动状态
ExecStart=/home/root/station_mode.sh
# 停止服务时主动清理相关进程,避免残留
ExecStop=/usr/bin/killall wpa_supplicant dhclient
ExecStopPost=/sbin/ip addr flush dev wlan0
# 网络异常时自动重启服务
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

同步修改station_mode.sh脚本:

去掉wpa_supplicant的-B参数,让它前台运行(交给systemd管理后台),同时等待关联成功再启动dhclient,避免时序问题:

#!/bin/bash
rfkill unblock all
# 去掉-B,让wpa_supplicant前台运行,由systemd托管后台
/home/root/wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf &
# 等待wlan0完成关联,避免dhclient提前启动失败
until wpa_cli -iwlan0 status | grep -q "wpa_state=COMPLETED"; do
    sleep 1
done
dhclient -i wlan0

2. 排查是否有其他网络服务干扰

虽然你停了默认的wpa_supplicant,但可能还有NetworkManager这类网络管理服务在后台运行,它们会自动接管wlan0接口,导致你的脚本启动的连接被强制断开。执行以下命令确认:

systemctl status NetworkManager

如果它在运行,直接停止并禁用:

systemctl stop NetworkManager
systemctl disable --now NetworkManager

3. 确保脚本权限和环境一致性

systemd服务的默认环境变量和你手动登录的命令行环境不一样,比如PATH、用户权限等。先给脚本加上执行权限:

chmod +x /home/root/station_mode.sh

另外把脚本开头的#!/bin/sh改成#!/bin/bash,bash的兼容性更好,能避免一些shell语法差异导致的问题。

4. 查看详细日志定位问题

如果调整后还是有问题,用journalctl查看服务的实时日志,能找到脚本执行时的具体错误:

journalctl -u station.service -f

比如可能是rfkill命令找不到、wpa_supplicant.conf权限不足,或者dhclient获取IP超时等问题,都能从日志里看出来。

最后验证修改

调整完配置后,重新加载systemd并重启服务:

systemctl daemon-reload
systemctl restart station.service

然后用以下命令确认网络状态:

iw wlan0 link
ip addr show wlan0

内容的提问来源于stack exchange,提问作者Sourabrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 07:52:52