欢迎光临
我们一直在努力

【2026/1/18】Terraria泰拉瑞亚1.4.4.9Linux服务器部署与2c2g服务器优化全教程

一、问题复现(出现问题后的思路,想直接实操的转到第二部分和第三部分)

近期朋友突然想说玩泰拉瑞亚,正好近期也没什么事,手上刚好有两台2c2g的服务器,就拿来玩个小服和朋友一起玩,就开始稍微研究了一下服务器。

使用了纯官方版本的服务端后刚开始会正常运行,再游玩一到两小时左右会被OOM Killer

直接再次运行会被无限OOM Killer 必须重启服务器后才可以继续游玩

这个时候就有了一些思路

1、为什么会被 OOM Killer

  • 2G内存确实紧张:官方推荐至少4GB内存

  • 内存泄漏/累积:泰拉瑞亚服务器长时间运行可能存在内存累积

  • 交换空间不足:多数云服务器默认swap很小或不开启

2、为什么 Killer 后必须重启

  • 进程残留:OOM Killer可能没完全清理所有相关进程

  • 资源泄漏:父进程或子进程可能仍在占用资源

  • 文件锁未释放:世界文件或其他资源被锁定

此处是我使用的 华为云 Flexus应用服务器L实例 2c2g Centos 7 服务器

(事实上任何 Linux 均通用,只是我手上的是 Centos 7)

我们查看一下内存情况

可以看到云服务器基本不会设置 Swap ,同样也存在于 阿里云服务器上

所以可以通过自行 Linux 优化来避免上述问题

二、部署过程

1、官网下载服务端

https://www.terraria.org/

点击下方下载

2、将压缩包上传至 Linux 服务器中

输入命令解压压缩包

# 解压泰拉瑞亚服务器压缩包
unzip terraria-server-1449.zip

解压后我们把 Linux 开服包扔到 Root 目录下

mv ./1449/Linux/ ./terraria # 将服务器中的 Linux 版本移动到目录下
rm -rf 1449/ # 删除其他版本
chmod 755 -R terraria # 给予执行权限
cd terraria # 进入服务器目录

此时我们其实就可以开启服务器了,目录中的 TerrariaServer.bin.x86_64 文件就是服务器启动核心

./TerrariaServer.bin.x86_64

此时会有两个步骤,方式一是直接写好在配置文件中直接运行,方式二是一步一个操作,如果不想去了解每个配置是什么意思的话,可以直接使用方式一


方式一(配置文件)(推荐)

我们可以编写 serverconfig.txt 文件来提前写好服务器配置,让服务端直接依据配置文件来运行

这个是一键生成配置文件的命令并下方为相应的注释:

cat > serverconfig.txt << 'EOF'
maxplayers=5
world=./worlds/starsleap/starsleap.wld
port=7777
password=starsleap
worldpath=./worlds/starsleap/
autocreate=3
worldname=starsleap
banlist=banlist.txt
secure=0
priority=0
language=zh
difficulty=2
motd=Starsleap
EOF
# 最大玩家数量 (1-255)
maxplayers=5

# 服务器端口号 (默认7777,确保防火墙已开放此端口)
port=7777

# 服务器密码 (留空则不设密码,建议设置防止陌生人加入)
password=starsleap

# 自动创建世界设置
# ————————————————————
# 自动创建世界尺寸: 1=小, 2=中, 3=大
autocreate=3
# 新世界名称
worldname=starsleap
# 世界文件存储路径(相对或绝对路径)
worldpath=./worlds/starsleap/

# 游戏难度设置
# ————————————————————
# 难度模式: 1=经典, 2=专家, 3=大师, 4=旅途
# 专家模式难度较高,适合有经验玩家
difficulty=2

# 服务器信息与安全
# ————————————————————
# 登录提示信息 (进服公告)
motd=Stars_leap

# 封禁列表文件
banlist=banlist.txt

# 安全模式: 0=关闭, 1=开启 (开启后需要Steam验证)
secure=0

# 进程优先级: 0=正常, 1=高 (建议0,避免影响系统)
priority=0

# 游戏语言: en=英语, zh=中文, de=德语等
language=zh

方式二(一步一操作)

这一步是询问你是要创建新世界还是删除世界 我们输入 n 回车 创建新世界

这一步是询问你要创建的世界大小,我们输入 3 回车 选择 大世界

这一步是询问你要选择的难度,我们几个人追求完整的游戏体验,所以输入 3 回车(根据自己需要的来选择)

1. Classic(经典/普通模式)

2. Expert(专家模式)

3. Master(大师模式)

4. Journey(旅途模式)

这一步是询问你要选择的世界类型,这里我选择的是 1 随机生成

1. Random(随机):50%腐化 / 50%猩红

