encrypted-dns

repository·master·Indexed 26 days ago

https://github.com/paulmillr/encrypted-dns

A project providing configuration profiles for DNS over HTTPS (DoH) and DNS over TLS (DoT), specifically designed for installation on Apple devices via .mobileconfig files. It supports a wide variety of regional and filtering DNS providers, offering both signed and unsigned configurations. The project includes tools for building, signing, and managing these profiles, as well as guidance on configuring On-Demand rules for trusted Wi-Fi networks.

Tokens
12.3K
Snippets
11
Records
35
Agent score
87%

What's inside encrypted-dns

  1. Understand DNS Provider Privacy (ECS)

    master
    In the context of these DNS providers, 審查=是 (Review=Yes) indicates that the profile does not send real hostname=IP relationship information (EDNS Client Subnet/ECS) to the provider. This enhances privacy by preventing the provider from knowing the user's approximate location or IP subnet.
  2. Install encrypted DNS profiles on iOS and iPadOS

    master

    To apply encrypted DNS settings across all applications on iOS or iPadOS, you must install a configuration profile. Simply setting a DNS server IP in Wi-Fi settings is insufficient.

    1. Open the .mobileconfig file from GitHub using the Safari browser (other browsers may download the file without triggering the installation prompt).
    2. Tap Allow when prompted to download the profile.
    3. Navigate to Settings > General > VPN & Device Management.
    4. Select the downloaded profile and tap Install.
  3. Install encrypted-dns profiles on iOS/iPadOS

    master

    To install a .mobileconfig profile on an iPhone or iPad, follow these steps:

    1. Open the downloaded file using Safari (other browsers may only download the file without triggering the installation prompt).
    2. Tap the Allow button when prompted to download the profile.
    3. Navigate to System Settings => General => VPN, DNS & Device Management.
    4. Select the downloaded profile and tap the Install button.
  4. Build and sign profiles using npm scripts

    master

    The project provides several scripts for managing and signing profiles:

    • npm run build: Re-builds profiles, signed profiles, and READMEs.
    • npm run sign: Re-signs all profiles (updating the signature field) using an ECC SSL certificate. This requires the following files in the certs subdirectory:
      • privkey.pem: The private key.
      • fullchain.pem: The certificate file.
      • chain.pem: The certificate used for OCSP stapling.
      • cert.pem: The certificate file.
    • npm run new: Interactively creates a new profile via CLI or with flags.
    • npm run test: Performs a parity check between sign-single.ts and sign-single-openssl.sh using temporary certificates.
    npm run build
    npm run sign
    npm run new
    npm run test
  5. Install encrypted DNS profiles on macOS

    master

    To apply encrypted DNS settings across all applications on macOS, you must install a configuration profile. Installing a newer version of a profile will overwrite previous settings.

    1. Download and save the profile, ensuring it is renamed to NAME.mobileconfig (do not use .txt or other extensions).
    2. Open the Apple menu > System Settings.
    3. Click Privacy & Security in the sidebar, then click Profiles on the right (you may need to scroll down).
    4. In the Downloaded section, double-click the profile.
    5. Review the profile contents and click Continue, Install, or Register to complete the installation. You may be prompted for your system password.
  6. Install encrypted DNS on macOS

    master

    To use encrypted DNS on macOS, you must install a configuration profile via System Settings.

    Steps:

    1. Download and save the profile, ensuring it is renamed to NAME.mobileconfig (do not use .txt or other extensions).
    2. Open Apple Menu > System Settings.
    3. Click Privacy & Security in the sidebar, then click Profiles on the right (you may need to scroll down).
    4. Locate the profile in the Downloaded section.
    5. Double-click the profile, review the contents, and click Continue, Install, or Register to complete the process.

    Note: Installing a new profile will replace the settings of any previously installed profiles.

  7. Install encrypted-dns-configs profiles on iOS (iPhone, iPad)

    master

    To install a .mobileconfig profile on an iPhone or iPad, follow these steps:

    1. Open the .mobileconfig file using Safari (other browsers may only download the file without triggering the installation prompt).
    2. Tap the Allow button when prompted to download the profile.
    3. Navigate to System Settings => General => VPN, DNS & Device Management.
    4. Select the downloaded profile and tap the Install button.
  8. Install encrypted DNS profiles on iPhone and iPad

    master

    To install a .mobileconfig profile on iOS devices:

    1. Open the file using Safari (other browsers may download the file without prompting installation).
    2. Tap the Allow button when prompted to download the profile.
    3. Navigate to Settings > General > VPN & Device Management.
    4. Select the downloaded profile and tap Install.