Quiet Machine = Happy Wife.
Happy Wife = Happy Life.
Amazon link follows, to Qotom J1900
4 port (gigabit NIC), and Quad processor, with 8 GB of RAM, 32 GB of SSD.
Qotom makes a variety of FAN-less computers — they used to do up to 4 port computers, but the latest set includes 6 and 8 port computers, now supporting memory up to 32 GB.
When building a home router, I find it useful to have 8GB (or more) RAM, under no circumstances should you enable any swap memory (routers shouldn’t use swap). If you want to run other programs; I usually run, for example, Asterisk (VoIP, Voice Over IP, phone system) with FreePBX, and Ubiquity/Unifi Wireless controller software. You must make sure, that whatever other applications you run, they never, ever exceed (or come even close) to using all the RAM. It’s a good idea to leave half the RAM unused — it won’t stay unused, Linux will use it for cache.
What do I run on this “tiny” box?
- Operating system; Linux 20.04.1 LTS (it’s good to stick to LTS versions)
- One of the first things is to change runlevel from 5 (graphical) to 4 (multi-user) — there is no monitor (or mouse or keyboard) connected, so why waste memory & CPU to graphics?
- iptables with an uptight configuration, almost entirely uni-directional
- tftpboot for internal phone system
- dhcpclient (for external connections) + dhcpd (for internal clients — it’s a bit crazy to need two class C’s for internal clients… we like gadgets)
- dns (named/bind9) caching server for internal use
- ntpd (local time beacon)
- apcupsd (UPS software daemon)
- sshd (supports sshfs)
- rsyslogd (with remote logging enabled — LAN logging server)
- smartd to monitor the health of the SSD
- Denyhosts (an ill-tempered configuration) to keep script kiddies away
- Postfix to get FreePBX emails out (out only, no receiving)
- MariaDB 5.7 (to support FreePBX)
- Asterisk 13.8 + FreePBX 14.0 + Apache2
- MongoDB (to support Unifi)
- Ubiquity Unify Wireless Controller 5.14 w/java-8-jdk
With all these, usually memory consumption is 2.6GB and with the four cores, CPU utilization hovers around 0.2. So, about 5 GB is for cache.
Connections… (via NetworkManager, /etc/netplan/)
- enp1s0; local area network, hard-coded
- enp2s0; one of AT&T’s fixed IPs, though get it anyway via DHCPD4 from AT&T modem
- enp3s0; Comcast gigabit IP, get it via DHCPD4 from Comcast
- enp4s0; a dynamic IP from AT&T modem