For developers, OpenWrt is about using the framework to build applications without having to build a full-fledged firmware to support it; for users, it means the ability to fully customize and use the device in unprecedented ways.
Second, openWRT development background
When Linksys released the source code of WRT54G/GS, many different versions of Firmware appeared on the Internet to enhance the original functions. Most Firmware uses 99% of Linksys source code, and only 1% is added. Each Firmware is designed for a specific market. There are two disadvantages. The first is that it is difficult to integrate various versions of Firmware. The second is that this version is farther and farther away from the official Linux distribution.
OpenWrt chose another path. It started from scratch and added each software bit by bit to make it close to the functions of the Linksys version of Firmware. The success of OpenWrt is that its file system is writable. No need to recompile after every modification, making it more like a small Linux computer system.
3. OpenWrt function
1. Openwrt can be used as a client to connect to other wifi as WAN, and then create your own wifi as a LAN, which is equivalent to a wired WAN port that can achieve wifi Internet access without plugging in a network cable. Other firmware doesn’t seem to have this setting method, I don’t know if I didn’t find it. Other firmwares usually can only relay other wifi, the client actually connects to the wifi of this relay, and the ip is also assigned by the upper-level relay wifi, so it is impossible to create a sub-network through this router. The advantage of openwrt is that it connects to the internet through wifi, creates a subnet by itself, can port mapping, speed limit, etc.
2. SSH tunnel
OpenWrt includes an SSH server so you can access its terminal. After exposing its SSH service to the network (don’t forget to encrypt it with key authentication instead of weak passwords), you can connect remotely and access it encrypted using the SSH tunnel. This allows you to access some websites that can only be accessed in China through public Wi-Fi.
3. Build a VPN
SSH tunnels and VPNs are similar in many ways, but you can still build your own VPN over the OpenWrt router.
4. Install the BitTorrent client
If you have a specific network attached storage (NAS), or a router that comes with a USB port and a USB device, you can use the router as a BitTorrent client.
5. Run the server software
OpenWrt’s repositories contain packages that allow it to function as a web server, such as IRCserver, BitTorrenttracker, and more. You may be using a router, so why not just use the router as a server? A router uses far less power than a computer, so it’s smart to think of it as a lightweight server.
6. Traffic shaping service
OpenWrt lets you shape packets that are routed and inspect their quality of service, prioritizing the right ones. You can even prioritize the assignment of specific packets to specific computers, while deferred processing of packets assigned to other computers.
7. Create a VIP network
The OpenWrt wiki has instructions on how to set up a special wireless network for guests, which is separate from your main network for security. You can even limit the speed of the VIP network.
8. Capture and analyze network traffic
You can use tcpdump to log all packets going through your router. It can then be shared to the network or opened with a tool like Wireshark to analyze your network traffic and behavior.
4. Features of openWRT
OpenWRT is a highly modular, highly automated embedded Linux system with powerful network components and scalability, and is often used in industrial control equipment, telephones, small robots, smart homes, routers, and VOIP devices. At the same time, it also provides more than 100 compiled software, and the number is still increasing, and OpenWrtSDK simplifies the process of developing software.
Unlike many other distributions for routers, OpenWRT is a fully functional, easily modifiable router operating system written from scratch. In practical terms, this means that you can use the features you want without adding other nuisances, and the linuxkernel that supports these features is far newer than most distributions.