2. Corrupt(腐化之地)

3. Crimson(猩红之地)

这一步是询问你要设置的世界名字,自定义即可

这一步是询问你是否设置种子,直接回车就是随机,如果需要自定义种子就自行设置

完成操作后,会开始生成世界

此时可以看到 CPU 和 内存会被迅速占用,等待生成完成后,会让你选择世界,我们选择我们刚刚创建好的世界

这一步是询问你最大玩家数

这一步是设置服务器端口,默认为 7777 可自行设置

这一步是泰拉瑞亚服务器的 UPnP(通用即插即用)端口自动转发 设置

云服务器选 N 如果是家庭局域网自己开服玩 可以选择 Y

解释一下:

  • UPnP:一种网络协议,允许程序自动配置路由器端口转发

  • 作用:让外部玩家能直接连接到你的服务器

  • 原理:服务器尝试自动在路由器上打开指定端口(默认7777)

选择 y 的话 会自动尝试配置路由器开放端口,n 就是自己手动配置,因为云服务器商不支持这种操作,所以选择 n 就像,如果你家庭支持那你就开,大多数情况 n 就行

这一步是选择你的入服密码,可以自行选择是否设置,不设置可以直接回车

此时,我们的服务器就已经创建完成

我们去云服务器安全组配置端口

开放后即可在游戏中连接,选择多人游戏 -> 通过 IP 加入 -> 选择玩家 -> 输入服务器 IP 地址 -> 输入你设置的端口(默认 7777)-> 输入密码(如果设置了的话)

成功连接

服务器后台也可以看到(上面那个IP连接的端口被扫了,无视即可,或者自行屏蔽)


Screen 后台运行

此时我们可以发现,如果关闭服务器后台的话,服务器就自己关闭了,所以我们需要安装 screen 来让后台运行

输入 exit 保存并退出后,我们安装 screen

yum install screen -y # centos 安装 screen
apt install screen -y # ubuntu/debian 系安装命令

安装后输入 screen 进入目录会开启一个新的窗口,重复运行服务器即可

三、优化过程

此时我们也可以看到,在一个人运行的过程中,内存已经占用 1.57G 在后续游玩中会持续上涨,所以我们需要进行优化

内存扩容(Swap)(并非传统意义上的扩容)

第一步我们提到,我们需要进行 Swap 虚拟内存的配置,来进行内存扩容

# 创建4GB Swap(我们的内存实际可用为 1.7G 左右,所以 Swap 设置为内存的2.35倍,科学比例)
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

内核参数优化

在使用了 虚拟内存 技术来进行内存扩容之后,我们还需要进行内核参数优化,我们的原内核参数默认为:

cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure

什么是 vm.swappiness 和 vm.vfs_cache_pressure 呢?

vm.swappiness

  • 含义: 控制系统何时开始使用swap

0 = 尽量不用swap,除非内存完全耗尽(可能触发OOM Killer)
50 = 当内存使用达50%时开始使用swap
100 = 积极使用swap,几乎不保留内存缓存

vm.vfs_cache_pressure

  • 含义: 控制回收文件缓存的积极程度

1 = 非常懒惰,几乎不回收(可能占用大量内存)
100 = 标准回收速度(默认)
1000 = 非常积极,优先回收缓存给应用程序

原配置中的 0 100 完全不使用 swap 所以会导致 OOM Killer 杀死进程,而设置的 100 会频繁回收缓存,增加I/O 所以我们将其设置为 15/70

sysctl vm.swappiness=15
sysctl vm.vfs_cache_pressure=70
echo 'vm.swappiness=15' >> /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=70' >> /etc/sysctl.conf
sysctl -p

运行完之后可以重启服务器让配置永久生效

至此我们就进行好了配置,下面的脚本是一件配置第三部分的一键脚本,

#!/bin/bash
# 1. 创建4GB Swap
echo "1. 创建4GB Swap空间…"
swapoff /swapfile 2>/dev/null
rm -f /swapfile 2>/dev/null
fallocate -l 4G /swapfile || dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
echo "Swap创建完成"

# 2. 优化内核参数
echo "2. 优化内核参数…"
echo 'vm.swappiness=15' >> /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=70' >> /etc/sysctl.conf
sysctl -p

四、总结

内核优化让服务器开始使用 Swap

内存理论上达到了1.7GB + 4.0GB Swap = 5.7GB总内存 所以不会因为内存不够而让进程结束

就可以稳定使 2c2g 服务器长时间运行(截止编写之前稳定运行18天)

赞(0)
未经允许不得转载:171主机测评 » 【2026/1/18】Terraria泰拉瑞亚1.4.4.9Linux服务器部署与2c2g服务器优化全教程
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址