Direct answer
A VPS can host a Minecraft server if it has adequate per-core CPU performance, RAM, storage and network capacity. Secure the host before opening the Minecraft port to players.
Recommended procedure
- Choose a supported Linux distribution and obtain administrative access via SSH.
- Create a dedicated unprivileged account for Minecraft and keep the OS updated.
- Install the Java version required by the chosen server software, then check it with
java -version. - Upload the official server JAR to a dedicated working directory, set ownership correctly and create a reproducible start script or systemd service.
- Allow the Java game TCP port in the host/provider firewalls and add DDoS protection appropriate to the public network; keep SSH limited to trusted users.
Why this matters
A VPS advertises virtual CPU cores, which may be shared. Check sustained per-core performance rather than assuming more vCPU guarantees faster ticks. Reserve RAM for the OS and Java native memory.
Practical example: Example: a VPS with several shared vCPUs may run a single busy survival world worse than a machine with fewer high-performance cores. Measure sustained MSPT with real players. Also check memory reported by the VPS container, because -Xmx can be smaller than the full Java process footprint and the OS still needs room.
How to verify the result
- Verify you can still connect via SSH before applying restrictive firewall rules.
- Start the server, accept the EULA after reviewing it and inspect its initial console output.
- Test a Java Edition connection from a different network; monitor memory and CPU under actual load.
Version and compatibility notes
- Do not run the Minecraft service as root.
- Hosting-provider firewalls and the operating system firewall may both need a rule.
Official references
These sources were checked for the current MSH revision. Version-sensitive details should always be confirmed against the project documentation for the release you run.
Related guides
Help us improve this article
Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.