另类的 sin-box 客户端,可能是你 Windows 端最好的选择

sing-box 全套观看指南已经完全,如果想从全局了解知识体系的,请先到观看指南中浏览各文章的知识点

另类的 sin-box 客户端,可能是你 Windows 端最好的选择

上一篇写的 《Windows 代理客户端的选择》 中,阐述了为何最终会全面拥抱选择 sing-box 。不过在使用过程中,还是有点小问题,比如 cmd 框无法关闭,稳定性也稍微差了些,对于新手添加自定义规则稍显麻烦。

方案介绍以及优劣势

v2rayN 6.55 版本中,更新了对于自定义服务器配置的兼容。之前一直是提取自定义服务器配置中的关键信息,然后根据选择的内核,生成适合该内核的客户端配置。这样就会导致 sing-box 自身的某些功能无法支持,所以也是为什么全面拥抱选择 sing-box 的原因。不过 v2rayN 6.55 版本中,完全拷贝了自定义配置内容,这样就非常有意思了,完全可以解决上述的一些 sing-box 的小问题,同时还继续了 v2rayN 图形化管理界面。

[!IMPORTANT]

本套方案的优势!

sing-box 自身的功能全部支持,且支持 v2rayN 的图形客户端管理,以及 v2rayN 的分流模块功能!

  1. 最新最全的协议支持;
  2. selector 和 urltest;
  3. 自定义和第三方整理的规则集;
  4. clash_api 图形化管理界面;
  5. 某些特性功能,比如:ECH、Brutal 等等。

v2rayN 客户端的优势

  1. 图形化客户端;
  2. 分流规则方便自定义;
  3. 兼容 sing-box 自定义配置,同时可以使用官方图形化服务器的添加方式;
  4. 导入属于内核的配置文件,方便不想写配置的懒人 CTRL + C。

解决的痛点

  1. CDM 命令框无法关闭;

  2. sing-box 内核单独使用,稳定性稍差;

  3. 新手写 json 文档添加路由规则稍微麻烦些。

[!IMPORTANT]

本套方案的缺点!

其实并不是方案有什么漏洞,只是因为从新手来说,sing-box 官方尚不支持解析器和 selector 的关键词筛选。

  1. 解析器,不支持内部订阅;
  2. selector 关键词筛选,需要手动添加,稍显麻烦。

当然了,这也只是 sing-box 自身无法解决,其实现在第三方已经支持在线订阅转换了,所以上述两个问题也不是问题!

工作的逻辑

因为也是从新手过来的,虽然脱离了新手村,但也就只是刚刚脱离出去。对于新手上手学习的痛楚是很了解的,各位大佬的分享新手依旧难以看懂,所以还是希望帮助想要入门的新手了解一下整个工作逻辑,方便可以做出适合自己的自定义配置。

v2rayN 客户端的工作逻辑

研究 sing-box 之前,对于各个客户端虽然可以熟练使用,但是它们运行的逻辑和原理其实不了解。最近一周的研究,然后又看了一下 v2rayN 的配置文件,对于它的工作逻辑有了个初步了解。

v2rayN 在选择一个节点后,会在 guiConfigs 文件夹中生成两个配置文件,config.json 和 configPre.json ,config.json 是出站的配置文件,你的节点信息就生成在这里。当然还有你 v2rayN 客户端设置的路由规则,日志,DNS模块等等,就不详细介绍了。configPre.json 也是类似的。不过 configPre.json 应该只为 xray 内核服务, config.json 是根据你选择的内核服务。 如果你只是使用 v2rayN 提供的服务器内核,那么工作的应该只有 config.json。有趣的点来了,一但使用自定义内核的配置,configPre.json 也随之修改。出站类型选择了 socks5 的本地 1080 端口(可以自定义),之前版本 v2rayN 会自己提取节点信息再生成一个全新的 config.json 配置文件,现在是直接复制过来。

