Hello. I’d like to share this way of hosting your own Mac Server on Windows 10/11 using QEMU/KVM on Windows Subsystem for Linux. Basically, setting up a MacOS Virtual Machine.
That sentence may have been confusing! But don’t worry, it’s really a simple process.
With the help of some guides from the internet, we’re gonna make it work!
- Fairly easy to set up.
- Perfect for hosting a server for your friends.
- Quick boot up!
- Uses way less of your CPU compared to other VM software like VirtualBox.
- Easy to leave it running in the background.
- No port forwarding needed!
- Absolutely free.
- Windows 10/11
- Windows Subsystem for Linux
- Ubuntu from Microsoft Store
- Virtual Network (I use ZeroTier, it’s free)
- About 60GB of space (the MacOS Virtual Machine creating its own storage)
- A bit of technical knowledge (terminals)
- Time and effort, patience, Google…
- And be ready to troubleshoot!
Step 1: Windows Subsystem for Linux (WSL)
In this step, you just need to enable some settings, download Ubuntu, and set WSL2 as default.
Step 2: MacOS Virtual Machine
You’ll be installing the Virtual Machine. I don’t have much technical knowledge in Linux myself, and if you’re just like me, it’s important to follow the steps exactly as they’re listed.
Following this guide, I had a few problems that were easily solved in a few Google searches.
After installing your MacOS Virtual Machine, you’re basically good to go.
Login to the App Store and download BlockheadsServer.
Create a new world, start it up, and its name should be highlighted in yellow.
- Your mouse will be relative. You can make your mouse align by going to View>Details>Add Hardware>Input>EvTouch USB Graphics Tablet. You will need to do this every time you boot up the VM. You will also have to remove the previous tablet as it won’t work the next time you boot.
- Please avoid changing network settings unless you know how it works. Internet access is all we need.
- Lower the CPU allocation and topology to 1. This lowers the CPU usage, but should not affect the performance of the VM.
Step 3: Peer-to-Peer Virtual Network (ZeroTier)
This is why we don’t need to port forward. A Virtual Network will save your life. We’re not talking about VPNs that encrypt your connection for security. This Virtual Network lets your devices connect to each other just like your home network, and this seems to be the same mechanism that lets you host and connect over your own WiFi in BlockheadsServer.
I first found ZeroTier and thankfully I didn’t need to look further. I’ve spent a day sitting in front of my computer trying to port forward but I didn’t actually need it.
You don’t need further logins in your MacOS VM or on your devices. You only have to login to manage your network in zerotier.com.
Setting up a network is easy enough. ZeroTier will walk you through creating one.
Just install the ZeroTier One app on your device, enter in the Network ID from ZeroTier, and authorize the member in the network.
You will have to do this for every device that you want in, unless you set your network to public.
For the address of your MacOS VM, click the wrench icon and click “Do Not Auto-Assign IPs.”
In the “Managed IPs” column, you will see the IP of your Mac Server set by your ZeroTier network. This is the IP that you will use to join the Mac Server.
After all this, you can just minimize and leave the MacOS Virtual Machine running in the background, and it shouldn’t use too much CPU (mine uses 8-10%).
Even if your Mac VM goes into sleep, the server should still be open as long as it’s running.
I’ll try my best to help you with troubleshooting.