Minecraft server

From Freephile Wiki

My son wanted his own minecraft server to play on and share with his friends. He has a chromebook that is in developer mode, with crouton installed so that he can run Ubuntu on his chromebook. Although he successfully setup the server on his Ubuntu chromebook, it was difficult to share with friends because he'd constantly be changing LAN environments (which means changing port-forwarding rules on a firewall, and advertising the public IP address).

So, I offered to investigate a few options.

  1. host it on a shared hosting account at Webfaction. That could work, and remains to be seen, but if only paying for a $10/month account, you're only going to get 512MB of RAM
  2. host it using the Bitnami Craftbukkit server package/distro plus an Amazon AWS account. With this option, the free "micro" instance of AWS is not sufficient to run minecraft. I didn't want to explore the cost of running a minecraft server on AWS. I also tried running the Craftbukkit server in VirtualBox, but it gave an OVA error.
  3. I have a relatively beefy 12GB RAM Windows 8 machine that sits idle because the only thing I use it for is TurboTax and a couple Windows-only applications. By setting up Virtual Box, and then installing Ubuntu 14.04 LTS as a guest operating system, I'd have a clean dedicated machine to act as the Minecraft server. And, as a VM, it will be easier to backup and manage. Although the Bitnami pre-packaged setup is "complete" out of the box, the only real requirement to get Minecraft running on default Ubuntu is to get Java working.

With the third option, I don't have to pay for anything but electricity. The IP address of the server will remain fixed, and I can even add in DynDNS if I really want to. I would never open up my firewall to a Windows host on my network. Thanks to VirtualBox and Ubuntu, I don't have to. I simply port-forward to the Ubuntu guest OS. That host is purpose-built and doesn't have extra services that need maintenance/security or which could introduce conflicts.

Using nmap to see if your minecraft server is properly port-forwarded

# Use nmap to knock on port 25565 at the external IP address
# Add in the -Pn option to treat all host as "online" in the HOST DISCOVERY stage; in other words, skip the host discovery stage
# because for Comcast, the port will be in "stealth mode" or "filtered" and the host will not respond to pings.
nmap -Pn -p25565 50.164.164.219

PORT      STATE    SERVICE   VERSION
25565/tcp filtered minecraft

In the above nmap scan, "filtered" means that a firewall, filter, or other network obstacle is blocking the port so that Nmap cannot tell whether it is open or closed.