Yandex Cloud
Search
Discuss with expertTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Compute Cloud
  • Yandex Container Solution
    • All tutorials
    • Configuring time synchronization using NTP
    • Autoscaling an instance group to process messages from a queue
    • Updating an instance group under load
    • Deploying Remote Desktop Gateway
    • Getting started with Packer
    • Transferring logs from a VM to Yandex Cloud Logging
    • Building a VM image with infrastructure tools using Packer
    • Migrating data to Yandex Cloud using Hystax Acura
    • Fault protection with Hystax Acura
    • Backing up a VM with Hystax Acura
    • Deploying a fault-tolerant architecture with preemptible VMs
    • Configuring a fault-tolerant architecture in Yandex Cloud
    • Creating a budget trigger that invokes a function to stop a VM
    • Creating triggers that invoke a function to stop a VM and send a Telegram notification
    • Creating a Python web application with Flask
    • Creating an SAP program in Yandex Cloud
    • Deploying a Minecraft server in Yandex Cloud
    • Automating image builds using Jenkins and Packer
    • Creating test VMs via GitLab CI
    • High-performance computing on preemptible VMs
    • Configuring an SFTP server based on CentOS 7
    • Deploying GlusterFS in high availability mode
    • Deploying GlusterFS in high performance mode
    • Backing up to Object Storage with Bacula
    • Building a CI/CD pipeline in GitLab using serverless products
    • Implementing a secure high-availability network infrastructure with a dedicated DMZ based on the Check Point NGFW
    • Cloud infrastructure segmentation with the Check Point next-generation firewall
    • Configuring a secure GRE tunnel over IPsec
    • Creating a bastion host
    • Implementing fault-tolerant scenarios for NAT VMs
    • Creating a tunnel between two subnets using OpenVPN Access Server
    • Creating an external table from a Object Storage bucket table using a configuration file
    • Setting up network connectivity between BareMetal and Virtual Private Cloud subnets
    • Working with snapshots in Managed Service for Kubernetes
    • Running the DeepSeek-R1 language model in a GPU cluster
    • Running a vLLM library with the Gemma 3 language model on a VM with GPU
    • Delivering USB devices to a virtual machine or BareMetal server
    • Running a Docker image on a VM using Cloud Registry
    • Deploying a SourceCraft worker on a VM
  • Access management
  • Pricing policy
  • Terraform reference
  • Metrics Monitoring
  • Audit Trails events
  • Release notes

In this article:

  • Get your cloud ready
  • Required paid resources
  • Create a security group
  • Create a VM for the Minecraft server
  • Install the utilities and start the server
  • Test the server
  • How to delete the resources you created
  1. Tutorials
  2. Deploying a Minecraft server in Yandex Cloud

Deploying a Minecraft server in Yandex Cloud

Written by
Yandex Cloud
Updated at July 24, 2026
View in Markdown
  • Get your cloud ready
    • Required paid resources
  • Create a security group
  • Create a VM for the Minecraft server
  • Install the utilities and start the server
  • Test the server
  • How to delete the resources you created

Follow this tutorial to deploy the current version of a Minecraft (Java Edition or Bedrock Edition) server in Yandex Cloud on an Ubuntu 24.04 VM.

To deploy a Minecraft server in Yandex Cloud:

  1. Get your cloud ready.
  2. Create a security group.
  3. Create a VM for the Minecraft server.
  4. Install the utilities and start the server.
  5. Test the server.

If you no longer need the resources you created, delete them.

Get your cloud readyGet your cloud ready

Sign up for Yandex Cloud and create a billing account:

  1. Navigate to the management console and log in to Yandex Cloud or create a new account.
  2. On the Yandex Cloud Billing page, make sure you have a billing account linked and it has the ACTIVE or TRIAL_ACTIVE status. If you do not have a billing account, create one and link a cloud to it.

If you have an active billing account, you can create or select a folder for your infrastructure on the cloud page.

Learn more about clouds and folders here.

