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

2024-05-06 06:20

本文主要是介绍在Ubuntu上搭建并通过systemctl和Nginx管理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世界的乐趣。如果在搭建或管理过程中遇到任何问题,欢迎随时咨询获取帮助。

这篇关于在Ubuntu上搭建并通过systemctl和Nginx管理Minecraft Java版服务器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/963616

相关文章

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Java中Integer128陷阱

《Java中Integer128陷阱》本文主要介绍了Java中Integer与int的区别及装箱拆箱机制,重点指出-128至127范围内的Integer值会复用缓存对象,导致==比较结果为true,下... 目录一、Integer和int的联系1.1 Integer和int的区别1.2 Integer和in

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA