预设的分流规则包里通常会带一条 “block规则”(比如 block:category-ads-all 或类似的广告域名黑名单),把这些域名请求直接 reject 掉。
这为什么会影响优酷:
优酷本身的广告和内容分发是混在一起走的,很多所谓"广告域名"其实同时也承载了:
- 视频播放的鉴权/token请求
- 播放地址的重定向
- 内容分发网络(CDN)的调度
如果规则把这类域名一并 block 了,优酷客户端/网页端会发现请求异常(连接被拒绝、超时、返回异常),这种行为模式跟"被防火墙/代理拦截"的表现很像,所以优酷的风控可能会把它误判成"存在异常网络環境(比如用代理)",进而限制播放——不一定是它真的检测到代理本身,而是检测到了请求被中途阻断的异常模式。
怎么兼顾"优酷能看"和"国内广告能屏":
思路是不要用一刀切的"域名在不在 geosite:cn 里"来判断,而是单独把优酷相关的域名列出来直连,其他的国内网站广告该拦还拦。
从日志能看出两类域名,可以按这个思路分类打规则:
明显是广告/统计,可以放心 block:
domain:yk-ssp.ad.youku.com ← 优酷广告SSP服务器(ad. 前缀已经说明是广告)
domain:ykad-data.youku.com ← 广告数据回传(ad 关键字明显)
domain:qzs.gdtimg.com ← 腾讯广点通(GDT)广告CDN
domain:mmstat.com ← 阿里妈妈统计/广告追踪,覆盖 yt.mmstat.com / gm.mmstat.com / log.mmstat.com / yt1.mmstat.com 这一串
domain:image.9xsecndns.cn ← 域名很可疑(伪装成普通CDN的广告/反广告屏蔽域名),可以先加入观察,如果加入block后视频还正常,就保留block
播放必需,千万别 block(要保证走 direct 且在 block 规则之前匹配到):
domain:v.youku.com
domain:acs.youku.com ← 核心API/鉴权
domain:un-acs.youku.com
domain:acg.youku.com
domain:static.youku.com
domain:ykimg.com ← m.ykimg.com 等图片域名
domain:www.youku.com
domain:pl-ali.youku.com ← 播放列表
domain:cibntv.net ← valipl.cp31.ott.cibntv.net,真正的视频流CDN,千万不能block
domain:cnpassport.youku.com ← 登录鉴权
domain:pis-pcdn.youku.com
domain:drm-license.youku.com ← DRM授权,block了直接放不了片
domain:player-gw-s.aliyuncs.com
domain:kacs-access.aliyuncs.com
domain:alicdn.com ← g.alicdn.com / hudong.alicdn.com / at.alicdn.com 等一堆静态资源
domain:alipayobjects.com
domain:aliyuncs.com(如果没被上面覆盖到的话)
精简后的规则(按顺序):
第一步:广告类,用更具体的规则,必须排在最前面(优先匹配)
domain:yk-ssp.ad.youku.com
domain:ykad-data.youku.com
domain:mmstat.com
domain:qzs.gdtimg.com
domain:image.9xsecndns.cn
第二步:播放必需,用大域名一次覆盖所有子域
domain:youku.com ← 覆盖 v./acs./un-acs./acg./static./www./pl-ali./cnpassport./pis-pcdn./drm-license./pc.pay./pss-common. 等所有 youku.com 子域
domain:ykimg.com ← 覆盖 m.ykimg.com 等
domain:cibntv.net ← 覆盖 valipl.cp31.ott.cibntv.net 视频CDN
domain:alicdn.com ← 覆盖 g./hudong./at./o./dev.g./pss-s./ykimg. 等所有 alicdn 静态资源
domain:alipayobjects.com
domain:aliyuncs.com ← 覆盖 player-gw-s. 和 kacs-access.
第三步:排序
阻断youku广告 → 直连youku播放地址 —— 广告规则更精确(比如 yk-ssp.ad.youku.com),播放规则更宽泛(domain:youku.com)。精确规则必须排在宽泛规则前面,否则宽泛的 youku.com 会先命中,广告规则永远轮不到,等于失效。
日志看起来规则运行正常,之前配置的规则都生效了,没有明显遗漏。具体分析:
播放相关域名 → 全部走 direct,正确:
v.youku.com / acs.youku.com / un-acs.youku.com / static.youku.com / www.youku.com
pl-ali.youku.com / cnpassport.youku.com / pis-pcdn.youku.com / drm-license.youku.com
pc.pay.youku.com / pss-common.youku.com
valipl.cp31.ott.cibntv.net ← 这条是实际的视频流 m3u8 地址,direct 说明视频本体没被拦
m.ykimg.com / static.youku.com(图片资源)
kacs-access.aliyuncs.com / player-gw-s.aliyuncs.com(阿里云播放网关)
alicdn.com 系列(at. / hudong. / img. / o. / dev.g. / pss-s.)
这些都对,播放链路完整没被误伤。
广告/统计域名 → 全部走 block,正确:
yk-ssp.ad.youku.com / ykad-data.youku.com ← 优酷广告
mmstat.com 系列(gm. / log. / yt. / yt1.) ← 阿里妈妈统计,日志里刷屏最多的就是这个,说明拦截量很大,工作正常
qzs.gdtimg.com ← 腾讯广点通
s.deepl.com / ads.mozilla.org ← 其他工具自带的广告/统计,跟优酷无关但顺手也拦了
唯一需要你确认一下的点:
image.9xsecndns.cn 这次是走的 block(之前我建议过要单独验证这条)。日志里它被高频请求(一次性打了十几个连接),从命名规律看更像是图片CDN,不排除是弹幕/评论区头像或者播放页缩略图之类的资源。
建议你实际验证一下:
- 播放视频时观察页面是否有图片加载失败(比如弹幕头像、推荐视频封面缺失)
- 如果一切正常,说明它确实是纯广告/追踪域名,继续 block 没问题
- 如果发现缺图,就把这条挪到 direct 名单
跟前面电脑的规则对照分析,为什么电脑规则在平板上应用会导致播放不了
为什么电脑规则搬到平板上会导致播放不了
真正会导致播放不了的,是你之前提到的"阻断所有广告(通用广告库)“这一条——电脑上这是一个第三方公共广告规则订阅包,规则数量庞大,其中很可能包含了一些长得像追踪域名、实际是阿里自家CDN调度系统的域名。
证据就在这次平板日志里,注意这几条域名的命名模式:
adashx4yt.m.taobao.com.gds.alibabadns.com
secgw-ipv6-aserver-heyi.m.taobao.com.gds.alibabadns.com
gw.alicdn.com.danuoyi.tbcache.com
zconfig.alibabausercontent.com.w.cdngslb.com
acg.youku.com.w.alikunlun.com
这种”真实域名 + .gds.alibabadns.com / .danuoyi.tbcache.com / .w.alikunlun.com / .w.cdngslb.com“的嵌套结构,是阿里巴巴自己的 HTTPDNS 私有解析系统——用来绕开运营商DNS劫持、动态调度最优CDN节点,是优酷播放链路里真正必需的一环,不是广告或追踪。但因为域名结构看起来很像"套壳跳转/重定向广告”,很多通用广告规则库(包括电脑上订阅的那个)会误判并直接拦截这类域名,一旦拦掉,优酷拿不到正确的CDN调度结果,播放直接失败——这跟真正的广告拦截(yk-ssp.ad.youku.com这些)是两回事。
可直接复制的 AdGuard Home 规则表
进入 Filters → Custom filtering rules,整段粘贴:
! ===== 保护规则:防止通用广告库误伤(放最前面)=====
@@||alibabadns.com^
@@||danuoyi.tbcache.com^
@@||w.alikunlun.com^
@@||w.cdngslb.com^
@@||alibabausercontent.com^
@@||youku.com^
@@||cibntv.net^
@@||alicdn.com^
@@||aliyuncs.com^
@@||gdmf.apple.com^
@@||aaplimg.com^
! ===== 确认为广告/追踪,可以放心拦截 =====
||yk-ssp.ad.youku.com^
||ykad-data.youku.com^
||adx-core.youku.com^
||adx-open-service.youku.com^
||missile.youku.com^
||adashx.ut.youku.com^
||mmstat.com^
||qzs.gdtimg.com^
||ipv4.gdt.qq.com^
||win.gdt.qq.com^
||mi.gdt.qq.com^
||pgdt.ugdtimg.com^
||sdk.e.qq.com^
||hc-ssp.sm.cn^
||sdk-log.partner.sm.cn^
||partner.uc.cn^
||mbd4.n.shifen.com^
||mobads.e.shifen.com^
||bgg.baidu.com^
||mobads.baidu.com^
||api-access.pangolin-sdk-toutiao-b.com^
||nt-443-wagbridge.advertisement.alibaba-inc.com^
关键点:@@ 开头的是"例外/放行"规则,在 AdGuard 里优先级最高,不管后面有没有订阅其他通用广告库、库里有没有误伤规则,这几条保护规则都会强制放行,从根源上解决"通用广告库误杀CDN调度域名"的问题。加完之后重新打开优酷播放测试,同时去 Query Log 确认那几个 alibabadns.com / tbcache.com 类域名显示的是"已处理"(放行)而不是"已拦截"。
Streisand 底层是 Xray core,用的是 domain: 前缀 + outbound 标签这套逻辑,跟电脑的 v2rayN 规则本质上是一套东西,可以直接沿用之前的格式。
规则顺序(在 Settings → Routing 里,从上到下按顺序添加):
1. 阻断 UDP443 (已有,保持在最上面不动)
2. 保护规则 — Outbound 选 Direct,必须排在下面所有 block 规则之前:
domain:alibabadns.com
domain:danuoyi.tbcache.com
domain:w.alikunlun.com
domain:w.cdngslb.com
domain:alibabausercontent.com
domain:youku.com
domain:cibntv.net
domain:alicdn.com
domain:aliyuncs.com
domain:gdmf.apple.com
domain:aaplimg.com
3. 广告拦截 — Outbound 选 Block:
domain:yk-ssp.ad.youku.com
domain:ykad-data.youku.com
domain:adx-core.youku.com
domain:adx-open-service.youku.com
domain:missile.youku.com
domain:adashx.ut.youku.com
domain:mmstat.com
domain:qzs.gdtimg.com
domain:gdt.qq.com
domain:ugdtimg.com
domain:sdk.e.qq.com
domain:sm.cn
domain:partner.uc.cn
domain:shifen.com
domain:baidu.com
domain:pangolin-sdk-toutiao-b.com
domain:advertisement.alibaba-inc.com
4. (原有的)通用广告库规则 ← 保持不动,排在这之后
5. geosite:cn / geoip:cn 绕过大陆
6. 默认走 proxy
关键点跟之前一致: 因为 Streisand/Xray 规则是"顺序匹配、命中即停",第2步的 direct 保护规则排在第3步和第4步(通用广告库)前面,这样即使后面订阅的公共广告规则库里有域名会误伤 alibabadns.com / tbcache.com 这类真正用于播放调度的域名,也会因为已经在第2步被拦截命中并放行,根本不会再往下匹配到 block 规则,从根源上避免了电脑规则那次遇到的"CDN调度域名被误杀导致播放失败"的问题。
一个小提醒:domain:sm.cn、domain:baidu.com、domain:shifen.com 这几条我改成了公司主域名(不只精确到具体子域),因为百度和UC神马的广告SDK经常换子域名前缀,用主域名兜底能覆盖更多变体,不用每次抓包再补充——但这样做的代价是,如果你以后在树莓派或其他设备上需要访问百度网盘、百度地图之类正常服务,也会被这几条规则拦截。如果你有这类使用场景,告诉我,我可以把这几条改回精确子域名匹配,避免误伤。