The Tiny Internet Project, Part I


The Main Server:

The key requirement for this project is a primary computer with a processor that can handle virtualization. Many, many computers made since 2010 or so have this capability, including the tower I used for my very first tiny Internet. It has:

  • One Intel i3 processor (four cores).

  • 8GB of memory (possible with less, but not much less).

  • Two 2TB SATA drives (one drive is enough).

  • Two 10/100/1000 Ethernet ports (it had one built in to the motherboard, and I added a PCI card).

To see if the computer you have in mind can become a Proxmox server, there are several ways to test it to see if it supports virtualization. There are tools for Windows and Linux, which are listed in the Resources section at the end of this article.

For those already using a Linux desktop or server, you can use existing commands to see if virtualization is supported. Open a terminal and run this simple command to do a quick check:

$ cat /proc/cpuinfo | grep vmx

It should return something that looks like the following (repeated several times for each core you have):

[flags    : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
 ↪pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse
 ↪sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc
 ↪arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc
 ↪aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl
 ↪vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1
 ↪sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c
 ↪rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm
 ↪tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms]

If the flags include vmx (possibly highlighted red in the output), you're probably good to go. You also might check your system's BIOS. Often, virtualization is possible, but it's disabled by default. Look for it in your BIOS, enable it and reboot.

If you have additional hard drives that you'd like to use with this project, you can install them in your main server (the Proxmox host machine). Technically speaking, you need only a single drive, but having more than one can give you nice options for backing up the things you build. It's also good practice to learn how to mount multiple drives!

The Administration PC:

You'll need some sort of second computer to act as your main administrative machine. This does not need to support virtualization. It only needs to be able to run a Web browser, maybe tinyproxy, and have an Ethernet port and Wi-Fi—or two Ethernet ports. If the machine doesn't have built-in Wi-Fi, you can get a USB dongle to do the job. The goal here is to have a machine with two network connections: one to your Tiny Internet and one to the network you use to access the Internet, such as your home or school network.

The administration PC can be your current desktop or laptop, and it can be Windows, Mac or Linux. If you're planning to have a main Proxmox server with two Ethernet ports, your administration PC needs to have only two network connections if you want to connect to your private tiny Internet and the public Internet simultaneously. One scenario also uses this PC as an http proxy server, which again needs access to both public and private networks.

I had a couple old laptops, and I successfully used the following for my administration PC:

  • An IBM ThinkPad T60p (with built-in Wi-Fi and 10/100/1000 wired Ethernet).

  • A Dell Mini 9 (with built-in Wi-Fi and 10/100 wired Ethernet).

  • A Dell Mini 10 (with built-in Wi-Fi and 10/100 wired Ethernet).

  • A first-generation Intel-based MacBook (with built-in Wi-Fi and -10/100/1000 wired Ethernet).

  • A Dell GX620 (with a Wi-Fi card and built-in 10/100 wired Ethernet).

Any old tower PC or desktop will work too—nothing fancy needed!

Ideally, your administration PC will be running a flavor of Linux with a desktop environment like GNOME, KDE or Xfce. However, it's not necessary. The goal is to ease you into Linux, not to toss you into the pool cruelly.

Optional: if it's not possible to run dedicated Linux computers in your classroom (or lab), but you want to get a taste for it, you always can boot a Windows or Intel-based Mac using a USB stick. I'll go into more detail about this later, but you can learn more about making a bootable USB with Linux on the Ubuntu Web site. Information is available in the Resources section at the end of this article.


John S. Tonello is Director of IT for NYSERNet, Inc., in Syracuse, New York. He's been a Linux user and enthusiast since he installed his first Slackware system from diskette 20 years ago. You can follow him @johntonello.