Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Functional request] Add multiple HTTP(S)/SOCKS DNS and add routing functionality #1223

Open
WhitePr opened this issue Feb 20, 2024 · 2 comments

Comments

@WhitePr
Copy link

WhitePr commented Feb 20, 2024

Please pardon my poor English

Multiple DNS outlets + routing.
Currently there is only one DNS outlet and no routing function, for some websites using specific DNS will get better IPs. For example, in mainland China, using CloudFlare's DOH (https://1.0.0.1/dns-query) to query qq.com I get the IP from Hong Kong, but using AlibabaCloud's DOH ( https://223.5.5.5/dns-query) to get the IP from Guangdong, China

Multiple HTTP(S)/SOCKS outlets + routing.
The current proxy simply returns the resolved IP to HTTP(S)/SOCKS, which can cause problems.
Example.
When using a browser to access a website, some websites don't need to go through a proxy but some do, but now there is only one proxy outlet and no routing, directly forwarding the resolved IP will cause all websites to go through the proxy, although it is possible to implement IP routing on the upstream proxy, but this method will fail if the website is using a CDN.

In summary I would like to add the following features.
Add multiple DNS to allow different URLs to be queried using different DNS.
Directly forward the accessed IP or URL to the upstream proxy, or add multiple proxy outlets and implement URL and IP routing within the application (make specific IPs and URLs go to specific proxy outlets).

@ignoramous
Copy link
Collaborator

these features make sense, but I doubt we'd implement them anytime soon.

It isn't that these could not be implemented, but that the UI starts to become complicated than it already is. Until we figure out a way to introduce power-user features such as per-domain / per-IP proxying, one is better off using actual proxifiers like SagerNet chained with Rethink's SOCKS5 forwarder (if possible).

@Eollone
Copy link

Eollone commented Oct 18, 2024

@ignoramous

This proposal certainly makes sense, I suggest we could start with a simpler implementation that addresses the core functionality of DNS routing based on application proxy status.

  • For apps using a proxy, we can route their DNS requests to a DNS Server A that is geographically closer to the proxy server (e.g., if the proxy is in Hong Kong, use a DNS Server A in Hong Kong).
  • For apps not using a proxy, we can route their requests to a local DNS Server B to enhance performance.

With the introduction of the "Advanced DNS filtering" feature, we can identify whether a DNS request comes from an app that requires a proxy or one that does not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants