avatar

蜗牛札记

记录技术、生活与一点点折腾

  • 首页
  • PetBoxX
  • 工具软件
  • NAS 折腾
  • Linux 运维
  • VPS & 网络
  • 关于
主页 在 3x-ui / Xray 服务端配置广告拦截,并兼顾 Netflix 等流媒体解锁
文章

在 3x-ui / Xray 服务端配置广告拦截,并兼顾 Netflix 等流媒体解锁

发表于 最近 更新于 最近
作者 Snailszzy
14~18 分钟 阅读

最近我把代理节点统一放在 3x-ui 上管理,同时希望广告拦截尽量放在 VPS 服务端处理,而不是每个客户端单独配置规则。这样无论是 v2rayN、小火箭、OpenClash,还是其他客户端,只要走这个节点,就能共享同一套基础广告过滤规则。

这篇记录一下我在 3x-ui 里配置 Xray 服务端广告拦截的方式,以及一些容易踩坑的地方。

核心思路

3x-ui 底层使用的是 Xray。Xray 可以通过 Routing 规则识别域名,并把命中的流量丢到 blocked 出站。

也就是说:

客户端访问广告域名
-> 流量进入 VPS 的 Xray
-> Xray 通过 sniffing 识别域名
-> 命中广告规则
-> outboundTag = blocked
-> 连接被拒绝

这和 AdGuardHome、浏览器插件、小火箭模块不一样。它不是 DNS 层过滤,也不是 HTTPS MITM,而是基于 Xray 的路由规则做域名级拦截。

第一步:开启入站嗅探

广告规则要生效,Xray 必须知道当前连接访问的是什么域名。对于 HTTPS 流量,Xray 主要依赖 TLS SNI;对于 HTTP,则可以读取 Host。

在 3x-ui 里进入对应入站,比如 VLESS、Hysteria2:

入站列表
-> 编辑入站
-> 嗅探

建议这样设置:

启用:打开
协议:HTTP / TLS / QUIC 全选
仅元数据:关闭
仅路由:打开
排除的 IP:留空
排除的域名:留空

对应 JSON 大概是:

"sniffing": {
  "enabled": true,
  "destOverride": [
    "http",
    "tls",
    "quic"
  ],
  "routeOnly": true
}

注意,这段不是单独的入站,而是要放在每一个实际代理入站里面。例如 VLESS 入站要开,Hysteria2 入站也要开。

第二步:添加广告拦截路由

在 3x-ui 的 Xray 配置里找到 Routing / 路由规则,加入:

{
  "type": "field",
  "domain": [
    "geosite:category-ads-all"
  ],
  "outboundTag": "blocked"
}

完整示例:

[
  {
    "type": "field",
    "inboundTag": [
      "api"
    ],
    "outboundTag": "api"
  },
  {
    "type": "field",
    "ip": [
      "geoip:private"
    ],
    "outboundTag": "blocked"
  },
  {
    "type": "field",
    "protocol": [
      "bittorrent"
    ],
    "outboundTag": "blocked"
  },
  {
    "type": "field",
    "domain": [
      "geosite:category-ads-all"
    ],
    "outboundTag": "blocked"
  }
]

这里的 geosite:category-ads-all 是广告域名集合,Xray 会根据 geosite 数据库匹配广告、统计、追踪类域名。

Spotify / YouTube 的额外规则

服务端广告拦截适合处理普通广告域名,但对 Spotify、YouTube 这类 App 内广告效果有限。

原因是它们很多广告和正常内容共用同一批业务域名。如果拦得太狠,可能广告没了,App 也坏了。

可以先加一些低风险域名。

Spotify:

{
  "type": "field",
  "domain": [
    "domain:adeventtracker.spotify.com",
    "domain:adstudio.spotify.com",
    "domain:ads-fa.spotify.com"
  ],
  "outboundTag": "blocked"
}

YouTube:

{
  "type": "field",
  "domain": [
    "domain:pagead2.googlesyndication.com",
    "domain:googleads.g.doubleclick.net",
    "domain:static.doubleclick.net",
    "domain:tpc.googlesyndication.com",
    "domain:www.googleadservices.com",
    "domain:adservice.google.com",
    "domain:ade.googlesyndication.com"
  ],
  "outboundTag": "blocked"
}

不建议直接拦:

