If you would like to use a home server the following is recommended,
- Dedicated Laptop to run virtual machine software.
- Dynamic DNS Service such as Dyn (most Internet providers will not provide a static IP Address).
Virtual Machine for Your Desktop Computer
On your own desktop, I personally like VMWare Workstation and on the Mac I prefer VMWare Fusion over Parallels. Free alternatives,
- VMware Workstation Player - No snapshots but free for non-commercial, personal and home use.
- Sun/Oracle VirtualBox - Free for personal use.
DynDNS.com - provides some free DNS. Also, I believe it allows you to use dynamic DNS with real Domains provided you purchase from them.
Provided you setup your Dyn DNS account with basic user and password (there's Key generation now but I am not using real domains yet so will look into it later)
After 5 minutes of research I opted for the command line based client, ddclient noted on the Dyn DNS website,
sudo apt-get install ddclient Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: ddclient 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 71.7 kB of archives. After this operation, 338 kB of additional disk space will be used. Get:1 http://ca.archive.ubuntu.com/ubuntu/ trusty/universe ddclient all 3.8.1-1ubuntu2 [71.7 kB] Fetched 71.7 kB in 0s (300 kB/s) Preconfiguring packages ... Selecting previously unselected package ddclient. (Reading database ... 169652 files and directories currently installed.) Preparing to unpack .../ddclient_3.8.1-1ubuntu2_all.deb ... Unpacking ddclient (3.8.1-1ubuntu2) ... Processing triggers for man-db (18.104.22.168-1ubuntu1) ... Processing triggers for ureadahead (0.100.0-16) ... ureadahead will be reprofiled on next reboot Setting up ddclient (3.8.1-1ubuntu2) ... update-rc.d: warning: stop runlevel arguments (1) do not match ddclient Default-Stop values (0 1 6) # Maybe look up what this means, but everything works. Processing triggers for ureadahead (0.100.0-16) ...
Selected Dynamic DNS as the service, put in user name and pass and using generated list picked my entries. Also chose to use their IP lookup service, rebooted and was done.