泰拉瑞亚(Linux)
简介
- 泰拉瑞亚的公共服务器默认是搭建在拥有.net环境的windows上的。因此如果需要安装在类似Ubuntu等Linux操作系统的远程主机上需要安装Mono 4+模拟.net环境。而安装泰拉瑞亚服务端的工具则是TShock。
- 我们的例子是阿里云Ubuntu14.04 64位LTS(或16.04 64位LTS)+ Mono 4 + TShock
注:事实上无论是华为云、腾讯云还是阿里云的ECS(弹性云主机)都可以使用本例进行部署,以上公有云平台都是基于Kubernetes及Docker技术部署的,无论是功能还是界面都类似。个人用户选购时,三者之间的的优缺点见下文:
- 华为云:相对于阿里云起步较晚,但也已是国内主要云提供商,且毕竟是世界通信和电信设备商龙头,服务器安全方面管理较好,速度及稳定性高,解决方案较强。规模起来后,云服务器价格也比之前降了不少,1C1G主机1M宽带一年大约600多,如果是新用户或者有优惠活动,价格大约在260-360之间。
- 阿里云:在国内三大云服务供应商之间最成熟,速度最好,稳定性还行。如果是学生,选择阿里云的校园扶持项目,1C2G的ECS一年只需要118元,相比于没有保障的VPS来讲,性价比更高。如果是普通用户,1C1G主机1M宽带的ECS一年大概700多元,相对于之前涨价了,不建议阿里云便宜的性能突发型,因为1C1G是泰拉瑞亚基础配置,运行时CPU和内存已经比较饱和了,使用性能突发型会被阿里云限制。新用户和优惠后价格与华为云类似,稍微高一些,但不会超过100。
- 腾讯云:唯一的优势是学生的10元/月限量抢购套餐。但是学生,限量,抢购!!以前有个一元抢购套餐,现在已经取消了。
注1:以上运营商状况主要参考时间为2017年,2018年根据情况已修正
注2:实测泰拉瑞亚在windows云主机上稳定性比linux好很多,至少进程不会被杀掉,连接上和加载也快。Linux上使用screen也不稳定,还需要加上守护进程才比较靠谱。
注3:阿里云的windows服务器也是没有虚拟内存的都需要我们自己配,腾讯云倒是linux和windows的swap分区和虚拟内存都配置好了。
提前准备
安全组规则开放
- 如果是云主机服务,一定需要首先开放云主机对应的安全组的入规则,这样我们才能通过对于的IP+端口访问我们的远程服务器,泰拉瑞亚默认的端口是7777,我们就以这个端口作为演示。
- 安全组的规则设置为:协议选择TCP,方向为入方向,开放端口为7777,允许访问的地址为0.0.0.0/0(意味任意来源地址)
以下是三大云服务运行商开启安全组7777端口的方式:
华为云:进入控制台,点击虚拟私有云,进入私有虚拟云服务后选择安全组
点击右侧对应的安全组名称后,安全组展开规则列表,点击右上方的添加规则
阿里云:进入管理控制台,点击云服务ECS,进入ECS界面后点击左下方的安全组
选择对于的安全组规则,点击右侧的配置规则后进入安全组的规则详情页面,点击右上方添加安全组规则,进行如下配置
腾讯云:进入控制台后点击左上方的云产品,下拉表中选择私有网络
在私有网络界面的安全下面选择安全组
安全组规则点击ECS对应安全组右侧的配置规则,进入配置页面,点击入站规则下的添加规则,配置如下图:
确定是否存在交换空间
新创建的ubuntu操作系统的ECS一般是没有预先配置swap分区的,因此为了防止服务器进程被系统kill,我们需要先进行swap分区的设置,一般2G就足够了
- 查看是否存在swap分区:cat /proc/swaps
如果分区不存在,则不会返回swap分区信息,如果存在则显示,如
第一张图不存在swap分区,第二张存在。
磁盘无法格式化,Swapfile文件作为分区使用
- 若不存在,且服务器的磁盘无法重新格式化分区,则手动创建一个容量为2G的swap文件作为分区使用(小于8G的RAM,swap分区大小一般设置为RAM的2倍)
- swap文件作为分区步骤如下,也可以使用这个swap脚本进行swap文件自动创建及挂载,目前发现的脚本问题是腾讯云ubuntu内核不支持fallocate命令快速预分配空间到swapfile文件,阿里云和ubuntu官方的镜像都可以,应该是腾讯云进行的安全修改。
- 切换到root用户:su root (新创建的ECS可能没有设置root的密码,使用命令sudo passwd root设置root密码)
- 查看剩余空间:free -m
- 创建swapifile文件: dd if=/dev/zero of=/swapfile bs=2G count=4(此处of为swapfile创建的位置,此处为根目录,bs为交换文件的大小)
- 预分配swapfile文件大小:fallocate -l 2G /swapfile (不这样的话swapfile自然增长我们要等几个小时)
- 更改swapfile文件权限:chmod 600 /swapfile
- 将 swapfile 初始化为交换文件:mkswap /swapfile
- 启用交换文件:swapon /swapfile
- 设置系统启动自动挂载swapfile:echo -e “/swapfile none swap sw 0 0”>>/etc/fstab
- 再次使用命令查看挂载情况:cat /proc/swaps && free -m
注:我们卸载swap分区时就先使用swapoff [挂载的文件或磁盘],如此处的swapoff /swapfile先卸载swap分区的挂载,然后删除对应文件的配置,如删除/etc/fstab文件下的/swapfile none swap sw 0 0
磁盘可以格式化,手动划分磁盘物理空间作为swap分区
这种方式使用的是物理磁盘划分真正的swap分区,因此比使用交换文件当作swap分区效率要高上一些。但是需要格式化,因此仅适用于刚拿到弹性云主机及云主机上没啥重要文件可以格式化的情况。
以下是分区步骤:
- 查看系统盘情况:Linux的磁盘分为系统盘和数据盘,我们可以使用df -lh命令查看系统盘的情况,如下图,我们可以知道我们的数据盘是40G,盘符是/dev/vda,西面有一个分区为/dev/vda1
- 查看数据盘情况:使用命令fdisk -l命令即可查看所有盘的情况,包括数据盘。如下图,我这里的数据盘是21.5G,盘符是/dev/vdb,没有vdb1之类表示没有任何分区
- 对数据盘进行分区:可以参考这个《fdisk分区》的说明,使用fdisk [对应的盘符名称进行分区]进行分区,此处即为fdisk /dev/vdb。然后在fdisk中按m是获取帮助,按n创建新的分区。
- 创新新的分区:在使用n创建了新的分区后,让我们选择p和e,分别对应新分区类型为主分区或者扩展分区,我们选择p,然后新分区的盘符编号选择1(如果原本没有分区的话),接下来是选择起始位置,这个直接回车选择默认。后面是选择分区大小,因为我的弹性云主机物理内存只有1G,因此swap分区大小选择了2G,输入+2G。然后选择t,对新创建的分区的类型进行修改,改为swap类型;因为只有一个分区,因此系统自动选择了主分区1,然后输入l查看所有的类型,选择82,改变分区类型为swap,最后选择w保存并退出。重新使用命令查看分区情况,分区的大小即为Blocks显示的大小,除以2个1024后单位就是G
- 挂载swap分区:首先使用mkswap [分区名]真正建立swap分区对象,然后使用swapon -a [分区名]进行一次性自动装载。为了以后我们登陆方便,在/etc/fstab文件下加入[磁盘名] [挂载目录] [文件类型] [挂载选项] [是否备份]等参数来进行永久挂载,此处为/dev/vdb1 swap swap defaults 0 0,具体参看《/etc/fstab 文件解释》
- 查看挂载是否成功:重新打开一个窗口,使用命令swapon -s查看
部署TShock
安装Mono 4
- 推荐先更新国内的ubuntu的apt源,比较快
- 使用命令apt-get update更新软件包列表
- 使用命令apt-get install mono-complete自动安装最新版mono
安装TShock
- 使用一个账户,可以是普通账户或者是root账户,如果是普通账户,请赋予sudo权限
- 选定一个安装目录,如当前用户的home目录:cd [目标安装目录] 或 cd ~
- 获取最新安装包:进入最新包下载地址获取最上面版本的zip的地址,邮件点击如tshock_4.3.24.zip然后选择复制链接地址,使用如wget -O tshock.zip ‘https://github.com/Pryaxis/TShock/releases/download/v4.3.24/tshock_4.3.24.zip’下载到当前目录。或者直接在最新包下载地址直接下载zip包到本地后使用xshell上的xftp5上传到云主机的对应目录。
- 解压并进入解压后的TShock文件夹:unzip tshock.zip -d $PWD/tshock && cd tshock
- 使用screen命令开启窗口,这样网络端口服务器也会继续运行:screen mono TerrariaServer.exe
- 安装本地启动服务器的方式设置即可
- 最后成功后看到如下图所示,记住那串黄色的数字密码,进入泰拉瑞亚游戏并连上服务器后控制台输入/auth [数字密码]即可进行管理员账户(SuperAdmin)的配置