通过上述的描述,不知道你看了有没有晕,没晕的话说明这个简单的工作逻辑能明白了。使用 v2rayN 提供的服务器内核,浏览器的数据来到 v2rayN 中,通过 config.json 文件中的路由模块、DNS模块等等,就直接发出。但是如果使用自定义内核的配置,浏览器数据先来到为 xray 工作的 configPre.json 中,通过 configPre.json 文件中的路由模块、DNS模块判断,如果是直连,那么就由 xray 直接转发到路由器中;如果是广告,那么就由 xray 直接拒绝;如果是代理,那么才由 xray 转发到本地 1080 端口,也就是自定义内核的配置 configPre.json 文件中,然后通过 configPre.json 文件中的路由模块、DNS模块再来一遍,最终数据的走向由自定义内核通过路由模块来决定。当然也只是我粗浅的理解,因为也只是刚发现,有错误的地方希望大佬指正出来。

看到这里还没晕的话,恭喜你大概已经明白接下来这套配置的原理了。因为在后面的配置里,会决定路由的配置方案与 IP 类规则的解析策略,所以上面不厌其烦给大家讲解数据的走向,也是方便你能明白为什么要这么配置!

本套方案路由模块的配置

因为现在 v2rayN 自定义配置中完全兼容了自己配置的参数,所以路由就完全可以由你来决定。

  1. v2rayN 接管整个数据的路由;
  2. v2rayN 和 自定义内核相互协作通过接管数据的路由;
  3. 自定义内核接管所有数据的路由。

综合考虑,还是选择第二套方案来执行,因为这样既保留 v2rayN 中官方服务器使用节点时的路由,也可以确保 sing-box 规则集路由的优势;

因为之前一直会强调 sing-box 规则集优势,相对于 xray 系列使用 GEO 数据库来管理路由,Clash 系列分流规则集具有更灵活的配置方式和更好的性能。sing-box 如今很好的继承了 Clash 系列分流规则集的优势。在 v2rayN 的规则分流策略中,推荐使用 Asls,这样只匹配域名的规则,跳过了 IP 类规则,相当于 Clash 的 no-resolve,在自定义配置的路由过程中,避免了不必要的 DNS 解析时间,代理访问的话,速度会更快些。

为什么这样设置,简单解释一下。在 v2rayN 的 geosite 的数据库中,其实包含了绝大多数国内的网站域名,所以匹配效率相当高,国内的域名访问基本由 xray 转发直连,广告的话直接拒绝。IP 类规则集的匹配在自定义配置中,我们这里选择跳过,避免 DNS 解析带来的时间开销。剩下来到自定义配置内核的数据只有一些小众网站域名和国外的域名,这个时候就发挥了 sing-box 规则集优势,国外域名匹配到规则集走代理,日常自己收集域名随意,小众网站的域名匹配到 IP 类规则再域名 DNS 解析走直连,国外小众网站域名什么都没匹配到的话,走兜底也就是代理策略。这样整套下来,匹配效率非常高。当然并不能完全解决 DNS 污染的问题,不过 DNS 泄露问题时完全解决了。

配置文件

[!NOTE]

自定义配置中的入站需要修改,其他不需要修改也行!

新手款

承接之前分享的全平台整套配置,路由配置和机场用户看后面;

