
一、先把原理讲透:为什么在电视上装任何 App 都拦不住开机广告
很多人第一反应是「电视上装个去广告软件不就行了」。实际试过就知道没用:能装上的电视端拦截 App 基本都只能拦浏览器里的网页广告,而开机广告、桌面推荐位、影视 App 的贴片广告,根本不在浏览器里跑。
要理解这一点,得先看清楚广告是怎么进到电视里的。智能电视开机时,系统会先连 WiFi、拿 IP、拿 DNS,然后向厂商的广告服务器发起一次域名解析请求,解析成功后把视频素材下载到本地播放。整个过程发生在系统层,和你装了什么 App 没有关系。
所以真正能掐住它的位置只有一个:域名解析这一环。如果电视问「广告服务器的域名是什么」的时候,答案变成「这个域名不存在」,广告素材就下载不下来,开机自然也就没东西可播。
这就是视频里说的那套做法:在局域网里放一台电脑,让它当全屋的 DNS 服务器,凡是命中广告域名库的请求一律返回空。电视不需要改系统、不需要 root、不需要装任何软件,只是把 DNS 指向这台电脑。
换句话说,你做的不是「在电视上装拦截器」,而是在电视出门的必经路口设了一个检查站。这个思路的适用范围远不止电视:手机、平板、游戏机、扫地机器人,只要连你家 WiFi,全都一起被净化。
二、三个前提:不满足的话,装了也白装
视频标题里那句「电脑和电视在同一个 WiFi」,其实说的是三个硬条件。这三条少一条,后面配置做得再漂亮也不生效,而且报错信息还很含糊,容易让人以为是自己配错了。
前提一:电脑和电视必须在同一个局域网、同一网段。DNS 是 UDP 53 端口的服务,跨网段访问需要路由和防火墙放行,家用环境基本走不通。判断方法很简单:看两台设备的 IP,前三段一样(比如 192.168.1.10 和 192.168.1.50)就是同网段。如果你家有主路由 + 旁路由 + 光猫拨号这类多层结构,电视很可能挂在另一台设备下面,那就得先理顺网络。
前提二:路由器不能开「无线客户端隔离」(AP Isolation)。这个功能本意是防止访客设备互相访问,副作用是同一 WiFi 下的设备彼此不通。表现就是电视能上网、但怎么都连不上电脑的 53 端口。绝大多数家用路由器默认关闭,但运营商送的光猫、商场/酒店网络常常默认开启。
前提三:这台电脑得一直开着,而且 IP 不能变。这是整套方案唯一真正的成本。电脑一睡眠,电视就没法解析域名,表现是「连上 WiFi 但打不开任何应用」,比广告更烦人。所以要么把电脑设成永不睡眠,要么干脆用一台常年开机的小主机、NAS 或者软路由来跑。
| 前提 | 怎么确认 | 不满足会怎样 |
|---|---|---|
| 同一网段 | 电脑和电视的 IP 前三段一致 | 电视解析超时,全部应用无法联网 |
| 未开 AP 隔离 | 用手机 ping 一下电视 IP | 能上网但连不上 DNS,报「DNS 错误」 |
| 电脑常开 + 固定 IP | 路由器里做 MAC 地址绑定 | 电脑睡眠或 IP 变化后,电视立刻断网 |
顺带说一句:如果你用的是笔记本,还多一个坑——合盖、拔电源、切换电源计划都可能改变网卡状态或者进入休眠。这类环境我建议直接用「小主机 + 有线连接」,稳定性差一个数量级。
三、方案选型:三种做法,成本和效果差得挺多
「把广告域名解析掉」这件事,实现路径有三条。很多人一上来就照着教程装 AdGuard Home,结果发现家里既没有常开的机器、也不愿意折腾,最后不了了之。先对号入座再动手,能省不少时间。
| 方案 | 做法 | 优点 | 缺点 |
|---|---|---|---|
| 公共去广告 DNS | 电视里直接填 AdGuard DNS 或 NextDNS 的地址 | 零成本、两分钟、不用开电脑 | 规则不能自己加;国内解析质量看运气;查询记录在第三方 |
| 自建 AdGuard Home | 电脑/小主机跑服务,电视指向它 | 规则自己定、日志全可见、可给电视单独下狠手 | 要一台常开的机器;有一定配置量 |
| 路由器插件 | OpenWrt/iKuai 装 AdGuard Home 或 DNS 过滤插件 | 最彻底,全屋设备自动生效,不占额外设备 | 需要能刷机的路由器;闪存和内存吃紧 |
本文按第二条路展开,因为它最贴近「一台电脑 + 同一个 WiFi」这个场景,而且配置过程能让你真正看懂每一层在干什么。等你摸熟了,再迁到路由器上也只是一次配置搬家。
顺便提醒:如果你的电视是安卓 9 以上系统,还有一个更省事的做法——直接在电视里开「私有 DNS」(Private DNS),填 dns.adguard-dns.com。不用电脑、不用改路由器,缺点是规则固定在 AdGuard 官方那份,不能自己加,也没法看查询日志。想知道广告到底被谁拦的,还是得自建。
四、第一步:在电脑上把 AdGuard Home 跑起来
AdGuard Home 是开源免费的,官方发布在 GitHub 上,就是一个压缩包,不需要安装程序、不需要 Node.js、不需要 Python 环境,解压即用。这一点比很多教程渲染得简单。
Windows 上最省事的装法
下载 AdGuardHome_windows_amd64.zip,解压到 C:AdGuardHome(路径别带中文和空格),双击 AdGuardHome.exe。它会弹一个黑窗口开始跑,然后用浏览器打开 http://127.0.0.1:3000 进入初始化向导。
但这样跑有个致命问题:关掉黑窗口服务就停了,电脑重启也不会自己起来。正确做法是把它注册成 Windows 服务。用管理员权限打开 PowerShell:
cd C:AdGuardHome
.AdGuardHome.exe -s install
Get-Service AdGuardHome
看到服务状态是 Running 就对了,以后开机自动启动,不依赖任何窗口。要卸载服务就执行 .AdGuardHome.exe -s uninstall。
装之前必须先查 53 端口
DNS 的标准端口是 53,而这个端口在 Windows 上非常容易被别的软件占着。最常见的几个钉子户:Clash / Mihomo 一类代理工具的 DNS 模块、Docker Desktop、Windows 自带的「Internet Connection Sharing」服务、以前装过没卸干净的 DNS 工具。端口被占的话 AdGuard Home 会启动失败或者只在 3000 端口能打开、53 端口不监听。
netstat -ano | findstr ":53 "
有输出就看最后一列的 PID,再到任务管理器里对号入座。要么把占用方关掉/改端口,要么在 AdGuard Home 的配置文件里把 DNS 监听端口换掉——但换了之后电视端填 DNS 也要跟着写 电脑IP:端口,不少电视不支持指定非标准端口,所以能腾出 53 就腾出来。
别忘了放行防火墙
这是新手最容易漏的一步:本机能打开管理页,电视却怎么都连不上。原因是 Windows 防火墙默认拦截了外部访问 53 端口。用管理员 PowerShell 执行:
netsh advfirewall firewall add rule name="AdGuardHome-DNS-UDP" dir=in action=allow protocol=UDP localport=53
netsh advfirewall firewall add rule name="AdGuardHome-DNS-TCP" dir=in action=allow protocol=TCP localport=53
如果你用的是 Docker 方式部署,把两个 53 端口和 3000 端口都映射出来即可,容器本身不受 Windows 防火墙这条规则影响:
docker run -d --name adguardhome --restart unless-stopped -p 53:53/tcp -p 53:53/udp -p 3000:3000/tcp -v D:/adguard/work:/opt/adguardhome/work -v D:/adguard/conf:/opt/adguardhome/conf adguard/adguardhome:latest
五、第二步:初始化向导里只有三个地方要改
打开 http://127.0.0.1:3000 之后是引导向导,前几屏一直点下一步就行,真正需要注意的是下面三处。
① 管理界面端口。默认 3000,保持不动最省事。改成 80 的话容易和 IIS、宝塔之类打架,没必要。
② DNS 服务监听的网络接口。这一项必须选「所有接口」或者勾上电脑的局域网 IP。如果只留了 127.0.0.1,那就是只有本机能用,电视永远连不上——而且日志里什么都不会出现,极难排查。
③ 设置管理员账号密码。别用 admin/admin,虽然只在内网,但同一个 WiFi 下的任何设备都能打开这个管理页。
上游 DNS 怎么填
上游 DNS 决定了「没被拦截的域名」去哪里问。国内环境有个现实问题:全用国外 DNS,解析国内网站会被调度到很远的节点,打开视频卡;全用运营商 DNS,遇到劫持和广告域名污染又拦不干净。我的建议是两个国内加密 DNS 为主,一个境外兜底,上游模式选「并行查询」。
| 用途 | 地址 | 说明 |
|---|---|---|
| 阿里公共 DNS | https://dns.alidns.com/dns-query | 国内解析速度稳定,支持 DoH |
| 腾讯 DNSPod | https://doh.pub/dns-query | 对国内 CDN 调度友好,视频类命中率高 |
| 360 安全 DNS | https://doh.360.cn/dns-query | 备用,前面两个异常时接管 |
| 114 DNS | 114.114.114.114 | 明文协议,只当最后兜底,别当主力 |
| Cloudflare | https://cloudflare-dns.com/dns-query | 境外域名兜底,国内站点别走它 |
有一点要特别注意:不要把 dns.adguard-dns.com 再加到上游里。那是 AdGuard 官方的去广告 DNS,它自己带一套拦截规则,和你本地加载的规则会重复命中,出问题的时候你还分不清是哪一层拦的。自建的意义就在于「规则我全看得见」。
🔧 我整理的软件库
这些年折腾服务器、虚拟化和开发环境,装过的系统镜像、运维工具、开发套件、数据库与中间件,我都归档在自建的文件库里,持续补充新版本。没有弹窗广告,不强制注册,需要什么直接取。
常用工具随手可取 · 不定期补档
另外,向导里的「拦截清单」那一屏可以直接勾上 AdGuard DNS filter,先把基础盘铺上,后面再补充国内规则。
六、第三步:加过滤规则,这一步决定拦截率
AdGuard Home 本身不带广告域名库,它只是一个执行器,规则得你自己喂。进入「过滤器 → DNS 黑名单」,一条一条添加订阅地址即可,加完点「检查更新」,再确认列表里显示「规则数」不是 0。
| 规则 | 订阅地址 | 特点 |
|---|---|---|
| AdGuard DNS filter | https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt | 官方维护,误杀率低,必装的基础盘 |
| AdAway | https://adaway.org/hosts.txt | 老牌 hosts 清单,覆盖面广 |
| anti-AD | https://anti-ad.net/easylist.txt | 国内广告域名覆盖最全,但偏激进,容易误伤 |
| HalfLife 广告规则 | https://raw.githubusercontent.com/o0HalfLife0o/list/master/ad.txt | 国内视频 App、电视端广告补充得比较勤 |
| AdRules 域名版 | https://adrules.top/adrules_domains.txt | 纯域名列表,体积小,更新频繁 |
| 1Hosts Lite | https://raw.githubusercontent.com/badmojr/1Hosts/master/Lite/hosts.txt | 轻量版,适合先跑通再叠加 |
国内访问 raw.githubusercontent.com 经常超时,表现为「规则更新失败」。解决办法是换镜像加速地址,或者干脆只留前三条(github.io 和 anti-ad.net 都是国内可直连的)。规则不是越多越好——我见过有人一口气加了十几份,结果拦截率没涨多少,反倒是投屏、系统更新、部分视频 App 全废了。
加载完规则后,仪表盘上会显示「已拦截比例」。刚部署完这个数字通常是 10%~30%,别急着追求高数字,先看看自家电视能不能正常用。
七、第四步:把电视的 DNS 指向这台电脑
前面全是准备,这一步才是真正让拦截生效的动作。两种改法,效果和使用范围不一样。
改法 A:只改电视(稳妥,先验证)
电视的网络设置里,把自动获取改成静态,DNS1 填电脑的局域网 IP(比如 192.168.1.10),DNS2 留空。留空是有意为之——填了备用 DNS,电视在主 DNS 超时时会走备用,拦截就漏了。
| 品牌 / 系统 | 设置路径 |
|---|---|
| 小米 / Redmi(PatchWall) | 设置 → 网络与连接 → 无线网络 → 选中 WiFi → IP 设置 → 静态 → DNS1 |
| 海信(VIDAA / 聚好看) | 设置 → 网络 → 网络设置 → 有线 / WiFi → 高级 → 手动 IP → DNS |
| TCL / 雷鸟(Google TV) | 设置 → 网络和互联网 → 当前网络 → IP 设置 → 静态 |
| 创维(酷开) | 设置 → 网络设置 → 有线 / WiFi → 高级设置 → 静态 IP → DNS |
| 索尼(Android TV / Google TV) | 设置 → 网络和互联网 → 当前网络 → 修改网络 → 高级选项 → IP 设置 → 静态 |
| 华为智慧屏(HarmonyOS) | 设置 → 网络 → 无线网络 → 当前网络 → IP → 静态 → DNS |
| 各类安卓 TV 盒子 | 设置 → 网络和互联网 → 当前网络 → 修改 → IP 设置 → 静态 |
各家 UI 一年改两次,路径对不上很正常,找「网络 → 当前连接 → IP 设置 → 静态/手动」这条主线就行。有个细节:有线和 WiFi 是两套独立配置,你插着网线却改了 WiFi 的 DNS,等于没改。
改法 B:改路由器(一劳永逸,全屋生效)
在路由器的 DHCP 设置里,把「主 DNS」改成电脑的 IP,「备用 DNS」留空或者也填电脑 IP。这样每个设备拿到的 DNS 都是这台电脑,手机、平板、电视、扫地机全都不用单独设置。适合家里设备多、又不想一台台改的情况。
改完必须做一件事:让所有设备重新拿一次 IP。路由器后台点「重启 DHCP」或者干脆重启路由器,否则设备还捧着旧的 DNS 记录,看起来像没生效。
如果两种改法都做了但电视还是走老 DNS,大概率是电视开了「私有 DNS / 安全 DNS」。这个选项在安卓系统的网络设置里,一旦开启,系统会用加密的 DoT 直连,把本地 DNS 完全绕过。把它关掉,或者明确指定成你的 AdGuard Home 地址。
八、第五步:怎么确认真的生效了(别凭感觉)
「感觉广告少了」不是验证。要确认整套链路通了,做下面这几项检查,任何一项不过,后面都是白忙。
| 检查项 | 怎么做 | 正常表现 |
|---|---|---|
| 服务在跑 | 电脑打 http://127.0.0.1:3000 | 能进管理页,仪表盘有曲线 |
| 监听地址正确 | 设置 → DNS 设置 → 网络接口 | 包含 0.0.0.0 或电脑局域网 IP,不能只有 127.0.0.1 |
| 局域网可达 | 另一台电脑执行 nslookup www.baidu.com 电脑IP | 能返回 IP,说明 53 端口通 |
| 电视真的在用 | 查询日志按电视 IP 过滤 | 能看到电视 IP 的请求,且时间对得上 |
| 确实拦到了 | 日志里找红色/被拦截条目 | 有 block 记录,域名看着像广告服务器 |
| 广告真的没了 | 电视冷启动:拔掉电源再插上 | 开机广告不再出现,或明显缩短 |
重点说最后一项:必须拔电源,用遥控器关机只是待机,系统根本没重启,广告素材还在内存里,看起来就像「没生效」。这一条坑过太多人。
还有个小技巧:验证阶段先临时加一条自定义规则,把你家电视厂商的广告域名(从日志里找)单独拉黑,观察这台设备的拦截数有没有涨。比笼统看全局拦截率准得多。
九、进阶:只对电视下狠手,别把全家网都搞坏
很多人配完发现「拦是拦住了,但手机支付跳不过去、投屏也废了」。原因是把一堆激进规则套到了全屋所有设备上。更合理的做法是按客户端分组:手机、电脑用保守规则,电视、盒子用激进规则。
给电视建一个独立客户端
在 AdGuard Home 的「客户端设置」里添加电视的 IP,给它单独绑定一套过滤规则。这样你对电视可以放心加载 anti-AD、HalfLife 这些覆盖广的清单,手机那边只留 AdGuard DNS filter 和 AdAway,误杀风险立刻降下来。
用查询日志反查,一条条补
这是整套方案里最有价值的一步。电视开关机一次,去「查询日志」按电视 IP 过滤,把被放行的请求过一遍。你很快就能看出来:哪些域名是广告、哪些是投屏、哪些是系统更新。看到可疑的直接点「加入黑名单」,看到误杀的点「解除拦截」,系统会自动生成一条白名单规则。
自定义规则的语法很简单,两条就够用:
||ads.example.com^ 拦截这个域名及其子域
@@||keep.example.com^ 放行(白名单优先级最高)
可选:用 ADB 关掉电视里的广告组件
DNS 拦的是「联网拉广告」,拦不住「已经打包进系统分区」的部分。这类残留可以借助 ADB 停用组件,这条路有风险,动手前先看清楚:
adb connect 192.168.1.50:5555
adb shell pm list packages | findstr /i "ad"
adb shell pm disable-user --user 0 包名
电视要先在「关于 → 版本号」连点七次打开开发者选项,并允许 USB 调试。停错组件可能导致开机异常、系统更新失败,建议先 pm list packages -d 记下当前已停用的清单,出问题用 pm enable 恢复。不确定包名是干什么的,就别动。
至于换第三方桌面(比如 Projectivy Launcher)来干掉首页推荐位,属于另一条线,适合愿意折腾的人,普通家庭不建议一上来就换——遥控器习惯、语音搜索、投屏协议都可能受影响。
十、排坑:这 12 个问题基本都会遇到
下面这些是我自己配和帮人配过程中反复出现的,按出现频率排,遇到问题直接对号入座。
| 现象 | 原因 | 怎么修 |
|---|---|---|
| 电视连上 WiFi 但提示无法联网 | 电脑睡眠了,或电脑 IP 变了 | 电源计划设「从不睡眠」;路由器做 MAC-IP 绑定 |
| 管理页能开,电视连不上 | 只监听 127.0.0.1,或防火墙没放行 53 | 网络接口改「所有接口」+ 加防火墙规则 |
| 服务起不来 / 53 端口被占 | Clash、Docker、ICS 占用了 53 | netstat 找 PID,关掉占用方或改端口 |
| DNS 改了但广告照旧 | 电视开了私有 DNS / 走 IPv6 DNS | 关掉私有 DNS;路由器关闭 IPv6 或为 IPv6 下发同一台 DNS |
| 日志里完全没有电视 IP | 电视没真正改用新 DNS,或不在同网段 | 核对电视 IP 前三段;重新拿一次 DHCP |
| 拦截率一直很低 | 规则没更新成功,或只加了一份清单 | 检查「规则数」不为 0,补 anti-AD + HalfLife |
| 视频 App 打不开、一直转圈 | anti-AD 太激进,误杀了播放接口 | 日志里点「解除拦截」生成白名单;或先撤掉 anti-AD |
| 投屏 / 多屏互动失败 | 投屏发现协议依赖的域名被拉黑 | 把投屏相关域名加 @@ 白名单 |
| 电视系统更新失败 | 更新域名被当成广告拦了 | 日志里找厂商域名,白名单放行 |
| 网页打开变慢 | 上游 DNS 太慢,或电脑性能不足 | 换成国内 DoH;确认缓存已启用 |
| 电脑重启后失效 | 没注册成服务,只是双击运行 | 执行 -s install 注册为 Windows 服务 |
| 整套配完广告还在 | 广告素材已缓存到电视本地,或走 IP 直连 | 清理电视应用数据;路由器上做 53 端口劫持 |
表格里最后一条是这类方案的天花板,值得多说两句。一部分国产电视会把广告域名写死在程序里,甚至绕过 DNS 直接按 IP 请求,或者内置 HTTPDNS 自己解析。这种情况 DNS 拦不住,得在路由器上做端口劫持——把所有去往 53 端口的请求强制转到你的 AdGuard Home:
iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.10:53
iptables -t nat -I PREROUTING -p tcp --dport 53 -j DNAT --to-destination 192.168.1.10:53
这属于 OpenWrt 层面的操作,普通路由器没有这个能力。如果你的电视属于这种「硬骨头」,而你又不想刷路由器,那这套方案能带来的收益就是让别的设备干净一点,电视本身改进有限——先把预期放正,比反复折腾划算。
如果你按上面全部走完还是不生效,或者卡在「电视 IP 在日志里就是不出现」这种中间状态,把电视型号、路由器型号、以及查询日志里那几行贴出来,我帮你看是哪一环断了:微信 / 手机 17712677007,注明来意,看到会回。
十一、这套方案的边界:能拦什么,拦不住什么
把话说全,免得期待过高。DNS 层拦截的本质是「让域名解析不出来」,所以它只对「按域名请求」的广告有效。
能有效拦掉的:电视开机广告的素材拉取、桌面推荐位与 Banner、绝大多数第三方广告 SDK、应用内弹窗与开屏广告、统计与埋点上报。这些通常都走独立的广告域名,一拦一个准。
拦不干净的:YouTube、Netflix 这类把广告塞在自己内容域名下的平台;部分国产视频 App 与正片同域的贴片广告;已经下载到电视本地的广告素材;以及走 IP 直连、完全不经 DNS 的请求。
不该碰的:这套东西只适合净化自己家的网络环境。别用来绕过会员、破解付费内容、抓取受版权保护的东西——那和「去广告」是两件完全不同的事,性质和风险也不一样。
最后说成本。真正让大多数人放弃的不是技术难度,而是「要有一台一直开着的电脑」。如果你本来就有一台 NAS 或常年开机的软路由,这套方案几乎是零成本;如果为了这个专门开一台台式机 24 小时运转,电费和噪音可能比广告带来的烦躁更贵。想清楚这一点,再决定做到哪一步。
顺带一句,如果你家网络是动态公网 IP、经常要在外面连回来,可以顺手看看《DDNS-GO 自动获得公网 IPv4/IPv6 并解析到域名》;如果想把内网 DNS 做得更规范,《Windows Server 2022 DNS 服务器配置主域与辅助域》那篇里的正向/反向区域思路可以复用。
整篇配下来,动手的部分其实不到二十分钟,剩下的时间都花在「看电视到底请求了什么」上。这件事没有一劳永逸的规则包,只有一条越用越准的清单——而这恰好是自建 DNS 相比公共去广告 DNS 唯一不可替代的价值。
✍️ 关于作者
IT 峰哥,互联网技术从业者。日常折腾服务器、虚拟化、数据库与企业级应用,关注开源系统的二次开发与基础设施落地。这里记录的是踩过的坑和验证过跑得通的方案,不是转述文档。
交流:微信 / 手机 17712677007(注明来意,看到会回)
文中方案如有疏漏,欢迎在评论区指正 · 技术问题欢迎交流