草稿 如何利用SB高效科学的屏蔽广告

本文最后更新于 263 天前, 如有失效请评论区留言.

最近在研究如何科学的利用SB进行广告屏蔽,本文主要记录一下

什么是SB

sb 是新一代超强通用网络工具,对标目前已经删库的工具。

特性

  • 新的协议都支持
  • 平台支持多
  • 更新迭代频繁
  • 免费会手搓就行

分析一下

如果我想屏蔽广告,通常只有两个途径,

  • dns劫持, 主要是针对广告域名
  • 流量黑洞,主要是针对部分广告服务商IP

配置解析

方便操作,我将按模块拆分相关文件

log.json

{
  "log": {
    "timestamp": false,
    "disabled": false,
    "level": "info"
  }
}

这个log.json通过不需要调整,刚开始的时候可能需要改下日志级别debug, 测试完成后就可以改成info

ntp.json

{
  "ntp": {
    "enabled": true,
    "server": "ntp.tencent.com",
    "server_port": 123,
    "interval": "30m0s",
    "detour": "direct"
  }
}

主要保持时间同步,避免时间差。如果你的机器本身就有时间同步,这个也是可选的

DNS 配置

主要用于分流。举个简单例子,公司内部有些域名是使用内网dns解析的,就可以通过它分流。具体参数含义我就不解释了,自己看官方文档(下同)

这里我给出多云组网环境下的配置

{
  "dns": {
    "servers": [
      {
        "tag": "dns_ts",
        "address": "100.100.100.100",
        "detour": "ts"
      },
      {
        "tag": "dns_ali",
        "address": "https://223.5.5.5/dns-query",
        "strategy": "prefer_ipv4",
        "detour": "direct"
      },
      {
        "tag": "dns_block",
        "address": "rcode://success"
      }
    ],
    "rules": [
      {
        "domain_keyword": [
          "ysicing",
          "12306.work"
        ],
        "server": "dns_ts"
      },
      {
        "rule_set": [
          "geosite-category-ads-all",
          "ban",
          "networktest"
        ],
        "server": "dns_block"
      },
      {
        "process_name": [
          "tailscale",
          "tailscaled",
          "kubectl"
        ],
        "server": "dns_ts"
      }
    ],
    "final": "dns_ali",
    "strategy": "prefer_ipv4"
  }
}

这里简单说下, dns有4个分流规则,两个dns。

  • ysicing12306.work走集群内部的dns解析,因为这里大多数都是内部域名,没必要走公网dns解析
  • 订阅了三个规则集,如果匹配到直接屏蔽请求,且无错误
  • 几个命令行工具也走内部网络
  • 最后有个保守规则,都没匹配都走公网dns解析

另外我的环境没开启双栈,要求优先ipv4查询域名A记录

出站规则

因为仅仅是屏蔽广告,出站规则也很简单。

入站规则

开启tun即可

{
"inbounds": [
{
"type": "tun",
"inet4_address": "198.18.0.1/16",
"auto_route": true,
"stack": "mixed"
]
}

路由配置

核心部分

最后

忙活了半天,还是不写了😂

有兴趣的可以看看官方文档或者米开朗基杨基础教程

Sponsor

Like this article? $1 reward

Comments