You can create a file
/etc/pihole/pihole-FTL.conf that will be read by FTLDNS on startup.
Possible settings (the option shown first is the default):
FTL reply to blocked queries?
Up to how many hours of queries should be imported from the database and logs? Maximum is 24.0
Which privacy level is used?
FTL ignore queries coming from the local machine?
FTL to analyze AAAA queries from pihole.log?
FTL only analyze A and AAAA queries?
Listen only for local socket connections or permit all connections
On which port should FTL be listening?
Host name resolution¶
FTL try to resolve IPv6 addresses to host names?
FTL try to resolve IPv4 addresses to host names?
FTL load information from the database on startup to be aware of the most recent history?
How long should queries be stored in the database? Setting this to
0 disables the database
How often do we store queries in FTL's database [minutes]?
Specify path and filename of FTL's SQLite3 long-term database. Setting this to
DBFILE= disables the database altogether
Location of FTL's log file. If you want to move the log file to a different place, also consider this FAQ article.
File which contains the PID of FTL's main process.
File containing the port FTL's API is listening on.
File containing the socket FTL's API is listening on.
Config file of Pi-hole containing, e.g., the current blocking status (do not change).
List containing the audited domains.
Database containing MAC -> Vendor information for the network table.
Enable all debug flags. If this is set to true, all other debug config options are ignored.
Print debugging information about database actions. This prints performed SQL statements as well as some general information such as the time it took to store the queries and how many have been saved to the database.
Prints a list of the detected interfaces on startup of
pihole-FTL. Also prints whether these interfaces are IPv4 or IPv6 interfaces.
Print information about shared memory locks. Messages will be generated when waiting, obtaining, and releasing a lock.
Print extensive query information (domains, types, replies, etc.). This has always been part of the legacy
debug mode of
Print flags of queries received by the DNS hooks. Only effective when
DEBUG_QUERIES is enabled as well.
Print information about shared memory buffers. Messages are either about creating or enlarging shmem objects or string injections.
Print information about garbage collection (GC): What is to be removed, how many have been removed and how long did GC take.
Print information about ARP table processing: How long did parsing take, whether read MAC addresses are valid, and if the
macvendor.db file exists.
Controls if FTLDNS should print extended details about regex matching into
Due to legacy reasons, we also support the following setting to be used for enabling the same functionality:
Note that if one of them is set to
true, the other one cannot be used to disable this setting again.
Print extra debugging information during telnet API calls. Currently only used to send extra information when getting all queries.
Print information about overTime memory operations, such as initializing or moving overTime slots.
Print information about why FTL decided that certain queries were recognized as being externally blocked.
Print information about capabilities granted to the pihole-FTL process. The current capabilities are printed on receipt of
SIGHUP, i.e., the current set of capabilities can be queried without restarting
pihole-FTL (by setting
DEBUG_CAPS=true and thereafter sending
killall -HUP pihole-FTL).