Required paid resourcesRequired paid resources

The infrastructure support cost includes:

  • Fee for a continuously running VM (see Yandex Compute Cloud pricing).
  • Fee for a public IP address and outgoing traffic (see Yandex Virtual Private Cloud pricing).

Create a security groupCreate a security group

Create a security group with a rule allowing incoming traffic on port 25565 for Java Edition or 19132 for Bedrock Edition. These are the default ports for client access in the Minecraft server configuration file. Also, rules allowing SSH access to the VM to configure the server and VM access to the internet to download software will be added to the security group.

Management console
  1. In the management console, select your folder.

  2. Navigate to Virtual Private Cloud.

  3. In the left-hand panel, select Security groups.

  4. Click Create security group.

  5. In the Name field, specify the name: minecraft-sg.

  6. In the Network field, select default.

  7. Under Rules, create the following traffic management rules:

    Traffic
    direction

    Description

    Port range

    Protocol

    Source /
    Destination name

    IPv4 CIDR

    Inbound

    Client access to the Minecraft server

    25565/19132

    Any

    Address range

    0.0.0.0/0

    Inbound

    SSH access to the VM

    22

    Any

    Address range

    0.0.0.0/0

    Outbound

    VM internet access

    0-65535

    Any

    Address range

    0.0.0.0/0

  8. Click Save.

Create a VM for the Minecraft serverCreate a VM for the Minecraft server

  1. Create an SSH key pair:

    ssh-keygen -t ed25519
    

    We recommend sticking with the default key file name.

  2. Create a VM with a public IP address:

    Management console
    1. In the management console, select the folder where you want to create your VM.

    2. Navigate to Compute Cloud.

    3. In the left-hand panel, select Virtual machines.

    4. Click Create virtual machine.

    5. Under Boot disk image, select Ubuntu 24.04 LTS.

    6. Under Location, select an availability zone where your VM will reside.

    7. Under Disks and file storages, configure the boot disk:

      • Type: HDD.
      • Size: 18 GB.
    8. Under Computing resources, navigate to the Custom tab and specify the Minecraft server recommended parameters:

      • Platform: Intel Ice Lake
      • vCPU: 2
      • Guaranteed vCPU performance: 100%.
      • RAM: 2 GB for Java Edition or 4 GB for Bedrock Edition.
    9. Under Network settings:

      • In the Subnet field, enter the ID of a subnet in the new VM’s availability zone. Alternatively, select a cloud network from the list.

        • Each network must have at least one subnet. If there is no subnet, create one by selecting Create subnet.

        • If there are no networks in the list, click Create network to create one:

          • In the window that opens, specify the network name and select the folder where it will be created.
          • Optionally, enable the Create subnets setting to automatically create subnets in all availability zones.
          • Click Create network.
      • In the Public IP address field, select Auto to assign the VM a random external IP address from the Yandex Cloud pool. Alternatively, select a static address from the list if you reserved one.

      • In the Security groups field, select the minecraft-sg security group you created earlier.

    10. Under Access, select SSH key and specify the VM access credentials:

      • In the Login field, enter a name for the user you want to create on the VM, e.g., ubuntu.

        Alert

        Do not use root or other OS-reserved usernames. For operations requiring root privileges, use the sudo command.

      • In the SSH key field, select the SSH key saved in your organization user profile.

        If there are no SSH keys in your profile or you want to add a new key:

        1. Click Add key.

        2. Enter a name for the SSH key.

        3. Select one of the following:

          • Enter manually: Paste the contents of the public SSH key. You need to create an SSH key pair on your own.

          • Load from file: Upload the public part of the SSH key. You need to create an SSH key pair on your own.

          • Generate key: Automatically create an SSH key pair.

            When adding a new SSH key, an archive containing the key pair will be created and downloaded. In Linux or macOS-based operating systems, unpack the archive to the /home/<user_name>/.ssh directory. In Windows, unpack the archive to the C:\Users\<user_name>/.ssh directory. You do not need additionally enter the public key in the management console.

        4. Click Add.

        The system will add the SSH key to your organization user profile. If the organization has disabled the ability for users to add SSH keys to their profiles, the added public SSH key will only be saved in the user profile inside the newly created resource.

    11. Under General information, specify the VM name: minecraft-server.

    12. Click Create VM.

    Recommended virtual machine configuration for Java Edition:

    Configuration Number of players vCPU RAM Disk size
    Minimum 1-4 2 1GB 150MB HDD or more
    Recommended 5-10 2 2GB 200MB HDD or more
    Ideal 10+ 4 4GB 200MB SSD or more

    Warning

    Note that this configuration table is in line with the default settings defined in server.properties. The bigger the game world grows, the higher the requirements, especially for RAM. In addition, larger rendered areas, villages, and other dynamic objects will result in higher virtual server requirements.

