准备好和你的小伙伴们一起在方块世界里探险,并在清晰的语音频道中畅聊了吗?这份指南将手把手教你如何在 Ubuntu 系统上搭建专属的 Minecraft 服务器和 Teamspeak 语音服务器,让你成为游戏社区的焦点!
🧱 第一章:Minecraft 服务器,启动!
搭建你自己的 Minecraft 服务器,意味着你拥有完全的控制权,可以定制属于你们的独特游戏体验。
🔄 1.1 系统准备:打好基础,事半功倍!
在开始大展拳脚之前,我们得先给系统做个“热身运动”,确保所有“工具”都已就位。
# 首先,更新系统,让你的Ubuntu保持最新状态,就像给手机升级系统一样!sudo apt update && sudo apt upgrade -y
# 接着,安装一些必要的“基石”软件,它们能帮助我们顺利构建和下载各种组件。sudo apt install git build-essential wget bzip2 -y
小提示: 如果你当前不是
root
用户,记得在命令前加上sudo
,或者直接切换到root
用户。这样,你就有足够的权限来执行这些重要的操作了!
☕ 1.2 Java 环境:Minecraft 的“动力源”!
Minecraft 服务器是用 Java 编写的,所以我们需要为它准备一个高效的 Java 运行环境(JRE)。
# 访问 Adoptium 官网(https://adoptium.net/zh-CN/temurin/releases/),# 选择最新、最适合你系统的 Java 21 LTS 版本(Linux x64 JRE 包,通常50MB左右)。# 这里提供一个下载链接,但建议你优先访问官网获取最新版:wget https://file.nyamuchi.com/resource/OpenJDK21U-jre_x64_linux_hotspot_21.0.7_6.tar.gz
# 把它“搬家”到系统深处,一个安全且常用的地方:sudo mv OpenJDK*.tar.gz /usr/local/ && cd /usr/local
# 然后,像拆开一个精美的礼物盒一样,解压它:sudo tar xzf OpenJDK*.tar.gz
# 为了方便,我们给它创建一个“快捷方式”(软连接),让系统能轻松找到它:sudo ln -sf $(sudo ls -d /usr/local/jdk-*)/bin/java /usr/local/bin/jre21
# 检查一下“快捷方式”是否创建成功,就像看看你做的菜摆盘是否漂亮:ls -l /usr/local/bin/jre21
🛠️ 1.3 mcrcon 工具:服务器的“遥控器”!
mcrcon
是一个非常实用的工具,它能让你在命令行中直接与 Minecraft 服务器进行交互,发送指令,就像拥有一个秘密的管理员面板!
# 从 GitHub 克隆 mcrcon 的“蓝图”:# 如果遇到下载困难,可以尝试配置代理,或者使用 GitHub 加速服务。# git config --global https.proxy http://127.0.0.1:7890 # 自行替换代理地址sudo git clone https://github.com/Tiiffi/mcrcon.git /usr/local/mcrconcd /usr/local/mcrcon
# 按照“蓝图”进行“组装”:sudo make
# 再次创建一个“快捷方式”,方便我们随时随地使用这个“遥控器”:sudo ln -sf /usr/local/mcrcon/mcrcon /usr/local/bin/mcrcon
# 验证一下,看看它是不是能正常工作:mcrcon -v
# 如果你遇到 GitHub 访问问题,别担心!这里提供一个预构建的版本,让你直接“拿来即用”:# sudo wget https://file.nyamuchi.com/resource/mcrcon -O /usr/local/bin/mcrcon# mcrcon -v # 同样地,验证一下
👤 1.4 用户与服务:给 Minecraft 一个“专属房间”!
为了安全和管理方便,我们最好为 Minecraft 服务器创建一个专门的用户,并将其配置为系统服务,让它能够自动启动和停止。
# 创建一个名叫“minecraft”的系统用户,就像给服务器一个专属的“管家”:sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
# 切换到“minecraft”用户,接下来的操作都在它的“地盘”进行:su - minecraft
# 为服务器创建一些必要的文件夹,整理得井井有条:mkdir -p ~/{tools,server}
# 下载 Minecraft 服务器的核心文件,这可是服务器的“心脏”!# (当前版本通常可以在Minecraft官网下载,这里提供一个示例链接)wget https://file.nyamuchi.com/resource/server.jar -O ~/server/server.jar
# 进入服务器文件夹,准备启动!cd ~/server
# 第一次运行服务器,它会生成一些配置文件,包括一个必须同意的许可协议。# 启动命令中 `-Xmx` 和 `-Xms` 分别设置了服务器的最大和初始内存,根据你的内存大小调整。jre21 -Xmx2048M -Xms1024M -jar server.jar nogui
# 你会看到一些日志输出,当它停下来时,你需要同意 EULA 协议。# 别担心,我们用一条命令就能搞定:把 `eula.txt` 里的 `false` 改成 `true`!sed -i 's/false/true/g' ~/server/eula.txt
# 接下来,我们“装修”一下服务器的配置文件 `server.properties`:# 设置 RCON 密码(务必替换成你自己的安全密码!),启用 RCON 服务,# 调整游戏难度为“困难”,以及禁用 PvP(防止玩家间互相伤害)。# **重要:请务必将“修改密码”替换为你的实际密码!**sed -i -e 's/^rcon\.password=.*/rcon.password=你的专属RCON密码/' \-e 's/^enable-rcon=.*/enable-rcon=true/' \-e 's/^difficulty=.*/difficulty=hard/' \-e 's/^pvp=.*/pvp=false/' ~/server/server.properties
# 工作完成,切换回原来的用户:exit
现在,我们要把 Minecraft 服务器变成一个“系统服务”,这样它就能在后台默默运行,而且还能随系统启动!
# 创建一个服务配置文件,就像给它一张“工作证”:sudo vim /etc/systemd/system/mcs.service
在 vim
编辑器中,粘贴以下内容(记得替换 ExecStop
中的 RCON 密码!):
[Unit]Description=Minecraft Server # 服务描述:一个Minecraft服务器!After=network-online.target # 等待网络就绪后才启动
[Service]User=minecraft # 以“minecraft”用户身份运行WorkingDirectory=/opt/minecraft/server # 工作目录ExecStart=jre21 -Xmx2048M -Xms1024M -jar server.jar nogui # 启动命令ExecStop=mcrcon -H 127.0.0.1 -P 25575 -p 你的专属RCON密码 stop # 停止命令(注意替换密码!)Restart=on-failure # 如果服务崩溃,自动重启
[Install]WantedBy=multi-user.target # 在多用户模式下启用
保存并退出 vim
(按 Esc
键,然后输入 :wq
回车)。
# 刷新系统服务配置,让它“认识”新的服务:sudo systemctl daemon-reload
# 启动 Minecraft 服务器!激动人心的时刻!sudo systemctl start mcs
# 检查服务器状态,看看它是否运行良好:sudo systemctl status mcs
# 设置开机自启动,让你的服务器永不掉线(除非你手动关闭它):sudo systemctl enable mcs
💾 1.5 自动备份:服务器数据的“守护神”!
Minecraft 服务器的存档是你的宝贵财富,定期备份是保护它们的最佳方式。我们将把备份放在一个独立的数据盘上,更安全也更灵活。
1.5.1 挂载数据盘:给备份文件找个“新家”!
首先,我们需要找到你的数据盘,并把它“挂载”到系统上。
# 查看硬盘信息,寻找那个还没有被挂载的“陌生人”(通常是 vdb 或 sdb):lsblk -f
在输出中,你会看到类似 vdb
或 sdb
这样的硬盘,后面没有 MOUNTPOINTS
,那很可能就是你的数据盘。
root@ser763811247085:~# lsblk -fNAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTSloop0 squashfs 4.0 0 100% /snap/core20/1434loop1 squashfs 4.0 0 100% /snap/lxd/22923loop2 squashfs 4.0 0 100% /snap/snapd/15534sr0 iso9660 cidata 2025-07-13-18-43-24-00vda├─vda1 ext4 1.0 cloudimg-rootfs 2a6b8daa-1d70-43b6-84e1-8d987d9f1411 32.3G 16% /├─vda14└─vda15 vfat FAT32 UEFI E0AB-332A 99.1M 5% /boot/efivdb # <- 没错,就是它!└─vdb1 ext4 1.0 c782839c-6ce1-49e8-9b81-c0c4c4999c5b
现在,我们给它创建一个“落脚点”,并暂时性地把它挂载上去:
# 创建一个挂载点,就像给新家腾出空间:sudo mkdir /mnt/data# 临时挂载磁盘,让它能被系统识别:sudo mount /dev/vdb1 /mnt/data
1.5.2 设置开机自动挂载:让“新家”永远在线!
为了避免每次重启服务器都要手动挂载,我们需要把它配置为开机自动挂载。
首先,获取数据盘的“身份证号”(UUID):
# 获取 /dev/vdb1 的 UUID,这就像它的唯一标识码:sudo blkid /dev/vdb1# 输出示例:# /dev/vdb1: UUID="c782839c-6ce1-49e8-9b81-c0c4c4999c5b" TYPE="ext4"
然后,编辑 /etc/fstab
文件,把这个信息写入其中:
# 用你喜欢的编辑器打开 /etc/fstab 文件sudo vim /etc/fstab
在文件末尾添加一行(务必替换成你实际的 UUID 和挂载路径!):
UUID=你的数据盘UUID /mnt/data ext4 defaults 0 0
保存并退出 vim
。
1.5.3 配置 Minecraft 用户权限:让“管家”能自由进出!
为了让 Minecraft 用户有权限在备份目录中操作,我们需要设置正确的权限。
# 在数据盘上创建备份文件夹:sudo mkdir /mnt/data/backups# 把备份文件夹的“钥匙”交给 Minecraft 用户:sudo chown -R minecraft:minecraft /mnt/data/backups# 设置权限,让 Minecraft 用户拥有读写执行的权限:sudo chmod -R 770 /mnt/data/backups
1.5.4 配置备份脚本:让备份“自动运行”!
现在,我们来编写一个智能备份脚本,让它每天自动为你的服务器存档。
# 切换到 Minecraft 用户,在它的工具目录创建脚本文件:su - minecraft
编辑备份脚本文件:
vim /opt/minecraft/tools/backup.sh
粘贴以下内容(同样,请将“修改密码”替换为你的 RCON 密码!):
#!/bin/bash
# 定义 rcon 函数,方便我们发送命令给 Minecraft 服务器function rcon { mcrcon -H 127.0.0.1 -P 25575 -p 你的专属RCON密码 "$1" # 再次提醒:替换密码!}
# 暂停服务器保存,确保备份的数据完整无损rcon "save-off"# 强制服务器保存所有数据到硬盘rcon "save-all"# 进入 Minecraft 根目录,然后打包整个服务器文件夹到备份目录cd /opt/minecraft && tar -cpzf /mnt/data/backups/server-$(date +%F-%H-%M).tar.gz ./server/# 恢复服务器自动保存rcon "save-on"
## 删除旧的备份,保持磁盘空间整洁,只保留7天内的备份find /mnt/data/backups/ -type f -mtime +7 -name '*.gz' -delete
保存并退出 vim
。
让脚本拥有执行权限:
chmod +x /opt/minecraft/tools/backup.sh
最后,我们设置一个定时任务(cron job),让它每天自动执行备份脚本:
# 创建定时任务,它会打开一个编辑界面crontab -e# 第一次运行可能会让你选择一个文本编辑器,选你喜欢的就好。
在文件末尾添加一行,表示每天晚上 11 点(23:00)运行备份脚本:
0 23 * * * /opt/minecraft/tools/backup.sh
保存并退出 crontab
编辑器。
🖥️ 1.6 服务器管理:轻松“遥控”你的世界!
通过 mcrcon
工具,你可以随时随地向你的 Minecraft 服务器发送指令。
# 启动 mcrcon 命令行界面,就像打开了一个服务器控制台:mcrcon -H 127.0.0.1 -P 25575 -p 你的专属RCON密码 -t
# 成功登录后,你就可以在 ">" 提示符后输入各种 Minecraft 命令了!Logged in. Type "Q" to quit!> say Hello, everyone! # 试着在游戏里说句话!> save-all # 随时手动保存> stop # 停止服务器
🎙️ 第二章:Teamspeak 语音服务器,畅聊无阻!
除了游戏,语音沟通也是团队协作的重要一环。Teamspeak 服务器以其出色的语音质量和低延迟而闻名。
👤 2.1 用户与目录:给 Teamspeak 找个“安静角落”!
和 Minecraft 类似,我们也为 Teamspeak 创建一个专属用户和目录,确保它的独立性和安全性。
# 创建一个名为“teamspeak”的系统用户:sudo useradd -r -m -U -d /opt/teamspeak -s /bin/bash teamspeak
# 切换到“teamspeak”用户:su - teamspeak
现在,下载 Teamspeak 服务器文件:
# 访问 Teamspeak 官网(files.teamspeak-services.com/releases/server/),# 下载最新稳定版本的 Linux AMD64 服务器文件。# 这里提供一个示例链接,建议你访问官网获取最新版:wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# 解压文件,并把解压后的文件夹重命名为“app”,方便管理:tar xjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2mv teamspeak3-server_linux_amd64 app
# 同意 Teamspeak 的许可协议。这是一个非常重要的步骤!touch .ts3server_license_accepted
⚙️ 2.2 服务端配置:定制你的语音大厅!
Teamspeak 服务器的配置相对简单,主要在 ts3server.ini
文件中进行。
vim /opt/teamspeak/app/ts3server.ini
粘贴以下内容(记得替换 serveradmin_password
为你的管理员密码!):
licensepath= # 许可文件路径,通常留空即可query_protocols=ssh # 允许SSH查询协议query_timeout=300query_ssh_rsa_host_key=ssh_host_rsa_keyquery_ip_allowlist=query_ip_allowlist.txt # IP白名单文件query_ip_blocklist=query_ip_blocklist.txt # IP黑名单文件dbplugin=ts3db_sqlite3 # 使用SQLite数据库dbpluginparameter=ts3db.ini # 数据库配置文件dbsqlpath=sql/dbsqlcreatepath=create_sqlitedbconnections=10dbclientkeepdays=30slogpath=logs # 日志文件路径logquerycommands=0logappend=0serverquerydocs_path=serverquerydocs/filetransfer_port=30033 # 文件传输端口default_voice_port=9987 # 默认语音端口query_ssh_port=10022 # SSH查询端口serveradmin_password=你的Teamspeak管理员密码 # **重要:替换成你自己的管理员密码!**
如果你希望使用 MySQL/MariaDB 数据库而不是默认的 SQLite,可以编辑 ts3db.ini
,但对于大多数个人服务器来说,SQLite 已经足够。
[config]host=''port='3306'username=''password=''database=''socket=wait_until_ready='30'
保存并退出 vim
。
🚀 2.3 系统服务配置:让 Teamspeak 自动“开门迎客”!
和 Minecraft 一样,我们将把 Teamspeak 也配置为一个系统服务。
首先,启动一次 Teamspeak 服务器进行测试,它会生成一些必要的管理员信息(包括初始管理员令牌),请务必复制并保存这些信息!
# 启动测试,获取管理员信息。注意,这里会输出重要的令牌,请务必复制!./ts3server_startscript.sh start inifile=ts3server.ini# 看到令牌后,按 Ctrl + C 停止服务器
现在,创建 Teamspeak 的服务配置文件:
sudo vim /etc/systemd/system/teamspeak.service
粘贴以下内容:
[Unit]Description=Teamspeak, The most superior online voice communication solution. # 描述After=network-online.target # 等待网络就绪
[Service]User=teamspeak # 以“teamspeak”用户身份运行WorkingDirectory=/opt/teamspeak/app/ # 工作目录ExecStart=/opt/teamspeak/app/ts3server_startscript.sh start inifile=ts3server.ini # 启动命令ExecStop=/opt/teamspeak/app/ts3server_startscript.sh stop inifile=ts3server.ini # 停止命令PIDFile=/opt/teamspeak/app/ts3server.pid # PID 文件路径Type=forking # 服务类型
[Install]WantedBy=multi-user.target # 在多用户模式下启用
保存并退出 vim
。
最后,启动 Teamspeak 服务并设置开机自启:
# 刷新系统服务配置:sudo systemctl daemon-reload
# 启动 Teamspeak 服务器:sudo systemctl start teamspeak
# 检查服务状态,确保它运行正常:sudo systemctl status teamspeak
# 设置开机自启动,让你的语音服务器永远在线:sudo systemctl enable teamspeak
恭喜你!现在你的 Ubuntu 服务器已经成功搭建了 Minecraft 和 Teamspeak 语音服务器。快去邀请你的朋友们一起加入,开启全新的游戏和语音体验吧!
别忘了:
- 防火墙设置: 确保你的服务器防火墙(如
ufw
)开放了 Minecraft (默认 25565/TCP) 和 Teamspeak (默认 9987/UDP, 30033/TCP, 10022/TCP) 所需的端口。 - 公网 IP: 如果你的服务器在内网,可能还需要进行端口转发才能让外部玩家连接。
如果你在搭建过程中遇到任何问题,或者有其他有趣的玩法想尝试,欢迎随时提问!