This tool is a modern rewrite of the original arescue script by Joonas Nissinen. It has been updated for Python 3, refactored for clarity, and packaged as a CLI utility with improved logging, interface detection, and dependency management.
- ✨ Features
- 📦 Installation
- 🛠️ Build Requirements
- 🚀 Usage
- 🖥️ Compatibility
- 📄 License
- 🤝 Contributing
⚠️ Disclaimer
- 🛠️ Automatically configures your network interface for rescue mode
- 📡 Scans IP ranges to detect routers in recovery mode
- 📤 Uploads firmware via TFTP using a Python client
- 🧾 Logs all activity to both console and file
- 🧪 Includes retry logic and fallback IP configurations
- 🧰 Packaged for easy installation and CLI use
Clone the repository and install locally:
git clone https://github.com/vr-ski/tftp-router-flasher.git
cd tftp-router-flasher
pip install .This will install the CLI command tftp-router-flasher, which you can run from your terminal.
💡 Make sure you're using
pip >= 21.3to ensure proper support forpyproject.tomlbuilds.
Click to expand Linux setup instructions
TFTP Router Flasher depends on Python packages like psutil that include native C extensions. To install successfully, your system must have:
- A C compiler (e.g.
gcc) - Python development headers (e.g.
Python.h) - Build tools (e.g.
make,binutils)
sudo apt update
sudo apt install build-essential python3-devsudo dnf groupinstall "Development Tools"
sudo dnf install python3-develsudo pacman -S base-devel pythonsudo xbps-install -S base-devel python3-develOnce these are installed, you can run:
pip install .Or, if you're using a virtual environment:
python -m venv .venv
source .venv/bin/activate
pip install .tftp-router-flasher --firmware /path/to/firmware.trx --interface eth0| Flag | Description | Default |
|---|---|---|
--firmware |
Path to the firmware file | (required) |
--interface |
Network interface to use | en0 |
--hostname |
Router IP address | 192.168.1.1 |
--timeout |
TFTP upload timeout (seconds) | 120 |
--no-ping |
Disable ping check. Useful for some models | False |
--debug |
Enable debug logging | False |
Click to view supported platforms
Tested on:
- ✅ Linux (Debian, Ubuntu, Arch)
- ✅ macOS
⚠️ Windows (not officially supported due to reliance onipandroutecommands)
This project is licensed under the GPL-2.0 License.
This project is inspired by arescue by Joonas Nissinen, originally licensed under GPL-2.0. All original credit goes to the author.
Pull requests are welcome! If you’ve tested this with other router models or added new features, feel free to open an issue or submit a PR.
This tool is provided as-is. Flashing firmware can permanently damage your device if done incorrectly. Use at your own risk.