MetaCubeX / mihomo

A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.
https://wiki.metacubex.one
MIT License
16.05k stars 2.6k forks source link

[Features] Add support nameserver-policy against proxy-groups #863

Open malikshi opened 10 months ago

malikshi commented 10 months ago

Verify steps

Description

Hi I am using servers with smart DNS to access netflix, etc for certain region. I setup mihomo for mixed node/proxies/proxy-groups. If we don't set nameserver-policy per rule-set, geosite they're gone astray since nameserver and fallback will be randomized resolved. current set

  nameserver-policy:
    geosite:netflix: 8.8.8.8#netflixproxy

Possible Solution

I Want requests features for

  nameserver-policy:
    proxy-groups:netflixproxy: 8.8.8.8#netflixproxy
    proxies:singleproxy: 8.8.8.8#singleproxy

For Someone That using smartdns it's very Useful Since we only Need setup proxies, proxy-groups DNS instead listing geosites. You May Found this features Like dns rules in sing-box

Paulgudring commented 10 months ago

try rule-set. I have the same original demand as you. But I found that rule-set is capable to solve the problem, it is a existing solution. rule-set as below:

payload:
  - geosite, netflix
  - geosite, hulu
  - #……
  - domain #……

your config is as below:

rule-provider:
  netflixproxy:
    url: ……
    path: ……

dns:
  #……
  nameserver-policy:
    rule-set: netflixproxy: 8.8.8.8#specific-proxy-group

rule:
  - RULE-SET, netflixproxy, specific-proxy-group

note: only domain and geo rules of rule-set are supported in nameserver-policy. wish to see more types of rule supported in the future (like logic rule or even process rule).

malikshi commented 10 months ago

try rule-set. I have the same original demand as you. But I found that rule-set is capable to solve the problem, it is a existing solution. rule-set as below:

payload:
  - geosite, netflix
  - geosite, hulu
  - #……
  - domain #……

your config is as below:

rule-provider:
  netflixproxy:
    url: ……
    path: ……

dns:
  #……
  nameserver-policy:
    rule-set: netflixproxy: 8.8.8.8#specific-proxy-group

rule:
  - RULE-SET, netflixproxy, specific-proxy-group

note: only domain and geo rules of rule-set are supported in nameserver-policy. wish to see more types of rule supported in the future (like logic rule or even process rule).

I have implemented those already. but how do i create rule-set for ports for this rules. isn't better if mihomo support the requested features?

  nameserver-policy:
    geosite:oisd-full,d3ward,rule-doh,rule-malicious: rcode://success
    RULE-SET:rule_direct: 208.67.220.220#Koneksi Direct
    geosite:google-ads: 208.67.222.222#Koneksi Ads
    geosite:oisd-nsfw,category-porn: 208.67.220.220#Koneksi NSFW
    geosite:rule-speedtest: 8.8.4.4#Speedtest
    geosite:rule-umum: 9.9.9.9#Koneksi Umum
    geosite:rule-indo,bank-id: 149.112.112.112#Koneksi Indo
    geosite:youtube: 8.8.8.8#Koneksi Youtube
    geosite:rule-streaming,videoconference: 1.1.1.1#Koneksi Streaming
    geosite:rule-sosmed: 1.0.0.1#Koneksi Sosmed
    geosite:rule-gaming: 8.8.8.8#Koneksi Gaming
    rule-set:rule_umum: 9.9.9.9#Koneksi Umum
Paulgudring commented 10 months ago

@malikshi True. I mentioned that in another issue looking forward to supporting more types. But it seemed impossible to support PROCESS rule type. I'm anticipating the feature. Trust and patience. Love from Teyvat.