OpenWRT and Android USB Tethering For Backhaul

When traveling, I use Wi-Fi tethering with a smartphone a lot to keep my notebook and other devices connected. When staying at a place for more than just a day or two, however, I prefer a somewhat more sophisticated setup with a Linksys router running OpenWRT.

No, this is not just a fancy but often a must. For one thing, a dedicated router with good antennas results in a much better Wi-Fi range on both the 2.4 and 5 GHz bands and both bands can be used simultaneously. Also, I can make use of sophisticated features such as traffic shaping to keep round trip delays to a minimum. This is particularly important when uploading large amounts of data while doing attending conference calls.

So far, I’ve been using a small LTE/5G router with an Ethernet port and Wi-Fi switched off as backhaul connectivity for the Linksys OpenWRT router. But recently I discovered that OpenWRT has great support for USB tethering with Android phones, which saves a lot of weight in the suitcase, as I can use the spare phone I carry for redundancy reasons. Also, I don’t have to find and additional power outlet close to a window anymore, as the phone is powered over the USB cable. So here’s how to set this up:

My Linksys WRT1200AC has two USB ports. While both can be used for USB tethering with an Android phone, one of them supports USB3, which comes in handy, especially for 5G-like backhaul speeds of several hundred megabits per second. USB tethering can be activated in all Android devices I have come across so far in the “Hotspot & Tethering” menu as soon as the phone is connected to a USB host device. It’s even possible to automatically activate USB tethering in the hidden “Developer Options” menu by switching to “RNDIS (USB Ethernet)” in “Select USB configuration”, so no manual intervention on the phone is required after a reboot or an interruption of the USB connectivity.

On the router side, a number of OpenWRT software packages need to be installed for USB tethering. This article describes the details. Once done, a new network interface can be created and configured to act as a WAN port, and to use the USB port as a physical interface. This way, OpenWRT automatically uses either the traditional Ethernet WAN port as backhaul if connectivity is detected, or the USB port. No reconfiguration necessary.

In practice I could easily reach several hundred megabits per seconds over the USB WAN interface, so this will serve me well for a long time before USB-3 or the CPU of the router becomes the bottleneck. In practice, this setup has proven very stable and I’ve been running the router without any hiccups for more than 5 days at a time and tens of gigabytes of data transferred until it was time to go back home.