Install the utilities and start the serverInstall the utilities and start the server

Java Edition
Bedrock Edition
  1. Use SSH to connect to the VM you created.

  2. Install the required Java packages from the repository and the screen utility to run the terminal session in background mode:

    Note

    The command below installs JRE version 25. To start the current Minecraft server version, you may need a newer JRE version. Therefore, check the suitable JRE version on Minecraft Wiki before you install this package.

    sudo apt update -y \
       && sudo apt install -y openjdk-25-jre-headless screen
    
  3. Create a separate system user named minecraft to start the server:

    sudo useradd -r -m -d /opt/minecraft-server -s /bin/bash minecraft
    

    Where:

    • -r: Creating a system user.
    • -m -d /opt/minecraft-server: Creating the user’s home directory at /opt/minecraft-server. It will contain the server files.
    • -s /bin/bash: Assigning the bash shell for the user.
  4. Follow this link and copy the URL to download the distribution of the current server version.

  5. Download the current distribution to the server directory using wget:

    sudo wget -O /opt/minecraft-server/minecraft_server.jar <download_link>
    

    Where <download_link> is the distribution download link you got in the previous step. Here is an example: https://piston-data.mojang.com/v1/objects/97ccd4c0ed3f81bbb7bfacddd1090b0c56f9bc51/server.jar

  6. Create the eula.txt file to automatically accept the EULA terms:

    echo "eula=true" | sudo tee /opt/minecraft-server/eula.txt
    
  7. Grant the minecraft user the following permissions for the server directory and all its contents:

    sudo chown -R minecraft:minecraft /opt/minecraft-server
    
  8. In the server directory, run the screen background session on behalf of the minecraft user:

    sudo -u minecraft bash -c 'cd /opt/minecraft-server && screen -S minecraft'
    
  9. In the background session, run the server:

    java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
    

    Wait for the game world to be created.

    [14:16:47] [Server thread/INFO]: Preparing level "world"
    [14:16:48] [Server thread/INFO]: Selecting global world spawn...
    [14:17:05] [Server thread/INFO]: Loading 0 persistent chunks...
    ...
    [14:17:05] [Server thread/INFO]: Preparing spawn area: 100%
    [14:17:05] [Server thread/INFO]: Time elapsed: 17317 ms
    [14:17:05] [Server thread/INFO]: Done (17.788s)! For help, type "help"
    
  10. Optionally, you can leave the screen session running in the background by pressing Ctrl + A + D and return to the VM main terminal.

    If there is only one such background session with the server running and you want to return to it, run the following command:

    sudo -u minecraft screen -r
    

    If there are multiple background sessions, get their list by running the following command:

    sudo -u minecraft screen -list
    

    Result:

    There is a screen on:
       35154.minecraft (06/12/26 14:15:56)     (Detached)
    1 Socket in /run/screen/S-minecraft.
    

    Then, enter the session using its ID from the list:

    sudo -u minecraft screen -r 35154
    

    Note

    The minecraft user does not have a password or SSH key, so you cannot connect to the VM directly on their behalf. To perform operations under this user, connect to the VM over SSH with your credentials and switch to minecraft using the following command:

    sudo -iu minecraft
    

    This will start a login session, and /opt/minecraft-server will instantly become the current directory. To return to your session, run the exit command or press Ctrl + D.

  11. After running the server, in the directory, you will see new directories and the files required for server operation and configuration, including the logs:

        4096 Jun 12 14:16 .
        4096 Jun 12 14:07 ..
         220 Mar 31  2024 .bash_logout
        3771 Mar 31  2024 .bashrc
        4096 Jun 12 14:16 .cache
         807 Mar 31  2024 .profile
           2 Jun 12 14:16 banned-ips.json
           2 Jun 12 14:16 banned-players.json
          10 Jun 12 14:10 eula.txt
        4096 Jun 12 14:16 libraries
        4096 Jun 12 14:16 logs
    60417480 Apr  9 10:20 minecraft_server.jar
           2 Jun 12 14:16 ops.json
        1676 Jun 12 14:16 server.properties
           2 Jun 12 14:16 usercache.json
        4096 Jun 12 14:16 versions
           2 Jun 12 14:16 whitelist.json
        4096 Jun 12 14:18 world
    
  1. Use SSH to connect to the VM you created.

  2. Install the screen utility to run the terminal session in background mode and the unzip utility to unpack the distribution:

    sudo apt update -y \
       && sudo apt install -y screen unzip
    
  3. Create a separate system user named minecraft to start the server:

    sudo useradd -r -m -d /opt/minecraft-server -s /bin/bash minecraft
    

    Where:

    • -r: Creating a system user.
    • -m -d /opt/minecraft-server: Creating the user’s home directory at /opt/minecraft-server. It will contain the server files.
    • -s /bin/bash: Assigning the bash shell for the user.
  4. Follow this link and copy the URL to download the distribution of the current server version.

  5. Download the current distribution to the server directory using wget:

    sudo wget -O /opt/minecraft-server/bedrock-server.zip <download_link>
    

    Where <download_link> is the distribution download link you got in the previous step. Here is an example: https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.26.23.1.zip

  6. Unpack the distribution archive to the server directory, then delete the archive:

    sudo unzip /opt/minecraft-server/bedrock-server.zip -d /opt/minecraft-server \
       && sudo rm /opt/minecraft-server/bedrock-server.zip
    
  7. Grant the minecraft user the following permissions for the unpacked files:

    sudo chown -R minecraft:minecraft /opt/minecraft-server
    
  8. In the server directory, run the screen background session on behalf of the minecraft user:

    sudo -u minecraft bash -c 'cd /opt/minecraft-server && screen -S minecraft'
    
  9. In the background session, run the server. The Bedrock Edition server requires libraries from the server directory, so make sure to specify it in the LD_LIBRARY_PATH variable:

    LD_LIBRARY_PATH=. ./bedrock_server
    

    Wait until you see the message confirming that the server is ready:

    [2026-06-14 13:36:44:060 INFO] Starting Server
    [2026-06-14 13:36:44:060 INFO] Version: 1.26.23.1
    [2026-06-14 13:36:44:060 INFO] Session ID: 4a018b28-5121-4abe-a814-e4ee70455c37
    [2026-06-14 13:36:44:060 INFO] Build ID: 45295249
    [2026-06-14 13:36:44:060 INFO] Branch: r/26_u2
    [2026-06-14 13:36:44:060 INFO] Commit ID: 49b09b8167bf5f877690429d12747f30342d1db6
    [2026-06-14 13:36:44:060 INFO] Configuration: Publish
    [2026-06-14 13:36:44:060 INFO] Level Name: Bedrock level
    [2026-06-14 13:36:44:061 INFO] No CDN config file found at: cdn_config.json for dedicated server
    [2026-06-14 13:36:44:061 INFO] Game mode: 0 Survival
    [2026-06-14 13:36:44:061 INFO] Difficulty: 1 EASY
    [2026-06-14 13:36:44:063 WARN] Content logging to console is disabled.  Enable it with content-log-console-output-enabled=true in server.properties
    [2026-06-14 13:36:44:608 INFO] Opening level 'worlds/Bedrock level/db'
    [2026-06-14 13:36:44:626 INFO] Pack Stack - None
    [2026-06-14 13:36:45:565 INFO] IPv4 supported, port: 19132: Used for gameplay and LAN discovery
    [2026-06-14 13:36:45:565 INFO] IPv6 supported, port: 19133: Used for gameplay
    [2026-06-14 13:36:45:605 INFO] Waiting for Minecraft services...
    [2026-06-14 13:36:45:806 INFO] Server started.
    
  10. Optionally, you can leave the screen session running in the background by pressing Ctrl + A + D and return to the VM main terminal.

    If there is only one such background session with the server running and you want to return to it, run the following command:

    sudo -u minecraft screen -r
    

    If there are multiple background sessions, get their list by running the following command:

    sudo -u minecraft screen -list
    

    Result:

    There is a screen on:
       30989.minecraft (06/17/26 12:23:18)     (Detached)
    1 Socket in /run/screen/S-minecraft.
    

    Then, enter the session using its ID from the list:

    sudo -u minecraft screen -r 30989
    

    Note

    The minecraft user does not have a password or SSH key, so you cannot connect to the VM directly on their behalf. To perform operations under this user, connect to the VM over SSH with your credentials and switch to minecraft using the following command:

    sudo -iu minecraft
    

    This will start a login session, and /opt/minecraft-server will instantly become the current directory. To return to your session, run the exit command or press Ctrl + D.

  11. After running the server, in the directory, you will see new directories and the files required for server operation and configuration:

         4096 Jun 14 13:49 .
         4096 Jun 14 12:43 ..
           36 Jun 14 13:49 .bash_history
          220 Mar 31  2024 .bash_logout
         3771 Mar 31  2024 .bashrc
          807 Mar 31  2024 .profile
            0 Jun 15 12:56 Dedicated_Server.txt
            3 May 20 23:35 allowlist.json
    222788240 May 20 23:36 bedrock_server
        31241 May 20 23:35 bedrock_server_how_to.html
         4096 May 20 23:36 behavior_packs
         4096 May 20 23:36 config
         4096 May 20 23:36 data
         4096 May 20 23:36 definitions
         4096 Jun 14 13:36 development_behavior_packs
         4096 Jun 14 13:36 development_resource_packs
         4096 Jun 14 13:36 development_skin_packs
         4096 Jun 14 13:36 minecraftpe
          484 May 20 23:35 packetlimitconfig.json
            3 May 20 23:35 permissions.json
         4096 Jun 14 13:36 premium_cache
         8548 May 20 23:17 profanity_filter.wlist
          398 May 20 23:35 release-notes.txt
         4096 May 20 23:36 resource_packs
        11650 May 20 23:35 server.properties
         4096 Jun 14 13:36 treatments
         4096 Jun 14 13:36 world_templates
         4096 Jun 14 13:36 worlds
    

Test the serverTest the server

Java Edition
Bedrock Edition
  1. Download and install the Minecraft client.

  2. Run Minecraft Java Edition.

  3. Click Multiplayer.

  4. Select Direct Connection.

  5. In the Server address field, specify the public IP address of the minecraft-server VM and click Join Server.

  1. Download and install the Minecraft client.

  2. Run Minecraft Bedrock Edition.

  3. Click Start.

  4. Select Server, then click + Add server.

  5. Give the server a name of your choice. In the Server address field, specify the public IP address of your minecraft-server VM. Leave the default port. Click Add and play.

How to delete the resources you createdHow to delete the resources you created

To stop paying for the resources you created:

  1. Delete the minecraft-server VM.
  2. Delete the minecraft-sg security group.

Was the article helpful?

Previous
Creating an SAP program in Yandex Cloud
Next
Automating image builds using Jenkins and Packer
© 2026 Direct Cursus Technology L.L.C.