惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V2EX - 技术
V2EX - 技术
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
腾讯CDC
C
CERT Recently Published Vulnerability Notes
J
Java Code Geeks
WordPress大学
WordPress大学
博客园 - Franky
V
Vulnerabilities – Threatpost
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
The Hacker News
The Hacker News
T
The Blog of Author Tim Ferriss
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Martin Fowler
Martin Fowler
Webroot Blog
Webroot Blog
Attack and Defense Labs
Attack and Defense Labs
Google Online Security Blog
Google Online Security Blog
S
Securelist
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Troy Hunt's Blog
Scott Helme
Scott Helme
Project Zero
Project Zero
T
Tailwind CSS Blog
The Register - Security
The Register - Security
A
About on SuperTechFans
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
The GitHub Blog
The GitHub Blog
Security Latest
Security Latest
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Hackread – Cybersecurity News, Data Breaches, AI and More
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
S
Security Affairs
博客园 - 叶小钗
Microsoft Security Blog
Microsoft Security Blog
H
Heimdal Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
PCI Perspectives
PCI Perspectives
The Cloudflare Blog
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
AI
AI

WAYJAM

告别 NPM Token:迁移到 Trusted Publishing 全记录 [All In One] HomeLab 虚拟化 iKuai + Mihomo - IPv6 支持 [All In One] HomeLab 虚拟化 iKuai + Mihomo LiteLLM 多模型 API 中转 MacOS Bootstrp with Nix Fluency Support Full Rss [All In One] PVE 中 OpenWrt LXC 重启问题 Tabby 终端配置以及配置全平台同步 Cloudflare Tunnel + Nginx Proxy Manager:服务穿透 PVE 7 升级 8 笔记 PVE 安装 Android x86 & 安装 Magisk Fly.io 部署 Artalk 评论系统 [All In One] HomeLab 2023 搭建总结 [All In One] 轻量的文件 & 媒体服务器配置 [All In One] R71s 主机散热改造 [All In One] PVE LXC 安装 OpenWrt 软路由以及网络规划 [All In One] 安装 Proxmox VE 7.4 从零开始配置Rime - 2023 Self Hosted Bitwarden + Cloudfare HTTPS Debian NFS Server 以及 MacOS Client AdguardHome 和 Clash 透明代理配合使用 使用 Kind 部署 Prow 手记 BackBlaze B2 + Cloudfare Worker 图床 PicGo Amazon S3 插件 自动给模板生成 Inline-Svg Hugo Theme WeUI 发布! Hugo Theme Fluency 发布! Docker Clash 和 透明代理 有限状态机与分布式熔断器 「家庭娱乐」N1刷 EmuELEC 做游戏盒子 「家庭娱乐」N1刷 Armbian 做家庭服务器 分布式限流器之令牌桶实现 Kustomize 管理 Kubernetes 集群 Mixedpaper 主题发布到 Hugo 官方仓库 About 优化 Docker 构建时间 解决 etcd 与 grpc 不兼容问题 Kubernetes 部署 ElasticSearch7 集群 从零开始配置Rime - 2019 转移域名,更换评论系统,更换图床 搭建 NPM Proxy 之预编译包 搭建 NPM Proxy 美区Apple ID终于绑定PayPal成功 无可奈何的页面增强方案 LogStash的调试 GitLab Shell如何通过SSH工作 Python打开类 荒原 [Theme] Bitcron主题Mixedpaper发布! Ngrok端口转发 故事之五 - 柠檬茶 故事之四 - 我是天才 故事之一 Arch滚挂了怎么办? OpenWrt内网IPv6之二 某次更新后Primusrun不能启动Dota2 OpenWrt的DNS智能解析方案 替换Google CDN库 使用Privoxy将socks代理转化为http代理 ArchLinux之软件篇 再次安装ArchLinux手记 博客再次重生 搞了个Minecraft服务器 【LnV工作室荣誉出品】小苹果MV华农大版 雨梦 醉臥石中笑人間 路由器内网IPV6地址分配 OPENWRT安装软件的两个问题 路由器上进行锐捷认证 改了BIOS的LOGO Windows下搭建我的C/C++的开发环境 Linux下用Mentohust认证校园网 Archlinux+Windows 双系统安装手记(UEFI+GPT) Google-code-prettify代码高亮 《末世迷踪》 Hello Net World!
Sing-box:IPv6 优先出站与 Netflix 强制 IPv6 分流
2026-01-16 · via WAYJAM

很多 VPS 的 IPv4 出口因为被滥用、共享 NAT 或者 IP 段"脏",导致访问某些服务时体验不佳。相比之下,IPv6 出口往往更干净——毕竟 IPv6 地址段大、用的人少、很多服务商对 IPv6 的风控也没那么严格。

本文记录如何在 sing-box 上实现:

  • 全局 IPv6 优先:所有出站流量优先走 IPv6,IPv6 不可用时自动回退 IPv4
  • Netflix 强制 IPv6:针对 Netflix 这类对 IP 质量敏感的服务,强制只走 IPv6(不回退)

前置检查

确认宿主机 IPv6 可用

在配置 sing-box 之前,先确保系统网络层的 IPv6 是通的:

# 查看 IPv6 地址(需要看到 scope global 的地址)
ip -6 addr show

# 查看 IPv6 默认路由
ip -6 route show

# 测试 IPv6 连通性
ping6 -c 4 2001:4860:4860::8888

# 测试 IPv6 HTTPS
curl -6 -I https://www.google.com

如果上述命令不通,先解决网络层问题(检查 VPS 控制台是否开启 IPv6、路由配置、防火墙规则等),否则后面配置再多也没用。

检测流媒体解锁状态

使用一键脚本检测当前 IP 的流媒体解锁情况:

