If you think your wireless router (opens in new tab) is only good enough to dish out IP addresses to connected devices (opens in new tab) around your house, you need to infuse new life into it with the OpenWRT (opens in new tab) firmware.
Just as you can replace the operating system on your computer and on your Android phone (opens in new tab), you can flash a new firmware on your router as well.
In fact, there are several embedded operating systems designed for routers, but few offer as much dexterity as OpenWRT. The open source (opens in new tab) embedded Linux distro (opens in new tab) offers a lot more options out of the box than your router’s stock firmware. Moreover it can be fleshed out though a Linux-like package management system.
OpenWRT supports thousands of additional packages that you can use to add all sorts of extra functionality to your router.
For instance, Airbnb hosts can use OpenWRT to create a guest WLAN that enables access to the Internet, but not their internal network. Similarly, small businesses can use OpenWRT to set a virtual private network (VPN (opens in new tab)) based on OpenVPN (opens in new tab) or WireGuard (opens in new tab).
If your router has a USB port, you can hook up a USB disk (opens in new tab) and use it as a network attached storage (NAS (opens in new tab)), or stream content across the network. You can also connect a USB webcam (opens in new tab) for live video surveillance (opens in new tab), or for streaming video.
While OpenWRT works with a host of routers, its developers suggest (opens in new tab) it works best with multi-core, ARM-based devices with at least 256 MB of RAM for acceptable performance for most tasks. Also, while a router without USB support can still be used as a web or application server, a USB port can extend the use of the router manifold.
Loading new router firmware will vary based on the make of your router. The page for your router on OpenWRT’s website will have the exact steps.
Broadly speaking the project produces two types of images for supported routers (opens in new tab). If you are installing OpenWRT for the first time you’ll need a Factory image. If you are upgrading from one OpenWRT version to another you need the Sysupgrade image.
Generally speaking you can flash the OpenWRT image on your router through the firmware upgrade page on its stock firmware.
Remember however that before you flash the firmware, make sure you connect the router to your computer via an Ethernet cable. The flashing process can take a few minutes, and you shouldn’t interrupt the process. Once it’s complete, the router will automatically reboot.
Once the router has been flashed and restarted, fire up a browser on the computer connected to the router via the ethernet cable and head to 192.168.1.1, which is the default address that OpenWRT assigns to the routers.
This will bring up a login page. OpenWRT uses the root user as the default administrator, which by default doesn’t have a password. You can login and configure the router without setting a password, but OpenWRT will keep displaying a banner at the top of the administration interface to remind you to set a password, until you do so.
To set a password for the root user, log in to the administration page, and head to System > Administration. Enter a password and click the Save & Apply button to finalize the changes.
As you might have noticed, the administration interface also has a Save button. You can use this button to save changes across multiple tabs, without committing them to the router. Once you have made all the changes, you can ask OpenWRT to commit them to the router with the Save & Apply button.
Before proceeding further, it’s also a good idea to enable SSH access to log into your router from the terminal. While the graphical administration interface offers a lot of flexibility, some tasks take a lot less time when done from the command-line interface (CLI).
To enable SSH access, switch to the SSH Access tab from under System > Administration. Click the Add instance button to add a Dropbear instance to connect to the SSH server inside OpenWRT. You can safely leave the other settings to their default values, and click Save & Apply to bring the SSH server online.
You can now connect to the router either using the ssh command from a Linux machine, such as ssh firstname.lastname@example.org, or using a SSH client like PuTTY from Windows. The password will be the same as the one you’ve set for the root user.
The last bit of configuration that you need to do before you can play around with the interesting stuff is setting up the WiFi, which is desabled by default for security reasons.
To allow computers in your network to connect to your OpenWRT router over WiFi, head to Network > Wireless. This page will list all the wireless radios in your router. Many modern routers have multiple routers, one for 2.4Ghz, and another for 5Ghz, but the process of setting up either is the same.
Begin by clicking the Add button corresponding to the radio you want to configure. Scroll down to the Interface Configuration section, make sure the Mode is set to Access Point, and enter the ESSID of the wireless network in the space provided.
Then switch to the Wireless Security tab, and use the pull-down menu to select the WPA2-PSK encryption, which is what OpenWRT recommends for small/home office users. Then enter the password in the Key textbox.
Then switch to the Advanced Settings tab, to select the correct country code for your OpenWRT router to ensure it meets the country’s legal regulations. You can leave the other settings to their default values, or tweak them according to your needs.
Click Save, and repeat the steps for the other radio if your router has one. When you’re done, click Save & Apply. You can now scan and connect to your router using the ESSID and the specified password.
You can now access the OpenWRT router from any computer or device on your network.
You can now flesh out your router as per your needs. One of the best things about OpenWRT is its ample documentation (opens in new tab) that have step-by-step instructions for virtually all popular tasks, such as setting up a captive portal (opens in new tab), configure dynamic DNS (opens in new tab), setup a NAS (opens in new tab), and a lot more.