HOWTO : Home made wired and wireless router with ZeroShell

My wired and wireless routers are connected together and served me for years. However, they produced a lot of heat on the devices and the electricity adapters. It is not ideal for running 24/7/365 at no air-conditioning environment with my new built home NAS server.

I searched the internet for days and later find ZeroShell. ZeroShell is very powerful and easy to install. It only supports Atheros chipset wireless PCI card. So, I can build a all-in-one (wired and wireless) router in one machine.

The minimum requirement of ZeroShell is Pentium 233MHz CPU, 96MB RAM and a ATA CD-ROM or Compact Flash card. The current version is 1.0 beta 10 at this writing. It is a Linux based router system. I am now going to build a simple and just work powerful home wired and wireless router. Enterprise features are not needed in this HOWTO.


Motherboard – VIA PC-1 PC2500E with VIA C7-D 1.5GHz CPU
RAM – 2 X 1GB DDR2 667MHz (maximum)
Hard drive – SATA SSD Enclosure with 8GB Compact Flash card (Transcend)
Wireless PCI card – TP-Link TL-WN551G (detachable antenna) 54M IEEE 802.11b/g
PCI Ethernet card – Planet Gigabit Ethernet PCI card
Switch – 100M or Gigabit switch (optional)

The on board 100M ethernet card is for connecting to internet (the interface name at ZeroShell is ETH01), the PCI ethernet card is for connecting to wired intranet (the interface name at ZeroShell is ETH00) and the TP-Link wireless card is connected to wireless computers (the interface name at ZeroShell is ETH02).

Install ZeroShell on hard drive

Download ZeroShell-1.0.beta10-CompactFlash-IDE-USB-SATA=1GB.img.gz and copy it to a USB stick. Download the CD iso (ZeroShell-1.0.beta10.iso and burn to CD-R. Follow the instruction at this PDF at

Configure the Wired ZeroShell

Set your IP address at your Ubuntu Desktop as static IP (, netmask is and the gateway is Connect to the Zeroshell with browser. The default username is admin and the password is zeroshell. You can change the password later during the configuration.

Follow the instruction at this up to “Surfing Internet”. The default gateway at “Storing our configuration” is

Use the default profile and change the administrator password. If the default gateway is not set for you at “Router” — “Network”, you just key in “”. Make sure to set IP range at the DHCP server for the ETH00, such as to or something like this.

After that, reconfigure your Ubuntu Desktop IP to roaming. Now, you can surf the internet via the wired intranet.

Configure the Wireless ZeroShell

Since this beta 10 version does not support web based setup via browser, you should go to the console or use ssh to set the wireless interface.

At the console, press “w”- Wifi Manager. Then press “n” to set the SSID. Press “c” to set the channel and WPA-PSK. Finally, press “r” to restart the device.

Make sure to add IP range at DHCP server. The ETH01 should be set to Dynamic IP enabled.

At the browser, go to “Setup”- “Network”. Add a IP ( and netmask ( to the interface ETH02, i.e. wireless interface. Then go to “Router”- “Manage” to add two static routes for connecting wired and wireless interfaces.

Route 1 :
Destination –
Netmask –
Type – net
Metric – 1
Gateway –
Interface – N/A

Route 2 :
Destination –
Netmask –
Type – net
Metric – 2
Gateway – N/A
Interface – eth00

Now, you can surf the internet by wireless and you can also login to the ZeroShell web interface by wireless too.

Let’s build your home all-in-one router now!!!