当前位置: 首页 > news >正文

在Ubuntu上搭建并通过systemctl管理Minecraft Java版服务器

本教程将详细介绍如何在Ubuntu操作系统上搭建一个Minecraft Java版服务器,并使用systemctl服务来管理服务器的启动、停止和重启。同时,我们还将探讨如何通过NGINX设置TCP/UDP转发,使得玩家能够通过域名方便地连接到你的Minecraft服务器。

准备工作

确保你的Ubuntu系统具备以下条件:

  • 至少2GB的可用内存(推荐4GB以上)
  • 稳定的网络连接
  • root权限或sudo权限

步骤1:安装Java

Minecraft服务器需要Java运行环境。我们推荐在Ubuntu上安装OpenJDK。

  1. 打开终端。
  2. 更新包列表:
    sudo apt update
    
  3. 安装OpenJDK 21:
    sudo apt install openjdk-21-jdk
    
  4. 验证Java安装:
    java -version
    

步骤2:下载Minecraft服务器软件

  1. 创建存放服务器的目录:
    mkdir minecraft-server
    cd minecraft-server
    
  2. 下载Minecraft服务器jar文件。官网下载

步骤3:首次运行服务器

  1. 启动服务器以生成配置文件:
    java -Xmx1024M -Xms1024M -jar server.jar nogui
    
  2. 编辑eula.txt,同意EULA:
    echo "eula=true" > eula.txt
    

步骤4:创建systemd服务

  1. 创建systemd服务文件:
    sudo nano /etc/systemd/system/minecraft.service
    
  2. 添加以下内容:
    [Unit]
    Description=Minecraft Server
    After=network.target[Service]
    User=minecraft
    Nice=5
    KillMode=none
    SuccessExitStatus=0 1
    ProtectHome=true
    ProtectSystem=full
    PrivateDevices=true
    NoNewPrivileges=true
    WorkingDirectory=/home/minecraft/minecraft-server
    ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
    ExecStop=/bin/kill -SIGINT $MAINPID
    Restart=on-failure[Install]
    WantedBy=multi-user.target
    
  3. 启用并启动服务:
    sudo systemctl enable --now minecraft
    

步骤5:配置NGINX为TCP/UDP转发器

  1. 确保NGINX安装了stream模块:
    nginx -V
    
  2. 编辑NGINX配置以添加TCP转发:
    sudo nano /etc/nginx/nginx.conf
    
    在文件底部添加:
    stream {server {listen 25565;proxy_pass localhost:25565;}
    }
    
  3. 重启NGINX:
    sudo systemctl restart nginx
    

步骤6:配置DNS

在你的域名注册商处添加A记录,指向你的服务器公网IP。

步骤7:邀请玩家

玩家可以通过你的域名连接到服务器,例如通过Minecraft客户端输入 example.com

总结

通过以上步骤,你不仅能在Ubuntu系统上成功搭建Minecraft Java版服务器,还能通过systemctl和Nginx方便地管理和转发服务器连接。这使得服务器更易于管理,同时提供了高度的可访问性和控制能力。希望这篇指南能帮助你顺利搭建和运行你的Minecraft服务器,并享受与朋友们共同探索Minecraft世界的乐趣。如果在搭建或管理过程中遇到任何问题,欢迎随时咨询获取帮助。

http://www.lryc.cn/news/341389.html

相关文章:

  • 【C++PCL】点云处理ESF描述符
  • 鸿蒙应用开发系列 篇二:鸿蒙系统开发工具与环境
  • “A”分心得:我的云计算HCIE学习之路
  • 现代信号处理8_递归的最小二乘(CSDN_20240505)
  • 2024年全国保密宣传教育月的主题是()。A.贯彻落实保密法。你我都是护密人B.国家利益高于一切,保密责任重于泰山C.筑牢保密防线,维护国家安全
  • 一个通过照片识别地理位置的应用
  • wordpress外贸独立站建站10要10不要
  • 搬运5款小众,无广告,实用性拉满的软件
  • TCP重传,滑动窗口,流量控制,拥塞控制
  • 云手机对出海企业有什么帮助?
  • Android Studio实现简单的自定义钟表
  • C语言 举例说明循环嵌套
  • 一、ESP32基础知识
  • 我希望未来10年,人工智能可以帮我解决这4件小事
  • 使用jdbc方式操作ClickHouse
  • 百面算法工程师 | 支持向量机——SVM
  • 关于YOLO8学习(一)环境搭建,官方检测模型部署到手机
  • 3.10设计模式——Template Method 模版方法模式(行为型)
  • SQL 基础 | UNION 用法介绍
  • 学习如何使用PyQt5实现notebook功能
  • Python氮氧甲烷乙烷乙烯丙烯气体和固体热力学模型计算
  • 2024-04-30 区块链-以太坊-相关文档
  • 你用过最好用的AI工具有哪些?
  • Amine-PEG-Amine,956496-54-1在生物成像、生物传感器等领域具有广泛的应用
  • 为什么深度学习中减小泛化误差称为“正则化(Regularization)”
  • 【Linux网络编程】2.套接字、网络字节序、IP地址转换函数
  • 代码签名证书的工作原理和申请流程
  • Python中的yield
  • 【Linux】基于 Jenkins+shell 实现更新服务所需文件 -->两种方式:ssh/Ansible
  • 5月4(信息差)