youtube.com
googlevideo.com
ytimg.com
spclient.wg.spotify.com
scdn.co
spotify.com

这些很容易误伤正常播放、登录、推荐、缩略图和歌单加载。

和 Netflix 解锁的关系

广告拦截和 Netflix 解锁不是一回事。

广告拦截主要靠:

geosite 广告域名 -> blocked

Netflix 解锁主要看:

VPS IP 是否被 Netflix 识别为可用地区
节点出口 IP 地区
DNS 解析是否稳定
客户端是否真正走代理

所以广告拦截规则一般不会直接帮助 Netflix 解锁。

如果要测试 Netflix,可以用 OpenClash、v2rayN 或网页工具看当前节点是否支持:

Netflix Full
Netflix Originals Only
Not Available

如果 VPS IP 本身不支持 Netflix,改广告规则也没用,需要换节点、换 IP 或换机房。

推荐配置顺序

我现在比较推荐这样的顺序:

  1. 每个入站开启 sniffing。
  2. 添加 geosite:category-ads-all -> blocked。
  3. 添加少量 Spotify / YouTube 低风险域名。
  4. 保存并重启 Xray。
  5. 用客户端测试网页广告、YouTube、Spotify、Netflix 是否正常。
  6. 如果某个 App 异常,先删掉最近新增的精确域名规则。

注意事项

这种方式不是万能去广告。

它适合:

网页广告
广告 SDK
统计追踪
部分 App 开屏广告
普通广告域名

不太适合:

YouTube 视频片头广告
YouTube 片中广告
Spotify 音频广告
B站、爱奇艺等同域视频广告

因为这些广告很多时候和正常内容走同一个域名,Xray 服务端无法看到 HTTPS 里面的具体请求路径。

如果要更强的广告过滤,通常还需要客户端配合,比如浏览器 uBlock Origin、小火箭模块、专门的客户端规则等。

总结

把广告拦截放在 3x-ui / Xray 服务端的好处是统一、简单、客户端无感。只要客户端走这个 VPS 节点,就能自动获得基础广告域名过滤。

我的最终建议是:

服务端 Xray:做基础域名广告拦截
客户端:处理 YouTube / Spotify 这类复杂广告
Netflix:单独看 VPS IP 和地区解锁情况

这样稳定性最好,也不容易因为过度拦截导致 App 异常。

VPS & 网络
许可协议:  CC BY 4.0
分享

相关文章

7月 2, 2026

在 3x-ui / Xray 服务端配置广告拦截,并兼顾 Netflix 等流媒体解锁

最近我把代理节点统一放在 3x-ui 上管理,同时希望广告拦截尽量放在 VPS 服务端处理,而不是每个客户端单独配置规则。这样无论是 v2rayN、小火箭、OpenClash,还是其他客户端,只要走这个节点,就能共享同一套基础广告过滤规则。 这篇记录一下我在 3x-ui 里配置 Xray 服务端广告

4月 26, 2026

从零搭建 Halo 博客:Docker + Caddy + PostgreSQL 完整指南

前言 本文记录了从零在 VPS 上搭建 Halo 博客的完整过程。技术栈: Halo 2.24.1 — 开源博客系统 Docker + Docker Compose — 容器化部署 Caddy — 反向代理,自动申请 HTTPS 证书(注意:不是 Nginx) PostgreSQL 16 — 生产级

3月 19, 2024

[折腾日记5] 用RustDesk远程桌面走自建服务器,配合Zerotier内网IP访问,实现低延迟流畅操控远程桌面——ZeroTier篇

下一篇

上一篇

将 Python Web 小工具部署到 VPS:以 TCC5110 LVDS 寄存器生成器为例

最近更新

  • 在 3x-ui / Xray 服务端配置广告拦截,并兼顾 Netflix 等流媒体解锁
  • 将 Python Web 小工具部署到 VPS:以 TCC5110 LVDS 寄存器生成器为例
  • 智能爬宠箱报警系统说明
  • PetBoxX ESP32 安全冗余机制设计与测试手册
  • PetBoxX 恒温区风扇控制的演变:固定 PWM、hold_ready 重置,与动态微调

热门标签

Halo PetBox PetBoxX

目录

©2026 蜗牛札记. 保留部分权利。

使用 Halo 主题 Chirpy