Help Us Beta Test FTLDNS

Originally published at:

In case you missed it, FTLDNS is Pi-hole's Faster Than Light (FTL) daemon combined with a DNS/DHCP server (our fork of dnsmasq). So instead of installing dnsmasq as a dependency, we will be distributing all services in a single binary. This will allow us to hook into dnsmasq's functionality at a code- level, as well as ensuring that you are using the latest stable version of the resolver and receive, e.g., important bug fixes early on.

Today, we're looking for some users to help us beta test the software. If you are comfortable with troubleshooting issues, and if you're interested, run these commands (after reading the details of this beta):

echo "FTLDNS" | sudo tee /etc/pihole/ftlbranch
pihole checkout core FTLDNS 
pihole checkout web FTLDNS

If you want to go back to the master branch at any time, the reversal process is fairly trivial:

# To Revert to master:
sudo rm /etc/pihole/ftlbranch
pihole checkout master

# To Revert to development:
sudo rm /etc/pihole/ftlbranch
pihole checkout dev


FTLDNS will disable existing installs of dnsmasq (because FTLDNS is dnsmasq with special sauce thrown in, so both cannot co-exist. All of your custom configs will still work because we haven't modified dnsmasq very much.

Verify You Have FTLDNS Installed

If FTLDNS installed correctly, dnsmasq should be disabled and replaced by pihole-FTL. Verify with these commands:
sudo systemctl status dnsmasq
sudo systemctl status pihole-FTL
dnsmasq should be offline and pihole-FTL should be active.

Another way to verify you are now running FTLDNS is by checking the dashboard and looking for the nice new query types donut chart.

Finally, you can check your versions are all on the FTLDNS branches.

For Raspbian Jessie users

We have good news for you as FTLDNS (should™!) reinstate Pi-hole's support for Debian Jessie! Note that, if you previously downgraded Pi-hole, you'll need to run a few more commands to test out FTLDNS:
cd /etc/.pihole
sudo git fetch --all && sudo git checkout master
cd /etc/pihole
sudo git fetch --all && sudo git checkout master
echo "FTLDNS" | sudo tee /etc/pihole/ftlbranch
pihole checkout core FTLDNS 
pihole checkout web FTLDNS

The Details

Except in special scenarios, pihole-FTL can't share a system with dnsmasq from v4.0 onwards, since both provide the same services (DNS and possibly also DHCP) and need to bind to the same ports.

Think of FTLDNS as dnsmasq with Pi-hole's special sauce. This allows us to easily merge any upstream changes that get added, while still allowing us to continue to develop Pi-hole as we have been.

What does this mean for you? If you already have dnsmasq installed, it will be disabled and pihole-FTL will take its place. If you have any custom config files made for dnsmasq, they will still all work (because as we mentioned, we use dnsmasq internally to provide the DNS/DHCP service). However, we do disable dnsmasq so pihole-FTL can run properly. If you have any custom scripts that use the binary name dnsmasq, they would need to be edited as pihole-FTL is your new DNS/DHCP service.

What's New With FTLDNS?

Better performance

Since we have a closer integration with dnsmasq, we gain a performance boost by not having to read the log file.

No need for the log file

Many of you have been complaining that the heavy log writing may lead to SD card wearing-out. With FTLDNS, the log file is not needed any longer and hence this heavy disk writing is a thing of the past. However, note that during the beta phase, extensive logging actually stays enabled to ease possible debugging.

More Query Types

You'll now be able to see all sorts of different DNS records.

and more details on the Query Log page (Reply Type, more to come)

Getting Help and Providing Feedback About The Software

We'd love to hear your feedback on the software and any bugs you may run into. We're available on GitHub, Discourse, Reddit and Twitter.
Please tag your issues with ftldns (where available) so we know it's related to that and not a regular issue.
FTL issue on new install
Raspbian jessie issues, not logging, no graphs, have to restart ftl service
New install of 3.3 doesn't seem to be actually filtereing
PiHole configured as DNS + DHCP and has internet access, but no traffic logged in web console
Install a more recent dnsmasq on Raspbian Jessie
So Long Pihole
Webinterface not reachable
Verify DNS resolves/VPN help
Recompile dnsmasq
Pihole GUI not updating stats
Can't insert Port into DNS Setting Page
Questions for Setting Up Pi-Hole(s)
DHCP not working with "Too few arguments" error log
DNS server not running - Debug
Empty dashboard
No data in query log
No data in query log
PiHole + Unbound: no connection for OS
DNS service is not running on pi hole
DNS and FTL not running
[Solved/Resolved] CloudFlare Upstream DNS Missing
Cannot get custom DNS to unbound to stick in setupvars.conf
Implement Response Zone Policies (NXDOMAIN) for end-user performance increase
Web interface showing no stats
Pihole not blocking ads in adlists.list
Pi-hole showing zero clients, zero ads blocked yet pihole -t shows active connections
Pi-hole only briefly works after reboot
Services won’t start after upgrade
Pihole Start up Issues
Dnsmasq Service Failing - PiHole not working
Seeing an unrecognized domain in top clients
Unbound with Pi-hole v3.3.1
Update Failed - Please contact pihole
Issue installing pihole
Unable to use pihole on raspbian 8
403 - Forbidden after install
Unexpected version of dnsmasq on Raspbian Jessie
Dnsmasq startet nicht - Grund 01-pihole.conf -> log-queries=extra | Token zgpnrjzunw
Fresh install, DNS/FTP not running/offline
Features white/black/block-lists

Disable (but dnsmasq is still installed) or uninstall?

Does not work on my system (Debian 9):

Unit dnsmsaq.service could not be found.

but the command 'sudo /etc/init.d/dnsmasq status'.

We disable the service with systemctl disable dnsmasq

As dnsmasq is embedded into FTL, there is no need to have it running separately :slight_smile:

1 Like

I'm on FTLDNS now. Update without obvious problems.

To monit users: adapt or deactivate your configuration file for previous dnsmasq.

2 posts were split to a new topic: Display of number of blocked entries

There is a typo with "dnsmsaq" instead of "dnsmasq"
"sudo systemctl status dnsmsaq" should be "sudo systemctl status dnsmasq"


Fixed it...

1 Like

5 posts were split to a new topic: IPv6 ICMP socket created fails

@koolkid1935 @Tntdruid Thanks for reporting, I will look into it.

Updated with the two commands above with 0 problems.
I'm on armbian 5.38 jessie (orange pi) with dnsmasq updated by hand to v2.76
At the moment it is working fine.


2 posts were split to a new topic: Unknown reply type in Query Log

Installed it on my RPi3 running Raspbian Stretch.
Both my Domain Controllers (simple home setup) use it as their only forwarder.
Normally it's the Pi-hole running in a CentOS VM.

No weird issues so far. Feels faster resolving wise, so that's good :slight_smile:


10 posts were split to a new topic: Unexpected version of dnsmasq on Raspbian Jessie

5 posts were split to a new topic: Fetching branches fails

3 posts were split to a new topic: Setting DNS cache limit with FTLDNS

4 posts were split to a new topic: Clients over time doesn’t update, just sits there with the spinnins

works like a charm. have to play around with up and downgrade-procedure but.... nothin. :smile:
clean and small - like it!


So far the beta version works fine on my Pi.

It even solves the bug between dnsmasq < 2.78 and DNScrypt-proxy (see here), so I can use FTLDNS with DNSSec enabled on Pi side (which is not possible with the "master" branch), perfect !