bash <(curl -L -s check.unlock.media)

这个脚本会分别测试 IPv4 和 IPv6 出口对各大流媒体平台的解锁状态。如果你发现 IPv6 的解锁结果明显优于 IPv4,那就更有理由把流量往 IPv6 上引。

核心概念:domain_strategy

sing-box 的出站(outbound)支持 domain_strategy 参数,用于控制域名解析策略:

策略行为
prefer_ipv4优先 A 记录,失败回退 AAAA
prefer_ipv6优先 AAAA 记录,失败回退 A
ipv4_only只用 A 记录,无 A 则失败
ipv6_only只用 AAAA 记录,无 AAAA 则失败
  • 默认出站设置 prefer_ipv6:大部分流量优先走 IPv6,保留 IPv4 作为兜底
  • Netflix 专用出站设置 ipv6_only:强制走 IPv6,不回退

配置:全局 IPv6 优先

最简单的做法是在默认的 direct 出站上加一个 domain_strategy

{
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct",
      "domain_strategy": "prefer_ipv6"
    }
  ],
  "route": {
    "auto_detect_interface": true,
    "final": "direct"
  }
}

这样所有走 direct 出站的流量都会优先尝试 IPv6。如果目标域名没有 AAAA 记录或 IPv6 不通,会自动回退到 IPv4,不影响正常使用。

进阶:Netflix 强制 IPv6

如果想对 Netflix 更激进一点——强制只走 IPv6,不要回退——可以单独定义一个出站,并用规则集把 Netflix 流量指过去。

新增 IPv6 专用出站

{
  "outbounds": [
    {
      "type": "direct",
      "tag": "IPv6-only",
      "domain_strategy": "ipv6_only"
    },
    {
      "type": "direct",
      "tag": "direct",
      "domain_strategy": "prefer_ipv6"
    }
  ]
}

配置 Netflix 规则集

{
  "route": {
    "rules": [
      {
        "rule_set": [
          "geoip-netflix",
          "geosite-netflix"
        ],
        "outbound": "IPv6-only"
      }
    ],
    "rule_set": [
      {
        "tag": "geoip-netflix",
        "type": "remote",
        "format": "binary",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/refs/heads/sing/geo/geoip/netflix.srs",
        "download_detour": "direct",
        "update_interval": "1d"
      },
      {
        "tag": "geosite-netflix",
        "type": "remote",
        "format": "binary",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/refs/heads/sing/geo/geosite/netflix.srs",
        "download_detour": "direct",
        "update_interval": "1d"
      }
    ],
    "auto_detect_interface": true,
    "final": "direct"
  }
}

说明

  • 双规则集geoip-netflix 匹配 Netflix 服务器 IP 段,geosite-netflix 匹配 Netflix 相关域名,双保险。
  • 规则集来源:使用 MetaCubeX 维护的规则集,.srs 是 sing-box 专用的二进制格式,体积小、加载快。
  • download_detour:规则集下载走 direct,避免下载本身被绕来绕去。
  • update_interval:每天自动更新一次规则集。

重启 sing-box 并检查状态:

systemctl restart sing-box
systemctl status sing-box

注意事项

Outbound Tag 不能重复

sing-box 启动时会校验所有 outbound 的 tag 必须唯一。如果你用的是一键脚本安装(如 233boy),可能存在"主配置 + 子配置合并"的机制,需要注意:

  • 不要在多个配置文件里定义同名的 tag
  • 典型报错:duplicate outbound/endpoint tag: direct
  • 解决:统一在主配置里定义,子配置里不要重复

ipv6_only 的风险

ipv6_only 意味着"没有 AAAA 记录就直接失败",不会回退 IPv4。如果 Netflix 某些边缘节点或 CDN 在你的网络环境下拿不到 AAAA,访问就会中断。

如果遇到问题,可以把 Netflix 的出站策略从 ipv6_only 改回 prefer_ipv6

客户端配置(Clash/Mihomo)

如果你的客户端使用 Clash 或 Mihomo,需要确保域名是在远端(服务器侧)解析,而不是在本地解析。否则 domain_strategy 就失效了——因为流量到达 sing-box 时已经是 IP 地址,服务器无法再根据域名决定走 IPv4 还是 IPv6。

客户端模式域名解析位置客户端是否需要配置
Fake-IP远端无需额外配置
Real-IP本地需开启 sniffer + override-destination

Fake-IP 模式(推荐)

如果客户端使用 Fake-IP 模式,域名天然就是在远端解析的:

  • 客户端 DNS 返回一个假的 IP(如 198.18.x.x
  • 实际域名随连接一起发送到服务器
  • 服务器侧的 sing-box 拿到的是域名,domain_strategy 正常生效

Fake-IP 模式下无需额外配置,开箱即用。

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  # ...

Real-IP 模式(需开启嗅探)

如果客户端使用 Real-IP(redir-host)模式,DNS 查询会在本地完成,流量到达服务器时已经是 IP 地址。这种情况下需要在 Mihomo 客户端开启流量嗅探(sniffer),从流量中还原出域名并覆盖目标地址。

在 Mihomo 配置中添加:

sniffer:
  enable: true
  override-destination: true
  sniff:
    HTTP:
      ports: [80, 8080-8880]
    TLS:
      ports: [443, 8443]
    QUIC:
      ports: [443, 8443]

关键参数

  • enable: true:开启流量嗅探
  • override-destination: true:用嗅探到的域名覆盖原始目标地址,这样服务端的 domain_strategy 才能基于域名工作

注意override-destination 会改变连接的目标地址。如果你的规则依赖 IP 匹配(如 GEOIP),需要确保规则顺序正确,或者同时配置 GEOSITE 规则。