Windows 11 on ARM64 - FTL and port 53 under WSL fails

Installing on Windows 11 Pro on Snapdragon X under WSL using CenttOS 9 (stream). Making minor update to /etc/wsl.conf to change default user to root and disabling SELinux. Installation completes without issues.
Message with IP and password appear, confirming successful install. Expecting to see the dashboard with all items green.

First thing, red text with warning DNS server failure. I spent some time reading online, but nothing leads to resolution. The error is there no matter what configuration I add/change.

tail -F /var/log/pihole/FTL.log shows the following where second line shows critical error.

2025-03-17 09:25:19.378 INFO PID of FTL process: 1289
2025-03-17 09:25:19.378 CRIT Error in dnsmasq configuration: failed to create listening socket for port 53: Address in use
2025-03-17 09:25:19.386 INFO PID of FTL process: 1289
2025-03-17 09:25:19.386 INFO Database version is 21
2025-03-17 09:25:19.386 INFO Database successfully initialized
2025-03-17 09:25:19.387 INFO Imported 0 queries from the on-disk database (it has 0 rows)
2025-03-17 09:25:19.387 INFO Parsing queries in database
2025-03-17 09:25:19.387 INFO Imported 0 queries from the long-term database
2025-03-17 09:25:19.387 INFO  -> Total DNS queries: 0
2025-03-17 09:25:19.387 INFO  -> Cached DNS queries: 0
2025-03-17 09:25:19.387 INFO  -> Forwarded DNS queries: 0
2025-03-17 09:25:19.387 INFO  -> Blocked DNS queries: 0
2025-03-17 09:25:19.387 INFO  -> Unknown DNS queries: 0
2025-03-17 09:25:19.387 INFO  -> Unique domains: 0
2025-03-17 09:25:19.387 INFO  -> Unique clients: 0
2025-03-17 09:25:19.387 INFO  -> DNS cache records: 0
2025-03-17 09:25:19.387 INFO  -> Known forward destinations: 0
2025-03-17 09:25:19.475 INFO FTL is running as user pihole (UID 996)
2025-03-17 09:25:19.475 INFO Reading certificate from /etc/pihole/tls.pem ...
2025-03-17 09:25:19.475 INFO Using SSL/TLS certificate file /etc/pihole/tls.pem
2025-03-17 09:25:19.475 INFO Web server ports:
2025-03-17 09:25:19.476 INFO   - 0.0.0.0:80 (HTTP, IPv4, optional, OK)
2025-03-17 09:25:19.476 INFO   - 0.0.0.0:443 (HTTPS, IPv4, optional, OK)
2025-03-17 09:25:19.476 INFO   - [::]:80 (HTTP, IPv6, optional, OK)
2025-03-17 09:25:19.476 INFO   - [::]:443 (HTTPS, IPv6, optional, OK)
2025-03-17 09:25:19.476 INFO Restored 1 API session from the database
2025-03-17 09:25:21.085 INFO Gravity database has been updated, reloading now
2025-03-17 09:25:21.087 INFO Compiled 0 allow and 0 deny regex for 0 client in 0.1 msec
2025-03-17 09:25:24.125 INFO Received 8/8 valid NTP replies from pool.ntp.org
2025-03-17 09:25:24.125 INFO Time offset: -1.623357e+03 ms (excluded 1 outliers)
2025-03-17 09:25:24.125 INFO Round-trip delay: 3.990616e+01 ms (excluded 1 outliers)
2025-03-17 09:25:24.126 INFO NTP server listening on 0.0.0.0:123 (IPv4)
2025-03-17 09:25:24.126 INFO NTP server listening on :::123 (IPv6)

Debug Token:

https://tricorder.pi-hole.net/hol06XRv/

All isntalled packages are attached.
installed.txt (41.1 KB)

All inputs would be greatly appreciated.

That indicates that another DNS server is already hogging port 53.

You have to stop and disable that other DNS server.

Thanks Bucking_Horn for response.

There is no DNS server running. These are all the processes before pi-hole installation.

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10784   892 ?        Ssl  17:58   0:00 /init
root         4  0.0  0.0  10784   636 ?        Sl   17:58   0:00 plan9 --control-socket 6 --log-level 4 --server-fd 7 --pipe-fd 9 --s
root         7  0.0  0.0  10784   408 tty1     Ss   17:58   0:00 /init
usr_01       8  0.0  0.0  15036  2388 tty1     S    17:58   0:00 -bash
root       990  0.0  0.0  15036  2404 pts/1    Ss   18:02   0:00 bash -rcfile .bashrc
root       994  0.0  0.0  18660  3060 pts/1    R    18:04   0:00 ps -aux

What is the output of sudo ss -tupnl sport = 53 (use spaces around =)?

Thanks rdwebdesign,

In CentOS the command is a bit different sudo ss -tupnl '( sport = 53 )'

Here is the output

Netid       State         Recv-Q        Send-Q                Local Address:Port               Peer Address:Port       Process
udp         UNCONN        0             0                    10.255.255.254:53                      0.0.0.0:*
tcp         LISTEN        0             1000                 10.255.255.254:53                      0.0.0.0:*

There's a process hogging 10.255.255.254:53.
As that process doesn't show a name, it is likely external to your virtual CentOS, injected by your Windows VM environment.

You may be able to identify that on your Windows host OS.
I am not familiar with WSL at all, but a quick Internet search suggests that you'd probably have to adjust WSL's dnsProxy or dnsTunneling options to free port 53 in your CentOS guest OS.

Thanks Bucking_Horn

This was my first impression, however, the /etc/wsl.conf I created has the right directives. dns directive was suggested by a couple of llm but it seems MS is no longer supporting it.

[boot]
systemd=true
[user]
default=root
[network]
dns=false
generateResolvConf=false
geherateHosts=false
dnsTunneling=false
dnsProxy=false

Truly running out of options. Similar setup on x86 works without any issues.

For anyone who ends up here. The resolution is not in the wsl.conf file.

Head to your personal profile folder, usually c:\users\%UserProfile% and create or update the .wslconfig with the following settings.

[wsl2]
dnsProxy=false
dnsTunneling=false

Shutdown and start the distribution. Continue with Pi-hole install as usual.

1 Like

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.