{
  "log": {
    "disabled": false,
    "level": "warn",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "default-dns",
        "address": "223.5.5.5",
        "detour": "direct-out"
      },
      {
        "tag": "system-dns",
        "address": "local",
        "detour": "direct-out"
      },
      {
        "tag": "block-dns",
        "address": "rcode://name_error"
      },
      {
        "tag": "google",
        "address": "https://dns.google/dns-query",
        "address_resolver": "default-dns",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only",
        "client_subnet": "1.0.1.0"
      }
    ],
    "rules": [
      {
        "outbound": "any",
        "server": "default-dns"
      },
      {
        "query_type": "HTTPS",
        "server": "block-dns"
      },
      {
        "clash_mode": "direct",
        "server": "default-dns"
      },
      {
        "clash_mode": "global",
        "server": "google"
      },
      {
        "rule_set": "cnsite",
        "server": "default-dns"
      }, 
      {
        "rule_set": "cnsite-!cn", 
        "server": "google"
      }
    ],
    "strategy": "ipv4_only",
    "disable_cache": false,
    "disable_expire": false,
    "independent_cache": false,
    "final": "google"
  },
  "inbounds": [
    {
      "type": "mixed", 
      "tag": "mixed-in", 
      "listen": "::", 
      "listen_port": 1080, 
      "sniff": true, 
      "set_system_proxy": false
    }
  ],
  "outbounds": [
    {
      "type": "shadowsocks",
      "tag": "ss-6336",
      "server": "000.000.000.000", 
      "server_port": 37065,
      "method": "2022-blake3-aes-256-gcm", 
      "password": "ZBdsPBMPLM4vkK7yoS7jQjZmIoqmet3PWhrzxwLharY=",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": true,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "vless",
      "tag": "vless-8620",
      "server": "000.000.000.000", 
      "server_port": 60316,
      "uuid": "695dcbdb-1499-482d-9741-70c1cbac4710", 
      "flow": "",
      "tls": {
        "enabled": true,
        "server_name": "icloud.cdn-apple.com", 
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        },
        "reality": {
          "enabled": true,
          "public_key": "K_wz6EbgSbq_Qr5udscvxJF9DtdSrkcWe8gXs7ynUQg",
          "short_id": "429e7bbfcca430c4"
        }
      },
      "multiplex": {
        "enabled": true,
        "protocol": "smux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": true,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-2995",
      "server": "000.000.000.000", 
      "server_port": 61703,
      "uuid": "4074d046-1726-49cc-ad45-272b2c664f29",
      "transport": {
        "type": "ws",
        "path": "/u4yE78Ky",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com"
      },
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-6046",
      "server": "000.000.000.000", 
      "server_port": 39720,
      "uuid": "7e26c9f6-f993-4865-8488-6b02e634a6d7",
      "transport": {
        "type": "ws",
        "path": "/FQgD78nq",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "hysteria2",
      "tag": "Hysteria2-1060",
      "server": "000.000.000.000", 
      "server_port": 61970,
      "up_mbps": 500, 
      "down_mbps": 500,
      "obfs": {
        "type": "salamander",
        "password": "41nPRX39cSt6"
      },
      "password": "WqzGKnmZ9UaB",
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com", 
        "alpn": [
          "h3"
        ]
      }
    },
    {
      "type": "tuic",
      "tag": "tuic-5564",
      "server": "000.000.000.000", 
      "server_port": 34927,
      "uuid": "1f1f2aeb-5ed4-4a0f-ae4a-374da3b569f2", 
      "password": "NYWqN/95TIpT", 
      "congestion_control": "bbr",
      "udp_relay_mode": "native",
      "zero_rtt_handshake": false,
      "heartbeat": "10s",
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com", 
        "alpn": [
          "h3"
        ]
      }
    },
    {
      "type": "shadowsocks",
      "tag": "ss-5455",
      "server": "000.000.000.000", 
      "server_port": 46728,
      "method": "2022-blake3-aes-256-gcm", 
      "password": "yEjWgksYvlvzqQY0etf6BUikYk4nfO0M8rqFERDKpgM=",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": true
      }
    },
    {
      "type": "vless",
      "tag": "vless-9777",
      "server": "000.000.000.000", 
      "server_port": 61728,
      "uuid": "30864c64-c409-492e-9879-4027145103ad", 
      "flow": "xtls-rprx-vision",
      "tls": {
        "enabled": true,
        "server_name": "icloud.cdn-apple.com", 
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        },
        "reality": {
          "enabled": true,
          "public_key": "-cPRCULJ4T6yZUR-Cmyuwon_HyMKQY6_6KWVCV4wbDc",
          "short_id": "4cae74ba0ee703cc"
        }
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-1219",
      "server": "000.000.000.000", 
      "server_port": 21878,
      "uuid": "ff2360f1-aa10-48a5-b95a-8a26d2de2d8a",
      "transport": {
        "type": "ws",
        "path": "/fCf5EnoN",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com"
      },
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-7569",
      "server": "000.000.000.000", 
      "server_port": 2514,
      "uuid": "b2f63134-1dbc-4ce5-b37b-5587b01e4f7d",
      "transport": {
        "type": "ws",
        "path": "/PPiEXZH7",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false
      }
    },
    {
      "type": "urltest",
      "tag": "auto",
      "outbounds": [
        "ss-6336", 
        "vless-8620", 
        "vmess-2995", 
        "vmess-6046", 
        "Hysteria2-1060", 
        "tuic-5564", 
        "ss-5455", 
        "vless-9777", 
        "vmess-1219", 
        "vmess-7569"
      ],
      "url": "https://www.gstatic.com/generate_204",
      "interval": "1m",
      "tolerance": 50,
      "interrupt_exist_connections": false
    },
    {
      "type": "selector",
      "tag": "select",
      "outbounds": [
        "ss-6336", 
        "vless-8620", 
        "vmess-2995", 
        "vmess-6046", 
        "Hysteria2-1060", 
        "tuic-5564", 
        "ss-5455", 
        "vless-9777", 
        "vmess-1219", 
        "vmess-7569", 
        "auto"
      ],
      "default": "auto",
      "interrupt_exist_connections": false
    },
    {
      "type": "direct",
      "tag": "direct-out",
      "routing_mark": 100
    },
    {
      "type": "block",
      "tag": "block-out"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    }
  ],
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "protocol": "quic",
        "outbound": "block-out"
      },
      {
        "clash_mode": "block",
        "outbound": "block-out"
      },
      {
        "clash_mode": "direct",
        "outbound": "direct-out"
      },
      {
        "clash_mode": "global",
        "outbound": "select"
      },
      {
        "rule_set": [
          "cnip",
          "cnsite"
        ],
        "outbound": "direct-out"
      }, 
      {
        "rule_set": "cnsite-!cn", 
        "outbound": "select"
      }
    ],
    "rule_set": [
      {
        "type": "remote", 
        "tag": "cnsite-!cn", 
        "format": "binary", 
        "url": "https://github.com/SagerNet/sing-geosite/raw/rule-set/geosite-geolocation-!cn.srs", 
        "download_detour": "auto"
      }, 
      {
        "type": "remote",
        "tag": "cnip",
        "format": "binary",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo-lite/geoip/cn.srs",
        "download_detour": "auto"
      },
      {
        "type": "remote",
        "tag": "cnsite",
        "format": "binary",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo-lite/geosite/cn.srs",
        "download_detour": "auto"
      }
    ],
    "auto_detect_interface": true,
    "final": "select"
  },
  "experimental": {
    "cache_file": {
      "enabled": true, 
      "path": "cache.db", 
      "store_fakeip": true
    },
    "clash_api": {
      "external_controller": "127.0.0.1:9090",
      "external_ui": "ui", 
      "external_ui_download_url": "", 
      "external_ui_download_detour": "auto",
      "default_mode": "rule"
    }
  }
}

