mihomo icon indicating copy to clipboard operation
mihomo copied to clipboard

[Feature] 建议添加个 proxy-provider 下各节点的别名 tag,比如叫 alias_name

Open fscarmen opened this issue 1 year ago • 14 comments

Verify steps

  • [X] 我已经在 Issue Tracker 中找过我要提出的请求 I have searched on the issue tracker for a related feature request.
  • [X] 我已经仔细看过 Documentation 并无法找到这个功能 I have read the documentation and was unable to solve the issue.

Description

有这样的使用场景,有 3 个 proxy-provider ,每个 proproxy-provider 有 10 个节点,这样有就有30个不同协议集合的节点池,但现在各个节点名称是提供者起的,作为用户不能很好的管理并用于后续的分流。 希望达到的效果是节点池的节点1 ,能根据用户规则自定义命名,比如以 proxy 为前缀,节点1就叫 proxy-1 ,同理节点2叫 proxy-2,但不是覆盖原来的节点 tag,而是添加一个字段比如叫 alias_name,该自定义命名规则放在 proxie-provider 的字段下面,这个与 tag 等效,在后面的分流规则中用 原节点名1和 alias_name-1都可以使用。

Possible Solution

No response

fscarmen avatar Feb 19 '24 23:02 fscarmen

自己整个sub store之类的不就可以了

ccmuyuu avatar Feb 20 '24 02:02 ccmuyuu

先用 sub store,订阅举例中的3个订阅url,然后聚合输出一份自定义的节点名的url,最后给 clash 订阅一份我自定义的,是这样吗?

fscarmen avatar Feb 20 '24 02:02 fscarmen

可以提供一个前缀/后缀添加(固定字符串),如果需要修改原有命名,那就用sub-store啥的自己转换吧

xishang0128 avatar Feb 20 '24 07:02 xishang0128

可以提供一个前缀/后缀添加(固定字符串),如果需要修改原有命名,那就用sub-store啥的自己转换吧

官方能给予支持吗?只要前缀,比如叫 proxy- ,之后proxy-provider所有订阅里组成的节点池,第1个是 proxy-1,第10个是 proxy-10,第100个是 proxy-100,这样也行啊

fscarmen avatar Feb 20 '24 10:02 fscarmen

可以提供一个前缀/后缀添加(固定字符串),如果需要修改原有命名,那就用sub-store啥的自己转换吧

官方能给予支持吗?只要前缀,比如叫 proxy- ,之后proxy-provider所有订阅里组成的节点池,第1个是 proxy-1,第10个是 proxy-10,第100个是 proxy-100,这样也行啊

已经加了,看alpha的commit

xishang0128 avatar Feb 20 '24 11:02 xishang0128

可以提供一个前缀/后缀添加(固定字符串),如果需要修改原有命名,那就用sub-store啥的自己转换吧

官方能给予支持吗?只要前缀,比如叫 proxy- ,之后proxy-provider所有订阅里组成的节点池,第1个是 proxy-1,第10个是 proxy-10,第100个是 proxy-100,这样也行啊

已经加了,看alpha的commit

果然真大神啊,困扰了多年的难题给你处理了。同时还想再多问一下 mihomo 的使用,能区分进来的流量吗? 我现在通过 iptable ,把 172.18.0.2-10 的流量全部通过 172.18.0.1:8765 给到 clash 的入口

iptables -t nat -A PREROUTING -s 172.18.0.0/24 -p tcp -j DNAT --to-destination 172.18.0.1:8765

然后 clash 通过 redir 来接收所有的流量

mixed-port: 7890
listeners:
  - name: redir-in
    type: redir
    port: 8765
    listen: 172.18.0.1

最后如何配置新增的 name-prefix: "[provider1]", 让来自不同 IP 的流量严格与 代理对应? 172.18.0.2 --- > provider1-2 172.18.0.3 --- > provider1-3 ...... 172.18.0.10 --- > provider1-10

fscarmen avatar Feb 20 '24 15:02 fscarmen

@fscarmen 建策略组,匹配到策略组

xishang0128 avatar Feb 20 '24 15:02 xishang0128

请问是这样吗?

proxy-groups:
  - name: 匹配-1
     type: select
     use:
        - provider1-1
 
  - name: 匹配-2
     type: select
     use:
        - provider1-2
。。。。。。
  - name: 匹配-10
     type: select
     use:
        - provider1-10
  
rules:
  - SRC-IP-CIDR,178.18.0.2/32,匹配-1
  - SRC-IP-CIDR,178.18.0.3/32,匹配-2
。。。。。。
  - SRC-IP-CIDR,178.18.0.11/32,匹配-10
...

fscarmen avatar Feb 20 '24 15:02 fscarmen

已经加了,看alpha的commit

刚试了一下,订阅节点名原来为 HK-1、HK-2 ,加了 override: { additional-prefix: "[provider1]" } 就变为 [provider1]HK-1、[provider1]HK-2,这样不知道该节点名的前提下,仍然是做不了策略组的哦

proxy-groups:
  - name: match-1
     type: select
     use:
        - [provider1]HK-1  ## 就是这里,我不能提前知道这个 HK-1 的名字,这里也不知道如何写,因为提前不知道节点名字
 
  - name: match-2
     type: select
     use:
        - [provider1]HK-2  ## 这里
  
rules:
  - SRC-IP-CIDR,178.18.0.2/32,match-1
  - SRC-IP-CIDR,178.18.0.3/32,match-2

fscarmen avatar Feb 21 '24 07:02 fscarmen

@fscarmen 引用是引用整个集合,而不是单个节点

xishang0128 avatar Feb 21 '24 07:02 xishang0128

@fscarmen 引用是引用整个集合,而不是单个节点

哦哦,明白了,需求是想1个节点给1处使用的。 那把 use: 改为 proxies:的话,节点名字那里如何处理好呢?

我试过提前写进去也不行,因为还没有读取订阅的节点,会提示没有节点名的 image

fscarmen avatar Feb 21 '24 07:02 fscarmen

去掉 proxy-groups 了,这样写

rules:
  - SRC-IP-CIDR,178.18.0.2/32,[provider1]HK-1   ## 就是这里,我不能提前知道这个 HK-1 的名字,提前应该如何写?
  - SRC-IP-CIDR,178.18.0.3/32,[provider1]HK-2  ## 这里

fscarmen avatar Feb 21 '24 08:02 fscarmen

@fscarmen provider只能被groups引用,不能单独匹配,建议先看完文档

xishang0128 avatar Feb 21 '24 08:02 xishang0128

搞乌龙了,我试下用clash api提取节点信息看看

fscarmen avatar Feb 21 '24 08:02 fscarmen