今天有朋友找我咨询Terraria联机的事情,之前我们一起玩的时候都是我做主机,用内网穿透的方式让大家连接上服务器,体验还算不错,但我一直有搭一个公共服务器的想法。
正好他现在需要一个服务器,我手头上又又有一个空闲的VPS可以用,于是说干就干,再加上我有那么一丁点儿的Linux终端语言基础,我直接开始Google教程,准备一步步地来搭建Terraria的服务器。
在搜索过程中,我看到一篇文章对小白非常友好,但又不是那么友好。为什么说友好呢,因为文章从选购VPS开始,细微到Vim的使用都有讲解;但为什么说不友好呢,因为不知道是文章本身的排版有问题,还是文章转载后排版错乱了,很多代码有格式错误,并且有些命令的使用讲的比较摸棱两可,因此我想就着这篇教程把代码更新一下。
前置知识
- Linux的基本命令行操作方法
- 如何购买及连接到自己的VPS
- 以上两点都可忽略,带脑子且会用搜索引擎即可
🎁跳过VPS
原文在这块用了大量篇幅介绍如何挑选VPS以及如何连接,我认为可以略过,有需要的可以去看看原文:
https://www.qlmed.cn/166479.html
能摸索到这一步应该已经不是什么电脑小白了,因此我觉得原文里面的关于VPS的选择和介绍可以略过,甚至PUTTY的基本操作和Linux命令行的基本操作都是前置知识,我认为没有必要再提及了。
创建Swap分区
这一步的目的似乎是给内存一个缓冲空间,因为购买的VPS一般性能比较低(学生党嘛,一般内存也就能买个1G2G的)。
使用命令查看Swap分区
$free-m
正常情况下应当是下图这样,swap分区空间为0
删除原来的分区
$swapoff –a
新建一个读写块大小为1M、块个数为1024的Swap分区(这里不一定要这么多,具体多少可以自己指定)
$dd if=/dev/zero of=/root/swapfile bs=1M count=1024
格式化创建好的Swap交换分区
$mkswap /root/swapfile
启动新建的Swap交换分区
$swapon /root/swapfile
下面是给Swap交换分区添加到开机自启动挂载,可能步骤稍多
$vim /etc/fstab
进入文档后,进入编辑模式,然后加入一行代码
/root/swapfile swap swap defaults 0 0
然后使用reboot命令或者其它办法重启实例即可,使用free -m查看Swap分区是否已经被分配内存了,然后决定是否进入下一步
下载配置相关文件
在opt目录下创建Terraria文件夹,并在该文件夹下创建bin,worlds,zip三个子文件夹
$mkdir /opt/terraria$mkdir /opt/terraria/{bin,worlds,zip}
进入zip文件夹,下载官方提供的服务器包
$cd /opt/terraria/zip
$wget https://terraria.org/api/download/pc-dedicated-server/terraria-server-{{这里是版本号,要随着游戏版本更新而变}}.zip
将下载好的文件解压到bin文件夹中
$unzip terraria-server-{{你下载的版本号}}.zip-d/opt/terraria/bin
这里解压完之后可以把zip文件夹里面的压缩文件删除掉,不过你也可以不删除将配置文件拷贝到泰拉瑞亚文件夹的根目录
$cp -p /opt/terraria/bin/{{你的版本号}}/Windows/serverconfig.txt /opt/terraria/
编辑配置文档
$vim /opt/terraria/serverconfig.txt
如果你的世界名字等需要用到中文,那么这里很可能需要改变文档的编码方式,不要进入编辑模式,手打这串字符并回车,没有出现红色警告则成功:
set fileencoding=utf-8
在文档的最后一段复制以下代码
world=/opt/terraria/Worlds/{{世界的名字}}.wld
worldname={{世界的名字}}
difficulty=0
autocreate=2
maxplayers=4
password={{设定的密码}}
worldpath=/opt/terraria/worlds
difficulty是游戏的难度,对应的是0为普通,1为专家,如difficulty=0是普通模式autocreate是自动生成的世界的大小,1是小世界,2是大世界,3是超大世界maxplayers是最大同时游戏人数
启动服务器
使用下列命令赋予文件可执行权限
$chmod 777 /opt/terraria/bin/{{你的版本号}}/Linux/TerrariaServer.bin.x86_64
启动服务器
$cd /opt/terraria/bin/{{你的版本号}}/Linux&&./TerrariaServer.bin.x86_64-config/opt/terraria/serverconfig.txt
原文章在这里还退出了去修改原配置文件,我修改了之后出现了编码错误,因此这里就暂且不提了,服务器维护的相关指令和内容可以自行查询相关文档或者是去Google查找
将服务器挂起
使用screen服务将服务器挂起,从而可以关闭PUTTY之后也能让服务器跑起来首先创建该窗口
$screen -S terraria
创建后会直接进入该窗口,然后我们直接启动服务器即可
$cd /opt/terraria/bin/{{你的版本号}}/Linux&&./TerrariaServer.bin.x86_64-config/opt/terraria/serverconfig.txt
使用安全组策略防止端口被拦截
使用安全组策略防止端口被拦截这算是一个小坑,国内的三大VPS提供商应该都会提供一个安全组策略,设置了端口白名单。
Terraria的Server启动端口默认是7777,这个端口应该是被安全组策略封锁的,因此需要手动去解除。这里以阿里云为例进入安全组并配置策略将7777端口设置为白名单
后记
Terraria的更新速度可能有点快,这就意味着VPS持有者也要不断更新Server版本,确实是比较折磨的一件事,这只是最初级的配置教程,至于流程自动化,可能需要查阅更多资料后总结得出。
小黑盒到底支不支持markdown?说它支持吧,我把我之前写的markdown源码发过来识别不了,说它不支持吧,引用加粗这些操作像极了markdown,怪事...