TFTP Router Flasher
TFTP Router Flasher is a cross-platform command-line tool for flashing firmware to routers using the TFTP protocol. It is designed to assist in firmware recovery for routers that support TFTP-based rescue modes, such as many ASUS RT-series models.
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.
📚 Contents
- ✨ Features
- 📦 Installation
- 🛠️ Build Requirements
- 🚀 Usage
- 🖥️ Compatibility
- 📄 License
- 🤝 Contributing
- ⚠️ Disclaimer
✨ Features
- 🛠️ 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
📦 Installation
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.
🛠️ Build Requirements
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)
🐧 Linux Setup Instructions
✅ Debian / Ubuntu
sudo apt update
sudo apt install build-essential python3-dev
✅ CentOS / RHEL / Fedora
sudo dnf groupinstall "Development Tools"
sudo dnf install python3-devel
✅ Arch Linux
sudo pacman -S base-devel python
✅ Void Linux
sudo xbps-install -S base-devel python3-devel
Once 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 .
🚀 Usage
tftp-router-flasher --firmware /path/to/firmware.trx --interface eth0
CLI Options
| 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 |
🖥️ Compatibility
Click to view supported platforms
Tested on:
- ✅ Linux (Debian, Ubuntu, Arch)
- ✅ macOS
- ⚠️ Windows (not officially supported due to reliance on
ipandroutecommands)
📄 License
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.
🤝 Contributing
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.
⚠️ Disclaimer
This tool is provided as-is. Flashing firmware can permanently damage your device if done incorrectly. Use at your own risk.
Metadata
Release files for tftp-router-flasher 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tftp_router_flasher-0.0.1.tar.gz | 26.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tftp_router_flasher-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.1 kB
Release files / tftp_router_flasher-0.0.1.tar.gz
| Download URL | tftp_router_flasher-0.0.1.tar.gz |
|---|---|
| Size | 26.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1de2e50772751ae751295fde32c89ed32f15a693085c673a818fe362b7ed4e97
|
|
BLAKE2b-256 checksum How to use checksums |
d81f9510c428243f7257b9a4d9a2821beb049fc066497b1f482a11aa5891ecdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / tftp_router_flasher-0.0.1-py3-none-any.whl
| Download URL | tftp_router_flasher-0.0.1-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e62016b30cb0b4adfa068984fa1aa42edafe542402a8b1077fe4a971db34c3cd
|
|
BLAKE2b-256 checksum How to use checksums |
1e2c30f3d25bd4c5320821f125899b76baebfd6f1b471c495067ea46408a7008
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|