Table of Contents
TFTP Server Configuration
The TFTP Server is the core tool for router unbricking. It transfers firmware to a router that is already in recovery mode. It normally works only on the local network; the important details are the computer's static IP, firmware filename, shared folder, and selected network adapter.
TFTP Introduction
TFTP (Trivial File Transfer Protocol) - A simple file transfer protocol without authentication, suitable for transferring small files within a local network.
Windows
TFTPD32/TFTPD64
1. Download TFTPD64 2. Run as Administrator 3. Configure the interface:
| Setting | Value |
| Current Directory | Folder containing the firmware |
| Server Interface | Computer IP (e.g. 192.168.1.100) |
| Protocol | TFTP |
| Port | 69 |
4. Click “Show Dir” to ensure the firmware file is visible 5. Ensure the firewall allows TFTP
Windows 10/11 Built-in TFTP
```powershell # Run PowerShell as Administrator Install-WindowsFeature -Name TFTP-Client
# Or enable manually: # Control Panel → Programs → Turn Windows features on or off → TFTP Client ```
macOS
On a Mac, the common mistakes are `/private/tftpboot` permissions, binding the server to Wi-Fi instead of Ethernet, or forgetting to set a static IP. You can download Router Recovery's macOS TFTP Server to check these recovery setup items before entering router recovery mode.
Built-in tftpd
```bash # Start the TFTP server sudo launchctl load -w /System/Library/LaunchDaemons/tftp.plist
# Set the shared folder (default /private/tftpboot) sudo mkdir -p /private/tftpboot sudo chmod 777 /private/tftpboot sudo cp firmware.bin /private/tftpboot/
# Restart the service sudo launchctl unload -w /System/Library/LaunchDaemons/tftp.plist sudo launchctl load -w /System/Library/LaunchDaemons/tftp.plist ```
Homebrew
```bash brew install atftp atftpd –daemon –bind-address 192.168.1.100 –directory /your/firmware/folder ```
Linux
tftpd-hpa
```bash # Install sudo apt install tftpd-hpa
# Configure /etc/default/tftpd-hpa TFTP_USERNAME=“tftp” TFTP_DIRECTORY=“/srv/tftp” TFTP_ADDRESS=“0.0.0.0:69” TFTP_OPTIONS=“–secure –verbose”
# Create the directory sudo mkdir -p /srv/tftp sudo chmod 777 /srv/tftp sudo cp firmware.bin /srv/tftp/
# Restart the service sudo systemctl restart tftpd-hpa ```
Verify TFTP Server
```bash # Test from another computer tftp 192.168.1.100 tftp> get firmware.bin tftp> quit ```
When verifying on a Mac, also confirm the TFTP Server's local IP is in the subnet expected by the router recovery guide. For example, if the router listens around `192.168.1.1`, the Mac is often set to `192.168.1.254` or another address in that subnet.
Troubleshooting
Connection Timeout
* Check if the firewall allows UDP port 69 * Ensure the computer and router are on the same subnet * Verify the IP address is correct
File Transfer Failed
* Check if the firmware filename is correct * Confirm the firmware file has read permissions * Try disabling the firewall for testing
Transfer Complete but Router Has No Response
* The firmware may not be compatible with this model * Check if the firmware version matches the hardware version
Pre-Recovery Check
Before you power-cycle the router while holding Reset, run a macOS TFTP recovery check to confirm the static IP, firmware file, TFTP folder, and wired network adapter are ready.