机场用户以及自定义路由

{
  "log": {
    "disabled": false,
    "level": "warn",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "default-dns",
        "address": "223.5.5.5",
        "detour": "direct-out"
      },
      {
        "tag": "system-dns",
        "address": "local",
        "detour": "direct-out"
      },
      {
        "tag": "block-dns",
        "address": "rcode://name_error"
      },
      {
        "tag": "google",
        "address": "https://dns.google/dns-query",
        "address_resolver": "default-dns",
        "address_strategy": "ipv4_only",
        "strategy": "ipv4_only",
        "client_subnet": "1.0.1.0"
      }
    ],
    "rules": [
      {
        "outbound": "any",
        "server": "default-dns"
      },
      {
        "query_type": "HTTPS",
        "server": "block-dns"
      },
      {
        "clash_mode": "direct",
        "server": "default-dns"
      },
      {
        "clash_mode": "global",
        "server": "google"
      },
      {
        "rule_set": "cnsite",
        "server": "default-dns"
      }, 
      {
        "rule_set": "cnsite-!cn", 
        "server": "google"
      }
    ],
    "strategy": "ipv4_only",
    "disable_cache": false,
    "disable_expire": false,
    "independent_cache": false,
    "final": "google"
  },
  "inbounds": [
    {
      "type": "mixed", 
      "tag": "mixed-in", 
      "listen": "::", 
      "listen_port": 1080, 
      "sniff": true, 
      "set_system_proxy": false
    }
  ],
  "outbounds": [
    {
      "type": "shadowsocks",
      "tag": "ss-6336",
      "server": "000.000.000.000", 
      "server_port": 37065,
      "method": "2022-blake3-aes-256-gcm", 
      "password": "ZBdsPBMPLM4vkK7yoS7jQjZmIoqmet3PWhrzxwLharY=",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": true,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "vless",
      "tag": "vless-8620",
      "server": "000.000.000.000", 
      "server_port": 60316,
      "uuid": "695dcbdb-1499-482d-9741-70c1cbac4710", 
      "flow": "",
      "tls": {
        "enabled": true,
        "server_name": "icloud.cdn-apple.com", 
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        },
        "reality": {
          "enabled": true,
          "public_key": "K_wz6EbgSbq_Qr5udscvxJF9DtdSrkcWe8gXs7ynUQg",
          "short_id": "429e7bbfcca430c4"
        }
      },
      "multiplex": {
        "enabled": true,
        "protocol": "smux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": true,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-2995",
      "server": "000.000.000.000", 
      "server_port": 61703,
      "uuid": "4074d046-1726-49cc-ad45-272b2c664f29",
      "transport": {
        "type": "ws",
        "path": "/u4yE78Ky",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com"
      },
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-6046",
      "server": "000.000.000.000", 
      "server_port": 39720,
      "uuid": "7e26c9f6-f993-4865-8488-6b02e634a6d7",
      "transport": {
        "type": "ws",
        "path": "/FQgD78nq",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false,
        "brutal": {
          "enabled": true,
          "up_mbps": 500,
          "down_mbps": 500
        }
      }
    },
    {
      "type": "hysteria2",
      "tag": "Hysteria2-1060",
      "server": "000.000.000.000", 
      "server_port": 61970,
      "up_mbps": 500, 
      "down_mbps": 500,
      "obfs": {
        "type": "salamander",
        "password": "41nPRX39cSt6"
      },
      "password": "WqzGKnmZ9UaB",
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com", 
        "alpn": [
          "h3"
        ]
      }
    },
    {
      "type": "tuic",
      "tag": "tuic-5564",
      "server": "000.000.000.000", 
      "server_port": 34927,
      "uuid": "1f1f2aeb-5ed4-4a0f-ae4a-374da3b569f2", 
      "password": "NYWqN/95TIpT", 
      "congestion_control": "bbr",
      "udp_relay_mode": "native",
      "zero_rtt_handshake": false,
      "heartbeat": "10s",
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com", 
        "alpn": [
          "h3"
        ]
      }
    },
    {
      "type": "shadowsocks",
      "tag": "ss-5455",
      "server": "000.000.000.000", 
      "server_port": 46728,
      "method": "2022-blake3-aes-256-gcm", 
      "password": "yEjWgksYvlvzqQY0etf6BUikYk4nfO0M8rqFERDKpgM=",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": true
      }
    },
    {
      "type": "vless",
      "tag": "vless-9777",
      "server": "000.000.000.000", 
      "server_port": 61728,
      "uuid": "30864c64-c409-492e-9879-4027145103ad", 
      "flow": "xtls-rprx-vision",
      "tls": {
        "enabled": true,
        "server_name": "icloud.cdn-apple.com", 
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        },
        "reality": {
          "enabled": true,
          "public_key": "-cPRCULJ4T6yZUR-Cmyuwon_HyMKQY6_6KWVCV4wbDc",
          "short_id": "4cae74ba0ee703cc"
        }
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-1219",
      "server": "000.000.000.000", 
      "server_port": 21878,
      "uuid": "ff2360f1-aa10-48a5-b95a-8a26d2de2d8a",
      "transport": {
        "type": "ws",
        "path": "/fCf5EnoN",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "tls": {
        "enabled": true,
        "insecure": true,
        "server_name": "bing.com"
      },
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false
      }
    },
    {
      "type": "vmess",
      "tag": "vmess-7569",
      "server": "000.000.000.000", 
      "server_port": 2514,
      "uuid": "b2f63134-1dbc-4ce5-b37b-5587b01e4f7d",
      "transport": {
        "type": "ws",
        "path": "/PPiEXZH7",
        "max_early_data": 2048,
        "early_data_header_name": "Sec-WebSocket-Protocol"
      }, 
      "security": "auto",
      "alter_id": 0,
      "packet_encoding": "xudp",
      "multiplex": {
        "enabled": true,
        "protocol": "h2mux",
        "max_connections": 1,
        "min_streams": 4,
        "padding": false
      }
    },
  
  
    
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息    
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息    
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息    
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息    
// 机场用户配置信息
// 机场用户配置信息
// 机场用户配置信息    
    
       
  
    {
      "type": "urltest",
      "tag": "auto",
      "outbounds": [
        "ss-6336", 
        "vless-8620", 
        "vmess-2995", 
        "vmess-6046", 
        "Hysteria2-1060", 
        "tuic-5564", 
        "ss-5455", 
        "vless-9777", 
        "vmess-1219", 
        "vmess-7569",
// 机场用户节点 tag
// 机场用户节点 tag
// 机场用户节点 tag    
// 机场用户节点 tag
// 机场用户节点 tag
// 机场用户节点 tag    
// 机场用户节点 tag
// 机场用户节点 tag
// 机场用户节点 tag
      ],
      "url": "https://www.gstatic.com/generate_204",
      "interval": "1m",
      "tolerance": 50,
      "interrupt_exist_connections": false
    },
    {
      "type": "selector",
      "tag": "select",
      "outbounds": [
        "ss-6336", 
        "vless-8620", 
        "vmess-2995", 
        "vmess-6046", 
        "Hysteria2-1060", 
        "tuic-5564", 
        "ss-5455", 
        "vless-9777", 
        "vmess-1219", 
        "vmess-7569", 
// 机场用户节点 tag
// 机场用户节点 tag
// 机场用户节点 tag    
// 机场用户节点 tag
// 机场用户节点 tag
// 机场用户节点 tag    
// 机场用户节点 tag
// 机场用户节点 tag
// 机场用户节点 tag
        "auto"
      ],
      "default": "auto",
      "interrupt_exist_connections": false
    },
    {
      "type": "direct",
      "tag": "direct-out",
      "routing_mark": 100
    },
    {
      "type": "block",
      "tag": "block-out"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    }
  ],
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "protocol": "quic",
        "outbound": "block-out"
      },
      {
        "clash_mode": "block",
        "outbound": "block-out"
      },
      {
        "clash_mode": "direct",
        "outbound": "direct-out"
      },
      {
        "clash_mode": "global",
        "outbound": "select"
      },
