# Ubuntu Host Preparation for Pi-hole (Port 53 Conflict Fix) ## 1. The Issue: Port 53 Conflict By default, Ubuntu runs `systemd-resolved`, which acts as a local DNS stub listener on **Port 53**. Pi-hole also requires Port 53 to function as a DNS server. If `systemd-resolved` is not modified, the Pi-hole container will fail to start with an "address already in use" error. ## 2. The Fix: Steps to Release Port 53 ### Step 1: Disable the DNS Stub Listener 1. Open the resolved configuration file: ```bash sudo nano /etc/systemd/resolved.conf ``` 2. Locate the line `#DNSStubListener=yes`. 3. Change it to: ```ini DNSStubListener=no ``` 4. Save and exit (`Ctrl+O`, `Enter`, `Ctrl+X`). ### Step 2: Fix Local DNS Resolution Since the stub listener is disabled, the default `127.0.0.53` DNS entry will no longer work. Point the system to the upstream DNS file instead so the host maintains internet connectivity. 1. Remove the existing symlink: ```bash sudo rm /etc/resolv.conf ``` 2. Create a new symlink to the actual resolv file: ```bash sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf ``` ### Step 3: Reload and Restart Services Apply the changes and reload the daemon to clear any configuration warnings. ```bash sudo systemctl daemon-reload sudo systemctl restart systemd-resolved ``` ### Verification Check if Port 53 is free (output should be empty or not show `systemd-resolved`): ```bash sudo lsof -i :53 ```
