Git Product home page Git Product logo

dnscrypt-proxy-android's Introduction

DNSCrypt Proxy 2 for Android

GitHub release (latest by date) GitHub all releases

A flexible DNS proxy, with support for modern encrypted DNS protocols such as DNSCrypt v2, DNS-over-HTTPS, Anonymized DNSCrypt and ODoH (Oblivious DoH).

Features

Pre-built binaries

Up-to-date, pre-built binaries are available for:

  • Android/arm
  • Android/arm64
  • Android/x86
  • Android/x86_64

All the binary files are downloaded from the official release page.

Differences from the main project

  • server_names = ams-dnscrypt-nl [NLD], d0wn-tz-ns1 [TZA], dct-nl [NLD], dct-ru [RUS], dnscrypt.be [BEL], dnscrypt.pl [POL], dnscrypt.uk-ipv4 [GBR], dnswarden-uncensor-dc-swiss [CHE], meganerd [NLD], openinternet [USA], plan9dns-fl [USA], plan9dns-mx [MEX], plan9dns-nj [USA], pryv8boi [DEU], sby-limotelu [IDN], scaleway-ams [NLD], scaleway-fr [FRA], serbica [NLD], techsaviours.org-dnscrypt [DEU], v.dnscrypt.uk-ipv4 [GBR] are the resolvers in use.

  • doh_servers = false (disable servers implementing the DNS-over-HTTPS protocol)

  • require_dnssec = true (server must support DNSSEC security extension)

  • force_tcp = true (fix for mobile data intial connection random issues if routes have been set and skip_incompatible = true, see DNSCrypt/dnscrypt-proxy/discussions/2020)

  • timeout = 1000 (set the max. response time of a single DNS query from 5000 to 1000 ms.)

  • blocked_query_response = 'refused' (set refused response to blocked queries)

  • # log_level = 0 (set the log level of the dnscrypt-proxy.log file to very verbose, but keep it disabled by default)

  • dnscrypt_ephemeral_keys = true (create a new, unique key for every single DNS query)

  • bootstrap_resolvers = ['45.11.45.11:53'] (use DNS.SB instead CloudFlare)

  • netprobe_address = '45.11.45.11:53' (use DNS.SB instead CloudFlare)

  • block_ipv6 = true (immediately respond to IPv6-related queries with an empty response)

  • blocked-names.txt, blocked-ips.txt, allowed-names.txt and allowed-ips.txt files enabled. (to know more specifics about this, please refer to the Filters (optional) section below)

  • anonymized_dns feature enabled. (routes are indirect ways to reach DNSCrypt servers, each resolver has 2 relays assigned)

  • skip_incompatible = true (skip resolvers incompatible with anonymization instead of using them directly)

  • direct_cert_fallback = false (prevent direct connections through the resolvers for failed certificate retrieved via relay)

Installation

1. Download the latest dnscrypt-proxy-android-*.zip file from the Releases page and flash it with Magisk:

Magisk > Modules > Install from storage > dnscrypt-proxy-android-*.zip

2. Reboot your device.

3. Test your DNS at https://dnsleaktest.com/

Configuration (optional)

You can edit the dnscrypt-proxy.toml file as you wish located on storage/emulated/0/dnscrypt-proxy path.

For a more detailed configuration you can refer to the official documentation or simply join our group on Telegram, at dnscrypt-proxy-android | CHAT.

Filters (optional)

Filters are a powerful set of built-in features, that let you control exactly what domain names and IP addresses your device are allowed to connect to. This can be used to block ads, trackers, malware, or anything you don't want your device to load.

This module comes with the filtering feature enabled by default, that's why you can see files designed for this operation inside the internal folder. Out of the box these files are empty and are used only to ensure the correct start of dnscrypt-proxy service.
To know more about it you can consult the official documentation, or in a simpler way through my block repository.

I'm also providing the allowed-names.txt and blocked-names.txt files regularly updated at dnscrypt-proxy-filters | CHANNEL. The sources used for this merge are among the hardest on the web.

You can contribute to this blocklist at anytime, opening a New Issue here or simply reporting the issue at dnscrypt-proxy-filters | CHAT on Telegram.