####################################################################################
      {									//广告屏蔽
        "outbound": "block-out",
        "domain": [
          "discovery.razerapi.com",
          "services.gfe.nvidia.com"
        ],
        "domain_suffix": [
          ".discovery.razerapi.com",
          ".services.gfe.nvidia.com"
        ],
        "rule_set": [
          "geosite-category-ads-all"
        ]
      },
      {									//代理访问
        "outbound": "select",
        "domain": [
          "vercel.com",
          "google.com"
        ],
        "domain_suffix": [
          ".vercel.com",
          ".google.com"
        ]
      },
      {									//人工智能解锁
        "outbound": "select",
        "domain": [
          "chat.openai.com.cdn.cloudflare.net",
          "o33249.ingest.sentry.io",
          "openaiapi-site.azureedge.net",
          "openaicom.imgix.net"
        ]
      },
      {									//直连
        "outbound": "direct-out",
        "domain": [
          "bilibili.com",
          "baidu.com"
        ],
        "domain_suffix": [
          ".bilibili.com",
          ".baidu.com"
        ],
        "rule_set": [
          "geosite-115"
        ]
      },
      {
        "rule_set": [
          "geosite-apple",
          "geoip-apple",
          "geosite-youtube",
          "geosite-google",
          "geosite-spotify",
          "geosite-reddit"
        ],
        "outbound": "select"
      }, 
      {
        "rule_set": [
          "geosite-openai",
          "geosite-netflix",
          "geosite-disney"
        ],
        "outbound": "aiunlock"
      },      
      
