Search: #节点名

  1. 自建节点证书相关说明更新▎覆盖用于验证证书的域名,但不会改变 SNI免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名 Xray: verifyPeerCertByName, URI 上叫 vcn mihomo: name-cert-verify Surge: server-cert-verify-name Sub-Store 中可按上述输入写字段, 或使用脚本操作 $server['name-cert-verify'] = 'b.com' 原消息 服务器合集 合集 恰饭推荐 群组 联系推广 #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL

    自建节点证书相关说明更新

    覆盖用于验证证书的域名,但不会改变 SNI

    免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名

    Xray: verifyPeerCertByName, URI 上叫 vcn
    mihomo: name-cert-verify
    Surge: server-cert-verify-name

    Sub-Store 中可按上述输入写字段, 或使用脚本操作 $server['name-cert-verify'] = 'b.com'

    原消息

    服务器合集 合集 恰饭推荐 群组 联系推广

    #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL

    • ❤️1
  2. Sub-Store Node.js 环境 TCP DNS 解析节点域名添加一个脚本操作 使用 此脚本 改下 DNS先临时用用吧 我在想要不要集成到 Sub-Store 后端: 2.26.0 前端: 2.19.0 Node.js 域名解析 已支持 TCP/UDP DNS Sub-Store 合集 合集 群组 恰饭 联系推广 #DNS #TCP #域名 #解析 #节点 #SubStore #脚本

    Sub-Store Node.js 环境 TCP DNS 解析节点域名

    添加一个脚本操作
    使用 此脚本 改下 DNS

    先临时用用吧 我在想要不要集成到 Sub-Store

    后端: 2.26.0 前端: 2.19.0 Node.js 域名解析 已支持 TCP/UDP DNS

    Sub-Store 合集 合集 群组 恰饭 联系推广

    #DNS #TCP #域名 #解析 #节点 #SubStore #脚本

    • ❤️1
  3. Sub-Store 对接 NodeGet 服务器流量信息更新: 修复 name 匹配逻辑 改为使用 NodeGet 配置的节点名感谢 @hyruleboss Link 佬的反馈 原消息 Sub-Store 合集 服务器合集 合集 群组 恰饭 联系推广 #流量 #节点 #服务器 #探针 #NodeGet #SubStore

    小一
    Sub-Store 对接 NodeGet 服务器流量信息 ▎操作 创建 JS Worker, 粘贴 此文件 内容 如图 1 创建环境变量 token 和 路由 ▎使用 Sub-Store 如图 2 位置填入 URL https://{你的后端域名}/worker-route/{本worker绑定的路由}?name=服务器名&total=1099511627776&reset_day=1 total 为总流量 周期计算逻辑如下: resetDay : 每月流量重置日 或 startDate :…
    Sub-Store 对接 NodeGet 服务器流量信息

    更新: 修复 name 匹配逻辑 改为使用 NodeGet 配置的节点名

    感谢 @hyruleboss Link 佬的反馈

    原消息

    Sub-Store 合集 服务器合集 合集 群组 恰饭 联系推广

    #流量 #节点 #服务器 #探针 #NodeGet #SubStore

  4. Sub-Store 对接 NodeGet 服务器流量信息▎操作创建 JS Worker, 粘贴 此文件 内容 如图 1 创建环境变量 token 和 路由▎使用Sub-Store 如图 2 位置填入 URL

    Sub-Store 对接 NodeGet 服务器流量信息

    ▎操作

    创建 JS Worker, 粘贴 此文件 内容

    如图 1 创建环境变量 token 和 路由

    ▎使用

    Sub-Store 如图 2 位置填入 URL
    https://{你的后端域名}/worker-route/{本worker绑定的路由}?name=服务器名&total=1099511627776&reset_day=1

    total 为总流量

    周期计算逻辑如下:
    resetDay : 每月流量重置日

    startDate : 订阅开始日期
    cycleDays : 订阅重置周期(单位: 天)

    效果如图 3

    抛砖引玉 有问题自己 AI 改下吧

    Sub-Store 合集 服务器合集 合集 群组 恰饭 联系推广

    #流量 #节点 #服务器 #探针 #NodeGet #SubStore

    • ❤️2
  5. NodeGet-SingBox-Panel: 面向 NodeGet Dashboard 的 sing-box 配置管理扩展何意味! 这么玩是吧• 支持 VLESS Reality、VMess、Trojan、Shadowsocks、TUIC、Hysteria2、AnyTLS、SOCKS 等多种协议配置• 可直接修改端口、UUID、密码、域名和 SNI,并查看 URL 信息• 集成 RealiTLScanner 与 RealityChecker,用于筛选 Reality 目标

    NodeGet-SingBox-Panel: 面向 NodeGet Dashboard 的 sing-box 配置管理扩展

    何意味! 这么玩是吧

    • 支持 VLESS Reality、VMess、Trojan、Shadowsocks、TUIC、Hysteria2、AnyTLS、SOCKS 等多种协议配置

    • 可直接修改端口、UUID、密码、域名和 SNI,并查看 URL 信息

    • 集成 RealiTLScanner 与 RealityChecker,用于筛选 Reality 目标

    https://github.com/eeviriyi/NodeGet-SingBox-Panel

    合集 群组 恰饭 联系推广

    #NodeGet #sing-box #代理工具 #节点管理 #Reality #GitHub

    • ❤️5
  6. Sub-Store 脚本提取机场订阅方案分享来自匿名群友大佬投稿 能处理 xor/aes-cbc 加密部分思路借鉴了 0xWans/Sub2Clash实操确实有点复杂,要会抓包,只能说提供一些思路了愿意折腾的人自己研究了匿名群友说最简单的方法是 docker 模拟 openwrt 环境安装机场 ipk+假的 mihomo 二进制直接输出订阅机场阅后即焚/私有客户端应对方案 Sub-Store 合集 频道资源合集 恰饭推荐 群组 联系推广 #Sub-Store #SubStore #脚本 #节点 #订阅 #脚本 #API #客户端 #阅后即焚

    Sub-Store 脚本提取机场订阅方案分享

    来自匿名群友大佬投稿 能处理 xor/aes-cbc 加密

    部分思路借鉴了 0xWans/Sub2Clash

    实操确实有点复杂,要会抓包,只能说提供一些思路了

    愿意折腾的人自己研究了

    匿名群友说最简单的方法是 docker 模拟 openwrt 环境安装机场 ipk+假的 mihomo 二进制直接输出订阅

    机场阅后即焚/私有客户端应对方案

    Sub-Store 合集 频道资源合集 恰饭推荐 群组 联系推广

    #Sub-Store #SubStore #脚本 #节点 #订阅 #脚本 #API #客户端 #阅后即焚
    归档.zip
    24.8 KB

    • ❤️2
  7. Sub-Store 更新⚙️ 后端: 2.21.95- 支持 sc-min-posts-interval-ms- 优化 VLESS URI 转换逻辑- 支持非标用法: VMess Base64 URI 末尾加 #节点名Shadowrocket 能接受这个格式, 但它没取末尾的节点名根据群友的需求, 若有末尾节点名 就只看末尾的 不看内部的节点名感谢群友 @Lokou14 的反馈承接频道日推/群日推广告有需要的老板可以私聊联系 Sub-Store 合集 频道资源合集 恰饭推荐 群组 联系推广 #SubStore #更新记录 #changlog #updates

    Sub-Store 更新

    ⚙️ 后端: 2.21.95

    - 支持 sc-min-posts-interval-ms

    - 优化 VLESS URI 转换逻辑

    - 支持非标用法: VMess Base64 URI 末尾加 #节点名

    Shadowrocket 能接受这个格式, 但它没取末尾的节点名
    根据群友的需求, 若有末尾节点名 就只看末尾的 不看内部的节点名

    感谢群友 @Lokou14 的反馈

    承接频道日推/群日推广告
    有需要的老板可以私聊联系


    Sub-Store 合集 频道资源合集 恰饭推荐 群组 联系推广

    #SubStore #更新记录 #changlog #updates

    • 🥰3
    • ❤️2
  8. Sub-Store 脚本 通过 API 自动登录获取订阅如 图 1, 图 2 所示 创建一个空的本地订阅, 并填入脚本如图 3 所以, 给这个脚本配置参数:config: 抓包机场客户端 App 得到一个用来获取实际接口地址的配置文件链接 一般可能为一个 JSON. 可能会有多个不同来源的, 选一个合适的即可user, password : 机场登录的用户名和密码ua: 除了订阅以外的请求的 User-AgentsubUA: 获取订阅的请求的 User-Agent保存, 获取一次查看后端日志可以看到 👀 API 地址: ===>xxx<===👀 登录获取到的 auth_data ===>yyy<===复制 ===>和<=== 中间的部分, 分别配置参数 api 和 auth_data 即可跳过登录流程暂不确定多久会失效成功后会将订阅流量信息和内容写入该订阅若获取订阅时出现异常, 将返回之前保存的内容有其他需求就自己 AI 改改(不接定制脚本链接机场阅后即焚应对方案 Sub-Store 合集 频道资源合集 恰饭推荐 群组 联系推广 #Sub-Store #SubStore #脚本 #节点 #订阅 #脚本 #API #客户端 #阅后即焚

    Sub-Store 脚本 通过 API 自动登录获取订阅

    如 图 1, 图 2 所示 创建一个空的本地订阅, 并填入脚本

    如图 3 所以, 给这个脚本配置参数:

    config: 抓包机场客户端 App 得到一个用来获取实际接口地址的配置文件链接 一般可能为一个 JSON. 可能会有多个不同来源的, 选一个合适的即可
    user, password : 机场登录的用户名和密码
    ua: 除了订阅以外的请求的 User-Agent
    subUA: 获取订阅的请求的 User-Agent

    保存, 获取一次
    查看后端日志可以看到
    👀 API 地址: ===>xxx<===
    👀 登录获取到的 auth_data ===>yyy<===

    复制 ===>和<=== 中间的部分, 分别配置参数 apiauth_data 即可跳过登录流程
    暂不确定多久会失效

    成功后会将订阅流量信息和内容写入该订阅
    若获取订阅时出现异常, 将返回之前保存的内容

    有其他需求就自己 AI 改改(
    不接定制

    脚本链接

    机场阅后即焚应对方案

    Sub-Store 合集 频道资源合集 恰饭推荐 群组 联系推广

    #Sub-Store #SubStore #脚本 #节点 #订阅 #脚本 #API #客户端 #阅后即焚

    • ❤️11
    • 👍3
    • 🔥1
    • 🤔1
  9. Sub-Store 小课堂: 域名解析多 IP 裂变节点🆕 更新1. 手动解析中也设置 _domain 字段方便之后使用2. 结构调整, 支持 ip + 名称 裂变3. 群友的一个小需求, 裂变后需要还保留一条原始域名的节点 原消息 Sub-Store 合集 频道资源合集 恰饭推荐 群组 #SubStore #Sub-Store #小课堂 #tips #域名解析 #裂变 #IP #节点

    Sub-Store 小课堂: 域名解析多 IP 裂变节点

    🆕 更新

    1. 手动解析中也设置 _domain 字段方便之后使用

    2. 结构调整, 支持 ip + 名称 裂变

    3. 群友的一个小需求, 裂变后需要还保留一条原始域名的节点

    原消息

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #SubStore #Sub-Store #小课堂 #tips #域名解析 #裂变 #IP #节点

    • ❤️1
  10. Sub-Store 单条订阅中拉取多条订阅并根据订阅设置节点名称如果是多个单条订阅 -> 组合订阅里给节点加单条订阅名称前缀, 参考这个需求类似这样: 订阅 url 1 对应 名称 1, 节点也要加前缀 [名称 1]目前单条订阅里是可以换行输入多条链接的 但是这样就没法分别配置 url 的名称如图 1 导入 评论区的文件改 图 2 和 图 3 的部分图 4 流量订阅信息是乱写的 娱乐一下 Sub-Store 合集 频道资源合集 恰饭推荐 群组 #Sub-Store #SubStore #脚本 #节点 #订阅 #名称

    Sub-Store 单条订阅中拉取多条订阅并根据订阅设置节点名称

    如果是多个单条订阅 -> 组合订阅里给节点加单条订阅名称前缀, 参考这个

    需求类似这样: 订阅 url 1 对应 名称 1, 节点也要加前缀 [名称 1]

    目前单条订阅里是可以换行输入多条链接的 但是这样就没法分别配置 url 的名称

    如图 1 导入 评论区的文件

    改 图 2 和 图 3 的部分

    图 4 流量订阅信息是乱写的 娱乐一下

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #Sub-Store #SubStore #脚本 #节点 #订阅 #名称

    • ❤️3
  11. Sub-Store 简单的节点名简繁转换⚠️ 使用了

    Sub-Store 简单的节点名简繁转换

    ⚠️ 使用了 https://github.com/aqzhyi/chinese-conv
    若需要在线 API 转换, 可参考 https://t.me/zhetengsha/3050

    参数:
    mode 转换模式. 默认为 s2t . 可选值: s2t 简转繁, t2s 繁转简

    脚本链接

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #Sub-Store #SubStore #脚本 #节点 #订阅 #脚本 #节点名 #简体 #繁体 #转换

    • ❤️1
  12. Sub-Store 检测脚本更新- 检测入口 脚本支持使用正则从响应获取数据使用场景: 从网页响应中获取某些信息, 自定义节点名称举例: 把节点名从繁体转为简体

    Sub-Store 检测脚本更新

    - 检测入口 脚本支持使用正则从响应获取数据

    使用场景: 从网页响应中获取某些信息, 自定义节点名称

    举例: 把节点名从繁体转为简体

    https://translate.google.com/m?sl=zh-tw&tl=zh-cn&hl=zh-cn&q={{proxy.name}}

    a:<div class="result-container">(.+?)<\/div>

    {{api.a}}

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #Sub-Store #SubStore #脚本 #节点 #订阅 #检测 #check #HTTP-META #HTTPMETA #Meta #Clash #脚本 #Node #服务器 #VPS

    • ❤️1
    • 👍1
  13. Sub-Store 的节点 入口 & 落地 检测 完整示例配置更新- Node.js 版分为俩配置一个需配置 GEOIP 数据, 一个不需要 原消息 Sub-Store 合集 频道资源合集 恰饭推荐 群组 #Sub-Store #SubStore #脚本 #节点 #订阅 #节点信息 #检测 #check #HTTP-META #HTTPMETA #Meta #Clash #Node #服务器 #VPS #GEO #落地 #节点落地 #落地检测 #入口 #节点入口 #入口检测

    Sub-Store 的节点 入口 & 落地 检测 完整示例配置更新

    - Node.js 版分为俩配置

    一个需配置 GEOIP 数据, 一个不需要

    原消息

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #Sub-Store #SubStore #脚本 #节点 #订阅 #节点信息 #检测 #check #HTTP-META #HTTPMETA #Meta #Clash #Node #服务器 #VPS #GEO #落地 #节点落地 #落地检测 #入口 #节点入口 #入口检测

    • ❤️6
    • 👍2
  14. Sub-Store 从 Google 服务条款 获取国家/地区版本- 检测落地 脚本支持使用正则从响应获取数据使用场景: 从网页响应中获取某些信息, 自定义节点名称举例: 从 Google 服务条款 获取国家/地区版本 如图所示cv:data-name="country-version"[^>]*>[^<]*<\/a>\s*([^<]+)如果想要英文的就用

    Sub-Store 从 Google 服务条款 获取国家/地区版本

    - 检测落地 脚本支持使用正则从响应获取数据

    使用场景: 从网页响应中获取某些信息, 自定义节点名称

    举例: 从 Google 服务条款 获取国家/地区版本 如图所示

    cv:data-name="country-version"[^>]*>[^<]*<\/a>\s*([^<]+)

    如果想要英文的就用 https://policies.google.com/terms?hl=en-US

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #Sub-Store #SubStore #脚本 #节点 #订阅 #检测 #check #HTTP-META #HTTPMETA #Meta #Clash #脚本 #Node #服务器 #VPS #落地 #Google #服务条款

    • 🔥5
    • ❤️2
  15. Sub-Store 检测脚本更新- 参数 disable_failed_cache, 禁用失败缓存. 即不缓存失败结果. 兼容旧参数名 ignore_failed_errorGPT 检测 节点测活(完善版)检测落地 检测入口 Sub-Store 合集 频道资源合集 恰饭推荐 群组 #Sub-Store #SubStore #脚本 #节点 #订阅 #检测 #check #HTTP-META #HTTPMETA #Meta #Clash #脚本 #Node #服务器 #VPS

    Sub-Store 检测脚本更新

    - 参数 disable_failed_cache, 禁用失败缓存. 即不缓存失败结果. 兼容旧参数名 ignore_failed_error

    GPT 检测 节点测活(完善版)

    检测落地 检测入口

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #Sub-Store #SubStore #脚本 #节点 #订阅 #检测 #check #HTTP-META #HTTPMETA #Meta #Clash #脚本 #Node #服务器 #VPS

  16. 从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)- 使用 Caddy 通配符证书, mholt/caddy-l4 sni 分流- AnyTLS 不开 TLS, 靠 Caddy 自动维护证书▎mise官方文档curl

    从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)

    - 使用 Caddy 通配符证书, mholt/caddy-l4 sni 分流

    - AnyTLS 不开 TLS, 靠 Caddy 自动维护证书

    ▎mise

    官方文档

    curl https://mise.run | sh

    echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc

    fish:
    echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish

    重启你的 shell 会话, 安装 go
    mise use -g go


    ▎caddy

    caddy 安装: 官方文档

    xcaddy 安装:
    go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

    mholt/caddy-l4(基于 SNI 转发) 安装:
    补充一点 如果想用最新的特性 可以用 xcaddy build master 但是可能也有新鲜的 bug 🐶
    xcaddy build latest --with github.com/mholt/caddy-l4 --with github.com/caddy-dns/cloudflare --output /usr/bin/caddy

    mholt/caddy-l4 文档

    caddy 配置(使用通配符证书, 需要配置 CLOUDFLARE_API_TOKEN )
    /etc/caddy/Caddyfile
    {
    log {
    output stdout
    format console
    level INFO
    }

    servers :443 {
    listener_wrappers {
    layer4 {
    @anytls tls sni a.foo.com
    route @anytls {
    tls
    proxy tcp/127.0.0.1:23556
    }
    }
    tls
    }
    }
    }

    # this block makes Caddy obtain a wildcard TLS certificate
    *.foo.com {
    tls {
    issuer acme {
    email [email protected]
    dir https://acme.zerossl.com/v2/DV90
    dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    }
    issuer acme {
    dir https://acme-v02.api.letsencrypt.org/directory
    dns cloudflare {env.CLOUDFLARE_API_TOKEN}
    }
    }
    respond "Hello World!" 200
    }


    ▎服务端(对 我就喜欢用 mihomo 服务端)

    mihomo 官方文档中的 创建运行服务

    mihomo 配置(paddingScheme 是 vibe 的. 可以自定义. 顺便示范下如何 优先使用 IPv4. 其他配置省略, 自己加吧)
    proxies:
    - name: "direct"
    type: direct
    udp: true
    ip-version: ipv4-prefer
    listeners:
    - name: anytls-in
    type: anytls
    proxy: direct
    port: 23556
    listen: "127.0.0.1"
    users:
    root: "xYbpwdF9vIELWoLmdC"
    certificate: ""
    private-key: ""
    allow-insecure: true
    # https://github.com/anytls/anytls-go/blob/main/docs/protocol.md#cmdupdatepaddingscheme
    padding-scheme: |-
    stop=10
    0=38-72
    1=180-420,520-960
    2=1050-1320,c,260-620,c,760-1240,c,260-680,c,900-1350
    3=90-220,780-1180
    4=700-1240,c,220-520,c,900-1360
    5=160-420
    6=760-1280
    7=220-640
    8=900-1360
    9=180-480


    2. 客户端

    Sub-Store 内单行 JSON
    { "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "xYbpwdF9vIELWoLmdC", "udp": true, "sni": "a.foo.com" } 

    或 Surge 格式
    节点名=anytls,服务器,443,password="xYbpwdF9vIELWoLmdC",sni=a.foo.com


    ▎相关阅读

    Caddy 使用 Redis 共享 storage

    相关: Sub-Store 自动设置服务端证书 SHA-256 指纹 自建节点证书相关说明

    GOST SNI 分流

    服务器合集 合集 群组 恰饭 联系推广

    #AnyTLS #mihomo #节点 #服务器 #协议 #Caddy

    • ❤️6
  17. 从 0 搭建一个 AnyTLS 节点🆕 更新: 可查看完整版 从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)—- 官方 repo1. 服务端sing-box 和 mihomo 都支持了mihomo 官方文档中的 创建运行服务

    从 0 搭建一个 AnyTLS 节点

    🆕 更新: 可查看完整版 从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)

    —-

    官方 repo

    1. 服务端

    sing-box 和 mihomo 都支持了
    mihomo 官方文档中的 创建运行服务

    自签证书与配置文件参考:

    openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout /etc/mihomo/server.key -out /etc/mihomo/server.crt -subj "/CN=bing.com" -days 36500

    配置文件

    mixed-port: 65222 # HTTP(S) 和 SOCKS 代理混合端口
    tcp-concurrent: true # TCP 并发连接所有 IP, 将使用最快握手的 TCP
    allow-lan: false # 允许局域网连接
    ipv6: true # 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录
    log-level: info # 日志等级 silent/error/warning/info/debug

    rules:
    - MATCH,DIRECT

    listeners:
    - name: anytls-in
    type: anytls
    port: 443
    listen: "::"
    users:
    974fdc85: 0cdfe9f1b663
    certificate: ./server.crt
    private-key: ./server.key
    # padding-scheme: "" # https://github.com/anytls/anytls-go/blob/main/docs/protocol.md#cmdupdatepaddingscheme


    2. 客户端

    Sub-Store 内单行 JSON

    { "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "0cdfe9f1b663", "client-fingerprint": "chrome", "udp": true, "sni": "bing.com", "skip-cert-verify": true }



    节点名=anytls,服务器,443,password="0cdfe9f1b663",sni=bing.com,skip-cert-verify=true


    相关: Sub-Store 自动设置服务端证书 SHA-256 指纹 自建节点证书相关说明

    服务器合集 合集 群组 恰饭 联系推广

    #AnyTLS #mihomo #节点 #服务器 #协议

    • ❤️3
  18. Sub-Store 小课堂: 域名解析多 IP 裂变节点更新 如果你的真实需求是解析出不同运营商/不同地区的不同 IP, 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为:

    折腾啥
    Sub-Store 小课堂: 域名解析多 IP 裂变节点 群友的需求 使用了域名解析功能,如果有一个域名解析出来多个ip,如何让每个ip都变成一个节点 1. 如果你的真实需求是解析出不同运营商/不同地区的不同 IP 1.1 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为: const server = 'https://223.6.6.6/dns-query'; // DoH 阿里和腾讯的可能会触发限速 可以换别的试试 const edns = [{ name: '联通', ip:…
    Sub-Store 小课堂: 域名解析多 IP 裂变节点更新

    如果你的真实需求是解析出不同运营商/不同地区的不同 IP, 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为:
    const server = 'https://223.6.6.6/dns-query'; // DoH
    const edns = ['140.207.122.197', '183.47.126.35']; // 不同运营商/地区的 IP, 作为 EDNS Client Subnet (ECS)
    const type = 'A'; // A 或 AAAA

    if (!ProxyUtils.isIP($server.server)) {
    const cache = scriptResourceCache;
    const resolve = async (url, domain, type, edns) => {
    const id = `${url}:${domain}:${type}:${edns}`;
    const cached = cache.get(id);
    // 使用缓存
    if (cached) return cached;
    const res = await ProxyUtils.doh({
    url,
    domain,
    type,
    edns,
    });
    const { answers } = res;
    if (!Array.isArray(answers) || answers.length === 0) {
    throw new Error('No answers');
    }
    const result = answers
    .filter((i) => i?.type === type)
    .map((i) => i?.data)
    .filter((i) => i);
    if (result.length === 0) {
    throw new Error('No answers');
    }
    cache.set(id, result);
    return result;
    };
    const result = await Promise.all(
    edns.map((i) => resolve(server, $server.server, type, i)),
    );
    $server._resolved_ips = [...new Set(result.flat())];
    }

    然后接着用裂变脚本

    原消息

    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #SubStore #Sub-Store #小课堂 #tips #域名解析 #裂变 #IP #节点

    • 👍4
  19. Sub-Store 小课堂: 域名解析多 IP 裂变节点群友的需求使用了域名解析功能,如果有一个域名解析出来多个ip,如何让每个ip都变成一个节点1. 如果你的真实需求是解析出不同运营商/不同地区的不同 IP1.1 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为:

    Sub-Store 小课堂: 域名解析多 IP 裂变节点

    群友的需求
    使用了域名解析功能,如果有一个域名解析出来多个ip,如何让每个ip都变成一个节点


    1. 如果你的真实需求是解析出不同运营商/不同地区的不同 IP
    1.1 请把 Sub-Store 内置的域名解析这一步操作换成脚本操作, 内容为:
    const server = 'https://223.6.6.6/dns-query'; // DoH 阿里和腾讯的可能会触发限速 可以换别的试试
    const edns = [{ name: '联通', ip: '119.36.124.169' }, { name: '电信', ip: '116.207.181.162' }, { name: '移动', ip: '111.47.229.151' }]; // 不同运营商/地区的 IP, 作为 EDNS Client Subnet (ECS)
    const type = 'A'; // A 或 AAAA

    if (!ProxyUtils.isIP($server.server)) {
    const cache = scriptResourceCache;
    const resolve = async (url, domain, type, { name, ip }) => {
    const id = `${url}:${domain}:${type}:${name}:${ip}`;
    const cached = cache.get(id);
    // 使用缓存
    if (cached) return cached;
    const res = await ProxyUtils.doh({
    url,
    domain,
    type,
    edns: ip,
    });
    const { answers } = res;
    if (!Array.isArray(answers) || answers.length === 0) {
    throw new Error('No answers');
    }
    let result = answers
    .filter((i) => i?.type === type)
    .map((i) => i?.data)
    .filter((i) => i);
    if (result.length === 0) {
    throw new Error('No answers');
    }
    result = [...new Set(result.flat())];
    const data = {
    ip,
    name,
    result,
    }
    cache.set(id, data);
    return data;
    };

    $server._domain = $server.server
    $server._resolved_ips = await Promise.all(
    edns.map(({ip, name}) => resolve(server, $server.server, type, { ip, name })),
    );
    }

    1.2 然后接一个脚本操作
    function operator(proxies = []) {
    const list = []
    proxies.map((p = {}) => {
    let ips = p._resolved_ips
    if (Array.isArray(ips) && ips.length > 0) {
    ips.map(({ name, ip, result }) => {
    result.map((server, index) => {
    list.push({
    ...p,
    name: `${name} ${index + 1} - ${p.name}`,
    server,
    })
    })
    })
    // 取消下面几行的注释, 可以添加一个原始域名的节点
    // list.push({
    // ...p,
    // name: `原始 - ${p.name}`,
    // server: p._domain,
    // })
    } else {
    list.push(p)
    }
    })
    return list
    }


    2. 如果你的需求只是裂变, 先添加一个内置的域名解析, 然后添加一个脚本操作:
    function operator(proxies = []) {
    const list = []
    proxies.map((p = {}) => {
    let ips = p._resolved_ips
    if (Array.isArray(ips) && ips.length > 0) {
    ips.map((server, index) => {
    list.push({
    ...p,
    name: `${p.name}${index + 1}`,
    server,
    })
    })
    // 取消下面几行的注释, 可以添加一个原始域名的节点
    // list.push({
    // ...p,
    // name: `原始 - ${p.name}`,
    // server: p._domain,
    // })
    } else {
    list.push(p)
    }
    })
    return list
    }


    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #SubStore #Sub-Store #小课堂 #tips #域名解析 #裂变 #IP #节点

    • ❤️6
  20. Sub-Store 小课堂: 如何标记 IPv6 节点示范一个逻辑, 仅演示如何给能解析到 IPv6 地址的节点加上 [IPv6] 前缀其他需求可以自己改

    Sub-Store 小课堂: 如何标记 IPv6 节点

    示范一个逻辑, 仅演示如何给能解析到 IPv6 地址的节点加上 [IPv6] 前缀

    其他需求可以自己改

    
    if(ProxyUtils.isIPv6($server.server)) {
      $server.name = `[IPv6] ${$server.name}`
    }
    // 还原节点域名
    if ($server._domain) $server.server = $server._domain


    Sub-Store 合集 频道资源合集 恰饭推荐 群组

    #SubStore #Sub-Store #小课堂 #tips #IP #IPv6 #节点 #域名 #DNS #解析 #域名解析 #脚本

    • ❤️5
    • 👍5