rethink-app
rethink-app copied to clipboard
Per-app DNS
It isn't really possible to know which app sent a DNS request, but what could be done is:
- Learn from previous queries (names) and answers (IPs) and send the IPs that a particular app connects to, to a DNS server of user's choice.
- Or, whenever the said app is in the foreground, change the DNS to use the one user has intended to.
- Use technique similar to DNS64/NAT64 and then trap "placeholder-IP" (from
100.64.0.0/10
) to forward to "actual-IP" as resolved just-in-time by app-specific upstream DNS instead.
Merits to both those approaches... Though, No. 2 requires access to accessibility-service. No. 3 will help support per-App proxies #229
See also #3 (ConnTrack)
Firestack changes are in: https://github.com/celzero/firestack/commit/b3c4b783cee5b25ec9a4e909f1edeab3388c0d7f
Kotlin / UI changes done too and released in v054
.