####################################################################################       
      {
        "rule_set": [
          "cnip",
          "cnsite"
        ],
        "outbound": "direct-out"
      }, 
      {
        "rule_set": "cnsite-!cn", 
        "outbound": "select"
      }
    ],
    "rule_set": [
      {
        "type": "remote", 
        "tag": "geosite-category-ads-all", 
        "format": "binary", 
        "url": "https://github.com/SagerNet/sing-geosite/raw/rule-set/geosite-category-ads-all.srs", 
        "download_detour": "select"
      },
      {
        "type": "remote", 
        "tag": "geosite-115", 
        "format": "binary", 
        "url": "https://github.com/SagerNet/sing-geosite/raw/rule-set/geosite-115.srs", 
        "download_detour": "select"
      },
      {
        "type": "remote", 
        "tag": "geosite-apple", 
        "format": "binary", 
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo-lite/geoip/apple.srs", 
        "download_detour": "select"
      }, 
      {
        "type": "remote", 
        "tag": "geoip-apple", 
        "format": "binary", 
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo-lite/geosite/apple.srs", 
        "download_detour": "select"
      },
      {
        "type": "remote", 
        "tag": "cnsite-!cn", 
        "format": "binary", 
        "url": "https://github.com/SagerNet/sing-geosite/raw/rule-set/geosite-geolocation-!cn.srs", 
        "download_detour": "select"
      }, 
      {
        "type": "remote",
        "tag": "cnip",
        "format": "binary",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo-lite/geoip/cn.srs",
        "download_detour": "select"
      },
      {
        "type": "remote",
        "tag": "cnsite",
        "format": "binary",
        "url": "https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo-lite/geosite/cn.srs",
        "download_detour": "select"
      },
####################################################################################
      {						//后面都是添加的,只要上面 rules 有引用,必须要有对应 rule_set
        "tag": "geosite-openai",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-openai.srs",
        "download_detour": "select"
      },
      {
        "tag": "geosite-netflix",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-netflix.srs",
        "download_detour": "select"
      },
      {
        "tag": "geosite-disney",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-disney.srs",
        "download_detour": "select"
      },
      {
        "tag": "geosite-youtube",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-youtube.srs",
        "download_detour": "select"
      },
      {
        "tag": "geosite-google",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google.srs",
        "download_detour": "select"
      },
      {
        "tag": "geosite-spotify",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-spotify.srs",
        "download_detour": "select"
      },
      {
        "tag": "geosite-reddit",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-reddit.srs",
        "download_detour": "select"
      }
    ],
    "auto_detect_interface": true,
    "final": "select"
  },
  "experimental": {
    "cache_file": {
      "enabled": true, 
      "path": "cache.db", 
      "store_fakeip": true
    },
    "clash_api": {
      "external_controller": "127.0.0.1:9090",
      "external_ui": "ui", 
      "external_ui_download_url": "", 
      "external_ui_download_detour": "select",
      "default_mode": "rule"
    }
  }
}

如何使用

v2rayN 下载最新测试版本 6.55,添加到自定义的 sing-box 内核中,端口 1080,不作过于小白的操作讲解。

机场用户以及自定义路由的配置,需要大家根据自己实际情况修改,需要配置的就是机场订阅节点的添加,selector 标签的添加,手动添加的自定义路由,各种出站方式都有,还有规则集的引用等等,大概就这些。

v2rayN 中就可以进行路由管理,对了记得路由模式选择 Asls,sing-box 配置中路由你也可以手动添加。通过网页管理节点或者应用分流的出站节点等等。

机场用户 sing-box 订阅转换

因为我是懒狗,所以不想一个个添加节点,订阅转换是个很好的选择。自身日常使用 sub-store,也是支持转换的,不过少了 selector 标签的输出,需要手动添加,对于懒人十分的不友好。分享几种订阅转换方式,包含节点安全和便利性,如需两者兼备,需要自建。

在线订阅转换

https://sing-box-subscribe-doraemon.vercel.app/
https://sing-box.mikutabs.eu.org/

使用方式:看官方教程,或者在链接后面加上

https://sing-box.mikutabs.eu.org/+++++config/+++++你自己的订阅链接
+++++ 记得删除

如果对在线转换担心泄露节点,小白可以直接先订阅转换之后,把对应信息拷贝到配置文件中,重置一下机场订阅链接,会生成新的参数,再一键替换为新订阅信息的参数即可。

当然你完全可以使用机场提供的配置内容到 v2rayN 自定义的配置中,记得修改一下入站方式以及报错的一些问题也是可以的。

Windows本地转换

python版本

python我懒得装了,就不分享了,需要的自己安装测试,要比 exe 版本更好些,exe 版本有很多兼容问题。

项目地址:
https://github.com/Toperlock/sing-box-subscribe/tree/main
https://github.com/krisstibex/sing-box-sub-converter
exe版本
项目地址:
https://github.com/nitezs/sub2sing-box
启动:
sub2sing-box server

网页打开: 
http://127.0.0.1:8080/

模板: 可以使用项目下载的本地文件,也可以找网上大佬提供的
templates\tun-fakeip-without-dns-leaks.json

订阅链接:
xxxxxxxxxxxxxxxx订阅链接xxxxxxxxxxxxxxxx

节点分享链接:
一行一个

最下面生成链接中到浏览器下载配置文件

把下载的配置文件中对应信息拷贝到自定义的配置文件中。

[!NOTE]

exe 版本协议兼容有很多问题,只是个参考,建议还是用 python 版本或者在线转换!

exe 版本比较兼容常规的协议,不过机场一般协议都有普遍性,比如 ss trojan vmess 协议。如果订阅链接无法成功的话,可以把订阅链接通过 v2rayN 导入,直接把节点复制到节点分享链接中,一般没问题!

Docker 版本

自建,上面提供的仓库有的有,很简单。

如果你只是移动端用户,不怎么使用电脑端,建议还是在线转换,或者直接使用在线转换到移动端的 sing-box 即可!

好了,以上基本是无缝过渡到 Windows 端 sing-box 的方式,算是把 v2ary 系列和 Clash 系列的优势继承过来了,新手建议还是学习思路,配置什么的,不太重要!

5、另类的 sin-box 客户端,可能是你 Windows 端最好的选择.md (37.4 KB)

10 个赞

顶一个

先mark晚上慢慢看 :face_in_clouds:

1 个赞

现在clash也没太大的问题,没什么需求换啊

折腾罢了,以前的小飞机通过添加插件混淆,其实也可以继续使用。

好像不支持lb模式,如果支持了就更好了

目前确实不支持,一般只有线路不好才需要,已经很久不用了。

From #optimize to 开发调优