Public DNS resolver · Servers in Germany
INAL DNS
Encrypted name resolution without a detour through the big tech companies. Own recursion, DNSSEC validation, no logs and a filter against ads, tracking and malware.
- DNS-over-HTTPS
- DNS-over-TLS
- DNS-over-QUIC
- DNSSEC
- No Log
- Located in Germany
Important: INAL DNS is a filtering resolver. Ads, trackers, telemetry, malware, adult content, gambling and newly registered domains are blocked. Filter details
- DNS-over-HTTPS (DoH)
https://dns.inal.cloud/dns-query- DNS-over-TLS (DoT, port 853)
dns.inal.cloud- DNS-over-QUIC (DoQ)
quic://dns.inal.cloud- IPv4 (for the Windows setup)
148.251.162.153
IPv6 is currently not offered. Access is currently only possible from Germany.
Independent, verified and frugal with data.
INAL DNS asks no one for permission and passes nothing on. Every answer is resolved in-house, cryptographically verified and forgotten right away.
-
Own recursion
Names are resolved in-house, starting at the root servers. Nothing is forwarded to Google, Cloudflare, Quad9 & co. A local copy of the root zone (RFC 8806) also saves queries and time.
-
DNSSEC validation
Signed answers are verified cryptographically. Tampered or forged records are discarded instead of being passed on to your device.
-
No EDNS Client Subnet
No part of your IP address is passed on to third-party name servers. The servers of the requested domains only see INAL DNS, not you.
-
Encrypted in transit
DNS-over-HTTPS, DNS-over-TLS and DNS-over-QUIC protect your queries on their way to the server. Neither Wi-Fi operators nor internet providers can read along or tamper with answers.
-
Servers in Germany
The resolver runs in the Falkenstein data centre (Saxony) and is subject to the GDPR. Access is currently only possible from Germany.
-
No Log
No queries, no IP addresses and no domain names are stored. Statistics are kept in memory only and never written to disk. After a restart they are gone.
What is filtered?
INAL DNS is a filtering resolver. Queries for domains in the following categories are not resolved, so the affected sites, ad banners or trackers do not load. If you need unfiltered DNS, this service is not the right one.
- Ads and tracking Strict list: HaGeZi Multi Ultimate
- Malware, phishing and scams HaGeZi Threat Intelligence Feeds
- Adult content OISD NSFW and StevenBlack
- Gambling and fake news StevenBlack fakenews-gambling-porn
- Newly registered domains (last 7 days) HaGeZi NRD. Freshly registered domains are especially often abused for phishing.
- Telemetry and crypto mining Included in the HaGeZi lists: usage data that devices and apps send in the background, and scripts that secretly mine cryptocurrency.
Social media is not filtered. Facebook, Instagram, TikTok, X, YouTube, WhatsApp and other social networks remain reachable as usual.
Strict filters sometimes hit harmless sites
The ads and tracking list is deliberately strict. As a result, a link from a newsletter, a coupon portal or an individual service may not work.
In that case, write to us at info@inal-it.de. Name the affected domain (e.g. example.com) and briefly describe what does not work. We will review unblocking it.
Limits of DNS filters
DNS can only block whole domains. Ads served from the same domain as the actual content (e.g. on YouTube) cannot be blocked this way without blocking the service itself.
For that, we additionally recommend an ad blocker in the browser, such as the uBlock Origin (or uBlock Origin Lite) extension for Firefox, Chrome, Edge and Brave.
Set up in a few minutes.
Choose your device or browser. A setup in the operating system applies to all apps. A setup in the browser applies to that browser only. Menu names below refer to the English user interface and may vary slightly by version and manufacturer.
Android Android 9 or later, via “Private DNS” (DNS-over-TLS)
- Open Settings.
- Tap Network & internet (on Samsung: Connections → More connection settings).
- Select Private DNS.
- Choose Private DNS provider hostname and enter:
dns.inal.cloud - Tap Save. Done, this applies to Wi-Fi and mobile data.
Menu names differ slightly between manufacturers. The quickest way is to search the settings for “Private DNS”.
iPhone, iPad and Mac iOS/iPadOS 14 and macOS 11 or later, via configuration profile
inal-dns.mobileconfig sets up DNS-over-HTTPS with https://dns.inal.cloud/dns-query. The description inside the profile is in German.
iPhone and iPad
- Open this page in Safari and tap Download profile. Confirm “This website is trying to download a configuration profile” with Allow and close the notice.
- Open Settings. Profile Downloaded appears at the top. Tap it (alternatively: General → VPN & Device Management, on older versions General → Profiles).
- Tap Install in the top right, enter your passcode and confirm twice more with Install.
- Done. The profile is active immediately and applies to Wi-Fi and cellular. Under General → VPN & Device Management → DNS, “INAL DNS” must be selected.
Mac
- Download the profile and double-click the file in your Downloads folder. macOS reports “Profile installation”.
- Open System Settings and go to profile management:
- macOS 15 and later: General → Device Management
- macOS 13 and 14: Privacy & Security → Profiles
- macOS 11 and 12: System Preferences → Profiles
- Double-click “INAL DNS”, click Install and confirm with your password.
“Unsigned” warning: The profile is not digitally signed, so Apple shows the warning “Unsigned” or “Unverified” during installation. This is normal for self-made profiles. The profile contains only the DNS setting, no certificates and no remote management. You can remove it at any time in the same place via Remove Profile.
Windows 11 system-wide via DNS-over-HTTPS
- Open Settings → Network & internet. For Wi-Fi click Wi-Fi → Hardware properties, for a cable connection Ethernet.
- Next to DNS server assignment click Edit and switch to Manual.
- Turn on IPv4 and enter as Preferred DNS:
148.251.162.153 - Below it, set DNS over HTTPS to On (manual template) and enter as DNS over HTTPS template:
https://dns.inal.cloud/dns-query - Set Fallback to plaintext to Off.
- Leave Alternate DNS empty and IPv6 turned off, as INAL DNS does not offer IPv6. Click Save.
Afterwards, the connection overview shows “(Encrypted)” after the IPv4 DNS address. The setting applies per network: repeat the steps for any other Wi-Fi.
Alternative via command
In a Command Prompt run as administrator, this command registers the DoH template for the IP address. You still need to enter the DNS server for the connection as described above (steps 1–3).
netsh dns add encryption server=148.251.162.153 dohtemplate=https://dns.inal.cloud/dns-query autoupgrade=yes udpfallback=no
Firefox for this browser only
- Open Settings → Privacy & Security (or type
about:preferences#privacyinto the address bar). - Scroll to the DNS over HTTPS section.
- Select Max Protection.
- Under Choose provider, select Custom and enter:
https://dns.inal.cloud/dns-query
With “Max Protection”, Firefox uses INAL DNS exclusively and does not fall back to unencrypted DNS. Other programs on the device keep using the DNS server from the network settings.
Chrome, Edge and Brave for this browser only
Chrome
- Open Settings → Privacy and security → Security.
- Under Advanced, turn on Use secure DNS.
- In the menu next to it, choose Custom and enter:
https://dns.inal.cloud/dns-query
Edge
- Open Settings → Privacy, search, and services → Security.
- Turn on Use secure DNS and select Choose a service provider.
- Enter in the field:
https://dns.inal.cloud/dns-query
Brave
- Open Settings → Privacy and security → Security.
- Turn on Use secure DNS and choose Custom.
- Enter in the field:
https://dns.inal.cloud/dns-query
If the option is greyed out, the browser is managed by your organisation or a parental control program is active. Other programs on the device keep using the DNS server from the network settings.
Linux systemd-resolved with DNS-over-TLS
- Create the folder
/etc/systemd/resolved.conf.d/(if it does not exist yet) and, as root, the fileinal-dns.confin it with this content:Or all in one step in the terminal:[Resolve] DNS=148.251.162.153#dns.inal.cloud DNSOverTLS=yes Domains=~.sudo mkdir -p /etc/systemd/resolved.conf.d printf '[Resolve]\nDNS=148.251.162.153#dns.inal.cloud\nDNSOverTLS=yes\nDomains=~.\n' | sudo tee /etc/systemd/resolved.conf.d/inal-dns.confThe main file
/etc/systemd/resolved.confstays unchanged and must be a regular file, not a folder. Do not edit/etc/resolv.confby hand either. - Restart the service:
sudo systemctl restart systemd-resolved - Check with
resolvectl status: under Global, Protocols must show+DNSOverTLSand DNS Servers must show148.251.162.153#dns.inal.cloud. resolv.conf mode must bestub.
If resolv.conf mode shows foreign, programs bypass systemd-resolved. Link /etc/resolv.conf back to the stub:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
INAL DNS only answers encrypted (port 853), not via classic DNS on port 53. If a connection, such as a VPN, sets 148.251.162.153 as its own DNS server and resolvectl status shows -DNSOverTLS there, queries go nowhere. In that case, turn on DNS-over-TLS for that connection:
sudo nmcli connection modify "CONNECTION_NAME" connection.dns-over-tls yes
sudo nmcli connection up "CONNECTION_NAME"
The part after # is the server name used for certificate validation. Domains=~. routes all queries preferentially to INAL DNS.
If your router hands out its own DNS servers via DHCP, systemd-resolved may use them as well. With NetworkManager you turn this off per connection (nmcli connection show lists the names):
sudo nmcli connection modify "CONNECTION_NAME" ipv4.ignore-auto-dns yes ipv6.ignore-auto-dns yes
sudo nmcli connection up "CONNECTION_NAME"
In GNOME you can also do this graphically: Settings → Network → gear icon of the connection → IPv4, then turn off the Automatic switch next to DNS.
FRITZ!Box FRITZ!OS 7.20 or later, for all devices in the home network via DNS-over-TLS
If you set up INAL DNS directly in the router, all devices in your home network use the service automatically, including TVs, game consoles and guests. Queries are encrypted from the FRITZ!Box to INAL DNS.
- Open
fritz.boxin your browser and log in. - Go to Internet → Account Information and open the DNS Server tab.
- Under DNSv4 Servers, keep Use DNSv4 servers assigned by the internet service provider selected. This is how the FRITZ!Box finds the address of
dns.inal.cloud. - In the DNS over TLS (DoT) section, enable Encrypted name resolution on the internet (DNS over TLS).
- Enable Enforce certificate validation for encrypted name resolution on the internet.
- Disable Also allow unencrypted name resolution on the internet. Otherwise the FRITZ!Box silently falls back to unencrypted DNS when problems occur.
- Enter
dns.inal.cloudunder Resolution names of DNS servers and click Apply.
Menu names differ slightly depending on the FRITZ!OS version. On older versions, first turn on Advanced View in the bottom left. Keep in mind: the filters then apply to everyone in the home network. Devices that already use INAL DNS themselves (such as Android with “Private DNS”) keep working unchanged.
Your VPN connections to the FRITZ!Box benefit as well, see VPN via the FRITZ!Box.
Using INAL DNS together with a VPN.
Whether WireGuard, OpenVPN, FRITZ!Box, Tailscale or a VPN app: INAL DNS also works with the VPN switched on. There are a few things to keep in mind.
Three rules first
- The VPN exit must be in Germany. INAL DNS is only reachable from Germany. If the VPN server is abroad, your queries are rejected.
- Do not enter
148.251.162.153as the DNS server in the VPN. INAL DNS only answers encrypted (DoH, DoT, DoQ), not via classic DNS on port 53. A line likeDNS = 148.251.162.153means nothing gets resolved at all. - Keep the device setup active. If you have set up INAL DNS on the device as described above, the encrypted queries simply pass through the tunnel. All that matters is that the VPN does not override this setting with a DNS server of its own.
VPN via the FRITZ!Box WireGuard or IPsec to your home, the simplest option
If you connect to your FRITZ!Box via VPN, your devices on the go use the FRITZ!Box as their DNS server. If INAL DNS is set up there, it automatically applies inside the VPN too. The exit is at your home, so in Germany.
- Set up INAL DNS in the FRITZ!Box as described under Setup → FRITZ!Box.
- Create the VPN connection. For WireGuard (FRITZ!OS 7.50 or later): Internet → Permit Access → VPN (WireGuard) → Add connection → Connect a single device.
- Import the generated configuration into the WireGuard app via QR code or file. Leave the line
DNS =with the address of the FRITZ!Box (usually192.168.178.1) unchanged.
The same applies to older IPsec connections (MyFRITZ!App, FRITZ!VPN): there, too, the FRITZ!Box is the DNS server. Nothing else needs to be configured on the devices.
WireGuard with your own server wg-quick, wg-easy, router or VPS
Option 1: keep the device setting (recommended)
- Make sure your WireGuard server is located in Germany and all traffic goes through the tunnel (
AllowedIPs = 0.0.0.0/0). - Remove the
DNS =line from the client configuration completely:[Interface] PrivateKey = … Address = 10.8.0.2/32 # no DNS line [Peer] PublicKey = … Endpoint = vpn.example.com:51820 AllowedIPs = 0.0.0.0/0 - Set up INAL DNS on the device (Android, Apple, Windows, Linux). The encrypted queries then travel through the tunnel to INAL DNS.
With wg-easy, the DNS line is controlled by the default DNS setting (depending on the version in the web interface or via the variable WG_DEFAULT_DNS). Clear it, or enter your own resolver from option 2. Client configurations generated before that must be redistributed.
Option 2: your own resolver inside the tunnel
If you want to hand the clients a DNS server, for example because you have devices without their own DoT/DoH setting, run a small resolver on the VPN server that forwards to INAL DNS encrypted. Then, for example, DNS = 10.8.0.1 applies. How this works is described under Your own resolver as a bridge.
OpenVPN your own server, from OpenVPN 2.6 also with a DoT setting
For all options: the server is in Germany, and push "redirect-gateway def1" routes all traffic through the tunnel.
Option 1: keep the device setting
- Remove all lines with
push "dhcp-option DNS …"andpush "dns …"from the server configuration. - Also remove
push "block-outside-dns". On Windows this option blocks DNS outside the tunnel and does not get along with the device setting. - Set up INAL DNS on the device as described in the Setup section.
Option 2: push DNS-over-TLS from the server
Since version 2.6, the server can hand the clients a DoT server:
push "dns server 0 address 148.251.162.153"
push "dns server 0 transport DoT"
push "dns server 0 sni dns.inal.cloud"
Not every client implements this setting. A client that ignores transport DoT queries 148.251.162.153 unencrypted and gets no answer. Test every device. If it does not work, use option 1 or 3.
Option 3: your own resolver inside the tunnel
Most reliable for many different clients: a resolver runs on the VPN server and forwards to INAL DNS via DoT (see Your own resolver as a bridge). You push it as usual:
push "dhcp-option DNS 10.8.0.1"
push "block-outside-dns"
Linux clients only apply pushed DNS servers with NetworkManager or a helper script for systemd-resolved (e.g. update-systemd-resolved).
Your own resolver as a bridge for admins: Unbound or Technitium on the VPN server
A resolver on the VPN server accepts the clients' queries inside the tunnel as usual on port 53 and forwards them encrypted to INAL DNS. This way the clients need no DoT/DoH setting of their own. The example assumes a tunnel network 10.8.0.0/24 in which the server has the address 10.8.0.1.
Unbound
- Install Unbound (on Debian and Ubuntu:
sudo apt install unbound). - Create the file
/etc/unbound/unbound.conf.d/inal-dns.conf:server: interface: 10.8.0.1 ip-freebind: yes access-control: 10.8.0.0/24 allow tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt forward-zone: name: "." forward-tls-upstream: yes forward-addr: 148.251.162.153@853#dns.inal.cloud - Check the configuration and restart Unbound:
sudo unbound-checkconf sudo systemctl restart unbound - Hand
10.8.0.1to the clients as their DNS server: with WireGuard viaDNS = 10.8.0.1, with OpenVPN viapush "dhcp-option DNS 10.8.0.1".
ip-freebind allows Unbound to start before the VPN interface exists. The part after # is the server name used for certificate validation.
Technitium DNS Server
- Under Settings → General → DNS Server Local End Points, add the address
10.8.0.1:53. - Under Settings → Recursion, allow queries from the tunnel network
10.8.0.0/24. - Under Settings → Proxy & Forwarders, enter
dns.inal.cloud (148.251.162.153:853)as forwarder, select DNS-over-TLS as Forwarder Protocol and save.
Towards INAL DNS, all VPN users appear with the address of your server. This solution is meant for family, a team or small groups, not for a public service with many users.
Tailscale, Headscale and NetBird mesh VPNs with their own DNS management
Mesh VPNs manage DNS centrally. Do not enter 148.251.162.153 as a name server there, as they query the server unencrypted. Let the device setting take effect instead.
Tailscale
- Open the DNS tab in the admin console.
- Keep Override DNS servers turned off and do not enter INAL DNS as a global name server. MagicDNS for device names in the tailnet keeps working; all other names are resolved by the device via INAL DNS as usual.
- If you use an exit node, it must be located in Germany.
Alternatively, turn off DNS takeover entirely on individual devices: in the app via Use Tailscale DNS or with tailscale set --accept-dns=false. MagicDNS names then no longer work on that device.
Headscale
In config.yaml, set override_local_dns: false in the dns section and do not enter INAL DNS under nameservers.global.
NetBird
Do not create a name server group with 148.251.162.153 under DNS → Nameservers in the dashboard. Without a name server group, the devices use their own DNS setting.
If all devices in the mesh should go through INAL DNS centrally, enter your own resolver as a bridge that is reachable inside the mesh as the name server.
VPN apps from providers such as Mullvad, Proton VPN or NordVPN
- Choose a server in Germany in the app.
- Do not enter the IP of INAL DNS under Custom DNS. The apps query it unencrypted.
- You can turn off the app's own ad and malware filters (depending on the provider e.g. “DNS content blockers”, “NetShield” or “Threat Protection”); INAL DNS already filters.
- Keep the device setup active and run the test with the VPN switched on.
To protect against “DNS leaks”, some VPN apps redirect every DNS query to their own servers or block DoT port 853. This varies from provider to provider. If no page loads with the VPN switched on, set e.g. Android's “Private DNS” to Automatic while using the VPN. In the browser, INAL DNS via DoH (Firefox, Chrome, Edge, Brave) usually remains usable anyway.
How to check that it works.
Three quick tests show whether your queries really reach INAL DNS.
Firefox
Open about:networking#dns in the address bar. For resolved names, the TRR column shows true when DNS-over-HTTPS is used.
Command line
With dig 9.18 or later you can query directly via DoH. If an IP address comes back, the service is reachable.
dig @dns.inal.cloud +https inal-it.de
Filter test
Open doubleclick.net in your browser. The site must be blocked, i.e. not load. If it does load, your device is not using INAL DNS yet.
dig @dns.inal.cloud +https doubleclick.net
Here you expect no IP address but status: NXDOMAIN.
Tip: after switching, it may take a few minutes until old entries have disappeared from the browser or system cache. Restarting the browser helps.
With a VPN: switch the VPN on and repeat the filter test. If doubleclick.net suddenly loads, the VPN overrides your DNS setting. If no page loads at all, the VPN exit is abroad or the VPN pushes 148.251.162.153 as an unencrypted DNS server. Help can be found under VPN.
Answers at a glance.
What is DNS-over-HTTPS or DNS-over-TLS?
DNS translates names like inal-it.de into IP addresses. Traditionally this happens unencrypted. Anyone along the way, for example on public Wi-Fi or at your internet provider, can read along and tamper with answers.
DNS-over-HTTPS (DoH), DNS-over-TLS (DoT) and DNS-over-QUIC (DoQ) encrypt these queries between your device and INAL DNS. The only difference is the transport: DoH uses HTTPS like a normal website, DoT a dedicated port (853), DoQ the modern QUIC protocol.
Why does site X not load?
Most likely the domain is on one of the filter lists. The ads and tracking list in particular is strict and occasionally hits harmless sites.
Write to us at info@inal-it.de with the domain and a short description. We will review unblocking it.
Is the service free?
Yes. INAL DNS is free and can be used without registration. There are no ads and no exploitation of data.
Are there any availability guarantees?
No. The service is operated on a best-effort basis, without guaranteed availability and without a claim to support. For critical environments, we recommend planning a second resolver as a fallback.
Is anything stored?
No. INAL DNS works without logs (“No Log”): no queries, no IP addresses and no domain names are stored. Statistics are kept in memory only and are not written to disk. Details can be found in the privacy policy.
Why does the service not work abroad?
Access is currently restricted to connections in Germany. This protects the service against abuse. When travelling, please temporarily switch your device back to automatic DNS. If you use a VPN with an exit in Germany on the go, for example to your FRITZ!Box at home, INAL DNS keeps working.
Does INAL DNS work together with a VPN?
Yes, if the VPN exit is in Germany and the VPN does not override your DNS setting. Do not enter 148.251.162.153 as the DNS server in the VPN, because INAL DNS only answers encrypted. Guides for FRITZ!Box, WireGuard, OpenVPN, Tailscale and VPN apps can be found in the VPN section.