Changelog

Version numbers

dnscrypt-proxy-android tags follow the format {dnscrypt-proxy_version}.{revision} where

  • dnscrypt-proxy_version is the version of dnscrypt-proxy used in x.x.x format, and
  • revision is a number indicating the version of dnscrypt-proxy-android for the corresponding dnscrypt-proxy version.

Donations

  • BTC address: 126Y2BJQyPq8CHAaFMCyVH5QcbSViQz89e
  • ETH address: 0x16b917Bb585D2411b9c9C81b03de72471f3f072F
  • XMR address: 41jXybL88etPg1nGuPsMZbFSzKzbXYat4Xak3QssPy7LNs4VBWXDxbhjSdtLJDA138cx7cTq8JhFoiTTVLhWrTNAUywgGFD

Credits

dnscrypt-proxy-android's People

Contributors

bluemeda avatar d3cim avatar grizzlyjr avatar jahway603 avatar oilervoss avatar ooonea avatar runo280 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dnscrypt-proxy-android's Issues

No Wifi Hotspot when Magisk module is enabled

When dnscrypt-proxy magisk module is enabled, it is impossible to get an internet connection with devices connected to the wifi hotspot of the phone. If I disable it, and reboot, wifi hotspot works properly. I read somewhere that this is a bug that has existed on dnscrypt-proxy magisk module forever, even with previous projects / devs. In all this time hasn't anyone figure out a way to fix this?

Able to access sites from non-encrypted local dns sevrer

Is your feature request related to a problem? Please describe.
I am not able to use a free wifi, which changes the ip address of the captive portal page. I need to relog every day, so I have to disable the proxy, reboot, get the ip address, add it to the captive-portals.txt., reboot.

Describe the solution you'd like
A way to still use force_tcp and use the forwarding rules. If there is a solution already in the config to specify a working fallback server, please tell me.

Describe alternatives you've considered
I tried to use the fallbacks_server feature, but it didn't work. It just tried to connect to the normal ones and gave up.

Security and freedom concerns. Alternate installation method?

Hello,

I have been looking for a way to install dnscrypt-proxy on a Replicant device for the purpose of better security and privacy. However, I notice the current project suggests installing Magisk - software which I haven't heard of before. Although I checked the GitHub page of Magisk, I also had a look at the F-Droid page of Magisk. Things which immediately caught my attention:

  • Anti-Features: This app promotes non-free add-ons (I have no idea how it does that)
  • Permissions: a quite concerning list. Why should one install an app which can "use biometric/fingerprint hardware" (if one is present), "have full network access", "query all packages" and so on? All that just to flash a downloaded zip? This contradicts the basic security principle of minimizing attack surface. In fact, the whole idea of using an additional app with additional permissions is itself a security contradiction.

So, could you kindly suggest a process which includes only installing dnscrypt-proxy and not anything else, e.g. using ADB? (Replicant has root out of the box)

Module's uninstall doesn't work as it should

Describe the bug
DNSCrypt module doesn't remove the internal dnscrypt-proxy folder once removed from Magisk.

To Reproduce
Steps to reproduce the behavior:

  1. Download the latest dnscrypt-proxy-android version
  2. Disable network connections (no internet)
  3. Install the .zip downloaded
  4. Reboot
  5. Open Magisk > Modules > DNSCrypt-Proxy 2 > Remove
  6. Reboot
  7. See dnscrypt-proxy folder still at storage/emulated/0/dnscrypt-proxy path

Expected behavior (i.e. solution)
Once removed the module should remove all of its rests, without leaving the dnscrypt-proxy folder in the internal memory.

Device informations:

  • Android: 11
  • Magisk: 24.1

Additional context

What I know

  • uninstall.sh won't work with /sdcard for some devices because that path isn't mounted until data is decrypted (fixed in #L2-L4).
  • It doesn't work on devices having Android 11 or higher.
  • It work on devices having Android 7 or lower.

What I don't know

  • If it work on Android 8 devices.
  • If it work on Android 9 devices.
  • If it work on Android 10 devices.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.