之前发过一篇 LinuxGSM自建游戏服务器(l4d2),提到了本来想搭建英雄萨姆3的多人游戏,但是因为 LinuxGSM 不支持而失败了(现在看来当时的错误也是找不到 steamclient.so,下文解决了这个问题,所以 LinuxGSM 也可以用),如今改用 SteamCMD

本文将展示如何用 SteamCMD 搭建英雄萨姆3多人游戏服务器,也适用于任意 Steam 游戏的独立服务器

环境

  • Debian 10

参考

步骤

新建 SteamCMD 用户

为了更安全的使用 SteamCMD,需要新建 steam 用户,以 root 用户运行 SteamCMD 会有安全风险

  1. 新建 steam 用户
    useradd -m -s /bin/bash steam
  2. 修改 steam 用户密码
    passwd steam
  3. 将 steam 用户加入 sudo 用户组
    adduser steam sudo

    如果是新安装的 Debian 10 环境,还需要手动安装 sudo 指令

    apt install sudo
  4. 切换到 steam 用户
    su - steam

后续步骤的指令都在 steam 用户下执行 Continue reading “SteamCMD 搭建游戏服务器”

分别为 Windows、Linux 和 Docker 搭建方式

环境

  • Windows Server 2016 Standard
    • 已安装 2020 5 月更新
  • Ubuntu 18.04
  • Docker 19.03.8
  • Minecraft Java 版本(Windows 10)
    • 截止到 2020.5.14,官方最新版本为 1.15.2

准备

  • Minecraft Java Server
    • 下载地址
    • 截止到 2020.5.14,官方最新版本为 1.15.2

参考

步骤

Windows 搭建

  1. Java 环境配置
    • 下载 Java 安装包并安装 下载地址
    • 安装后默认路径在 C:\Program Files (x86)\Common Files\Oracle\Java\javapath
  2. 配置 MC 服务器
    • 新建并重命名文件夹,将下载的 server.jar 包放入文件夹内
    • 双击 jar 包运行
    • 第一次运行会失败,并在同目录下生成默认的配置文件和 eula 协议文件
    • 打开 eula.txt 文件,将 eula 字段改为 true,代表你接受 eula 协议
    • 再次运行 server.jar,出现 GUI 服务器管理界面,右侧会显示世界的生成进度,等待进度到 100% 即世界生成完毕
    • 同目录下的 server.properties 文件中包含了世界的属性,更改属性以生成不同的世界
    • 在 GUI 右侧下方可以输入各种指令,操作世界,输入 /help 查看指令列表
  3. 配置防火墙
    • 世界生成完毕后如果直接在客户端连接服务器 IP,可能会报错,显示连接超时
    • 此时进入服务器查看资源管理器(进入【任务管理器 – 性能】,选择左下角的【打开资源监视器】,或者在控制台输入 resmon)的网络标签页,选择 javaw.exe 进程,发现其端口(默认为 25565)被防火墙拦截了
    • 进入【控制面板 – 防火墙 – 高级设置】,在【入站规则】和【出站规则】中新建端口规则,放行 MC 服务器监听的端口
    • 重新启动 server.jar,再次测试客户端,可以连接服务器
  4. 设置为计划任务(可选)
    • 添加 MC 服务器为计划任务
    • 将操作设置为【启动程序】,其中【程序或脚本】设置为 Java 的绝对路径(见上文的默认路径),参数设置为 server.jar 的绝对路径,【起始于】设置为 server.jar 所在目录
    • 可以添加 -Xmx -Xms 参数来限制使用的内存,添加 nogui 来关闭 GUI
    • 在【触发器】中可选择开机启动

Continue reading “Windows/Linux/Docker 搭建 Minecraft Java 版服务器”