CleanYourTV 连不上电视时,「ADB 端口没开」和「授权没点」是两类不同故障,处理动作也不一样:端口没开时 adb connect 直接被拒,电视上通常没有任何反应;授权没点时连接能建立,但 adb devices 会把设备列成 unauthorized。建议的排查顺序是从网络层往上走——先确认电脑能 ping 通电视,再看 5555 端口是否接受连接,最后看设备状态是不是 device。跳过前两层直接改 CleanYourTV 配置,多数情况只是白折腾。
连接失败先按三层判断:网络层看是否同网段、能否 ping 通;ADB 服务层看 5555 是否监听、connect 是拒绝还是超时;授权层看 adb devices 是 device 还是 unauthorized。电视始终不弹授权框,多半是 ADB 服务没起或端口不通;弹了没点允许,才是授权问题。三层都通过后仍失败,再去核对 CleanYourTV 的 host/port 配置和调试日志。命令、端口和配置项以你所用版本及仓库文档为准。
先确认电视和电脑在同一网段且能互相 ping 通
这一步排除的是网络隔离和 IP 写错,成本最低,收益最直接。在电视上进入「设置 → 网络与互联网(或网络状态)→ 当前连接的网络 → 查看 IP 地址」,记下形如 192.168.1.50 的地址。注意只看当前正在使用的那条连接:电视同时插网线和连 WiFi 时,两条网络可能在不同网段,写错一个就会连不上。
回到电脑,用同一条网络(不要连手机热点或公司访客 WiFi)执行:
ping 192.168.1.50有回包说明网络层通了,可以进下一层。出现请求超时或主机不可达,先查这几处:路由器是否开启了无线隔离或 AP 隔离(部分路由器叫「访客网络隔离」「客户端隔离」),访客 WiFi 一般禁止终端互访;电脑和电视是否一个连 2.4G 一个连 5G 却分属不同子网;网线是否插在路由器的 WAN 口而不是 LAN 口。这些都属于环境配置问题,跟 CleanYourTV 本身无关,ping 不通时改工具配置没有意义。
检查电视 ADB 调试开关和端口是否监听
ping 通只证明网络可达,不代表电视在 5555 端口上提供了 ADB 服务。先进入电视的「设置 → 关于 → 版本号」连点若干次开启开发者选项,再进「开发者选项」确认两个开关:USB 调试和网络调试。不同品牌命名有差异,有的叫「ADB 调试」「无线调试」「ADB over network」,含义相近——只有把网络调试这类开关打开,电视端的 adbd 才会监听 TCP 端口。
开关打开后,在电脑执行:
adb connect 192.168.1.50:5555三种返回要分开看。connected to 192.168.1.50:5555 表示 TCP 层已建立;Connection refused 表示端口没有进程监听,回到电视确认调试开关是否真的打开、是否被系统在重启后自动关闭;Connection timed out 或长时间无响应,说明还是网络层问题,回到第一步。出现拒绝或超时,电视一般不会弹授权对话框——这也是为什么「没弹窗」不能直接当成「授权没点」。
用 adb devices 判读 unauthorized 和 offl
connect 之后不要急着开 CleanYourTV,先看设备状态:
adb devices
List of devices attached
192.168.1.50:5555 unauthorized
192.168.1.50:5555 offline
192.168.1.50:5555 device- unauthorized:连接已建立,但电脑的 ADB 公钥没被电视接受。此时电视屏幕上通常有一个「允许 USB 调试吗」的对话框,去电视上用遥控器点「允许」,并勾选「一律允许」。点完再执行一次
adb devices,状态应变成 device。如果电视根本没出现这个框,先回上一层查端口和调试开关。 - offline:设备记录存在但会话不可用,多见于电视睡眠唤醒、ADB 服务重启或上一次连接残留。先执行
adb kill-server,再adb start-server,然后重新adb connect。 - device:授权和会话都正常,此时 CleanYourTV 仍连不上,问题就在工具配置或它调用的命令上。
另外,部分电视在每次断电重启后会清空已授权列表,需要重新点一次允许,这属于正常行为,不是工具故障。
核对 CleanYourTV 的配置文件中的电视地址
前两层都通过后,再检查工具自己的配置。打开 CleanYourTV 的配置文件,常见是仓库根目录下的 config.yaml、config.json 或 .env,字段名以仓库文档为准,通常会包含主机和端口:
# config.yaml 示例,字段名请以仓库文档为准
tv:
host: 192.168.1.50
port: 5555
timeout: 10重点核对三处:host 是否和电视当前 IP 完全一致(电视重启后 DHCP 可能换地址,建议在路由器上做静态绑定);port 是否写成了 5555 以外的值,或被误加引号、空格导致解析成字符串;如果用 .env,注意变量名大小写和是否被系统环境变量覆盖。改了配置后需要重启 CleanYourTV 才生效。不要同时改配置又改路由器设置,出问题会分不清是哪一步引入的。
在 CleanYourTV 日志里定位连接失败的具体阶段
配置核对完还失败,就靠日志判断卡在哪一层。多数工具支持通过环境变量提高日志级别,例如:
DEBUG=1 ./cleanyourtv
# 或以实际入口脚本为准,如
debug=1 python -m cleanyourtv看日志里的关键词对应处理:出现 timeout,说明请求没走到电视的 ADB 服务,回到第一步查网络和端口;出现 unauthorized 或 authentication failed,说明连接建立了但公钥没被接受,去电视点允许并重试;出现 connection refused,说明端口无人监听,检查网络调试开关;出现 device not found 但 adb devices 明明显示 device,则可能是 CleanYourTV 读取的配置与实际不同(例如读的是另一个路径的配置文件),或它自带的 adb 版本与系统 adb 冲突。日志能定位到阶段,就不用反复试错开关。