泰拉瑞亚Linux主机打造指南
最近玩了泰拉瑞亚,一个2D版的我的世界
,但苦于steam的联机太过不靠谱,经常会出现和朋友之间联机失败的问题,所以我把服务器放到了部署我博客的服务器,这样就可以通过IP直接让好友加入游戏了!
首先是购买服务器,因为我们需要一个大家都能访问的公网IP,所以...
Vultr最近服务器在做活动,冲10美元送50美元,而且服务器你除了用来放泰拉瑞亚的服务,还可以给自己搭建Vxx。
新用户注册才有的福利,随便搞一个邮箱注册就可以了。
前置准备
首先要解决的一个问题是服务器内存问题,为了支持数百人加入,需要较高的内存配置,但是服务器内存太贵了,启用swap倒是不错的选择。
确认下SWAP设置了多少
free -m
如果足够1GB则跳过这一步直接开始搭建游戏!
删除SWAP分区
swapoff -a
新增SWAP分区
dd if=/dev/zero of=/root/swapfile bs=1M count=1024
格式化交换分区文件:
mkswap /root/swapfile
启用swap分区文件
swapon /root/swapfile
添加开机启动
vi /etc/fstab
在最后一行添加
/root/swapfile swap swap defaults 0 0
重启下是否生效
reboot
重启后输入指令查看下SWAP是否增加
free -m
搭建服务
首先下载需要用到的工具库。
# yum install wget
# yum install screen
# yum install unzip
因为泰拉瑞亚需要用到7777端口,所以我们要让防火墙允许。
# firewall-cmd --permanent --add-port=7777/tcp
success
# firewall-cmd --reload
success
创建一个用来存放泰拉瑞亚服务器的文件夹
# cd /opt/
# mkdir terraria
# mkdir terraria/{bin,downloads}
# chown -R root:root terraria
下载泰拉瑞亚官方提供的服务器包。
$ cd /opt/terraria/downloads
$ wget http://terraria.org/server/terraria-server-1353.zip
解压软件包。
$ unzip terraria-server-1353.zip -d /opt/terraria/bin
然后需要一个配置文件。
$ vi serverconfig.txt
文件内容如下:
world=/opt/terraria/Worlds/世界的名字.wld
autocreate=2
worldname=世界的名字
difficulty=0
maxplayers=4
password=设定一个密码
worldpath=/opt/terraria/Worlds
具体世界的名字和密码自定。
autocreate 是没有发现世界自动生成世界的大小 1、2、3分别对应小、中、大
difficulty 对应的是0为普通,1为专家
maxplayers是最大人数
给运行文件设置权限
$ cd /opt/terraria/bin/1353/Linux
$ chmod 744 TerrariaServer.bin.x86_64
启动服务器
$ ./TerrariaServer.bin.x86_64 -config /opt/terraria/serverconfig.txt
初次运行因为要创建世界需要一定时间当看到
Terraria Server v1.3.5.3
Listening on port 7777
Type 'help' for a list of commands.
:
表示生成成功!
此时可以在游戏的多人模式通过IP进入游戏看看是否成功。
确认成功后退出服务器
: exit
重新编辑配置文件防止重新生成世界
$ cd /opt/terraria
$ cp -p serverconfig.txt serverconfig.txt_yyyymmdd
$ vi serverconfig.txt
将三个配置注释掉
autocreate=2
worldname=世界的名字
difficulty=1
改为
# autocreate=2
# worldname=Terraria
# difficulty=1
再次运行一次看看是否成功。
优化体验
每次启动都要输入这么多文件夹路径很麻烦,所以我们可以制作一个自动启动的脚本:
$ vi terra_script.sh
内容如下:
#!/bin/bash
USERNAME='root'
SCNAME='terraria'
TERA_VER='1353'
BIN_PATH="/opt/terraria/bin/$TERA_VER/Linux/"
SERVICE='TerrariaServer.bin.x86_64'
CONFIG='/opt/terraria/serverconfig.txt'
ME=`whoami`
if [ $ME != $USERNAME ] ; then
echo "Please run the $USERNAME user."
exit
fi
start() {
if pgrep -u $USERNAME -f $SERVICE > /opt/terraria/logs/start.txt ; then
echo "$SERVICE is already running!"
exit
fi
echo "Starting $SERVICE..."
screen -AmdS $SCNAME $BIN_PATH$SERVICE -config $CONFIG
exit
}
stop() {
if pgrep -u $USERNAME -f $SERVICE > /opt/terraria/logs/stop.txt ; then
echo "Stopping $SERVICE "
else
echo "$SERVICE is not running!"
exit
fi
screen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. "\015'
sleep 10
screen -p 0 -S $SCNAME -X eval 'stuff "exit"\015'
exit
}
save() {
echo 'World data saving...'
screen -p 0 -S $SCNAME -X eval 'stuff "say World saveing..."\015'
screen -p 0 -S $SCNAME -X eval 'stuff "save"\015'
exit
}
status() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is already running!"
exit
else
echo "$SERVICE is not running!"
exit
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
save)
save
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|status|save}"
esac
这样就分别有了「启动」「关闭」「保存」「重启」了。
分别对应:
服务器启动
/opt/terraria/terra_script.sh start
服务器停止
/opt/terraria/terra_script.sh stop
服务器重启
/opt/terraria/terra_script.sh restart
确认状态
/opt/terraria/terra_script.sh status
保存世界存档
/opt/terraria/terra_script.sh save
给文件提升权限
$ chmod 744 terra_script.sh
确认下启动
$ sh -x ./terra_script.sh start
通过「screen -ls」确认下是否开启了窗口
$ screen -ls
There is a screen on:
883.terraria (Detached)
1 Socket in /var/run/screen/S-terraria.
确认下关闭
$ sh -x ./terra_script.sh stop
确认关闭是否成功
$ screen -ls
No Sockets found in /var/run/screen/S-terraria.
这样就算是完成了,世界的存档就在Worlds目录中,如果你用了MobaXterm这种支持文件传输的工具连接服务器,可以直接把游戏存档拉出来保存到你自己电脑上,还可以上传你自己单机玩的存档。
泰拉瑞亚Linux主机打造指南的更多相关文章
- Terraria(泰拉瑞亚)存档覆盖(Linux)
这是一篇关于游戏的不正经博客 ~ 游戏介绍: <泰拉瑞亚>是由Re-Logic公司开发的一款高自由度的沙盒游戏,于2011年5月16日在PC上发行. 玩家可以在游戏中做很多事情:制造武器战 ...
- Linux 桌面玩家指南:02. 以最简洁的方式打造实用的 Vim 环境
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解决一些依赖 Windows 的痛点问题
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:18. 我对 Docker 的使用的学习心得
原文:Linux 桌面玩家指南:18. 我对 Docker 的使用的学习心得 特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记 ...
- linux内核调试指南
linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...
- Linux 桌面玩家指南:16. 使用 CUDA 发挥显卡的计算性能
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:15. 深度学习可以这样玩
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:14. 数值计算和符号计算
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
随机推荐
- Flink(三) —— 运行架构
Flink运行时组件 JobManager 作业管理器 TaskManager 任务管理器 ResourceManager 资源管理器 Dispatcher 分发器 任务提交流程 任务调度原理 Job ...
- Form表单中method="post/get'的区别
Form提供了两种数据传输的方式--get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...
- linux进程(二)
信号管理进程使用kill命令发送信号与进程通信定义守护进程的角色结束用户会话的进程 kill,killall,pgrep,pkill 对于进程的正常关闭的理解正常关闭程序的方法systemctl st ...
- Winform Post请求传递Json格式参数的写法
注意的是,Json传递需用到Hashtable(哈希表)来添加参数,本人也试过用JObject添加页不行,感觉应该可以的不知道怎么回事,直接上代码, Hashtable ht = new Hashta ...
- 关于Java中注解的总结
注解用来给类声明附加额外信息,可以标注在类.字段.方法等上面,编译器.JVM以及开发人员等都可以通过反射拿到注解信息,进而做一些相关处理 Java中注解的知识结构图 常用注解 @Override ...
- Redhat6更改yum源 (转)
最近虚拟机中安装了redhat6.3企业版,自带的yum用不起来,软件都找不到. 网上搜了一下说是没付钱...,需要改下yum源.操作步骤如下: 1.切换到yum源存放目录[root@rhel6 ~] ...
- 使用命令安装laravel 项目
cp .env.example .env 拷贝.env 文件 php artisan key:generate 生成秘钥 php artisan migrate 生成数据表 composer ...
- android选择器汇总、仿最美应用、通用课程表、卡片动画、智能厨房、阅读客户端等源码
Android精选源码 android各种 选择器 汇总源码 高仿最美应用项目源码 android通用型课程表效果源码 android实现关键字变色 Android ViewPager卡片视差.拖拽及 ...
- 做成像的你不得不了解的真相2-灵敏度和QE
科研级相机的灵敏度由三个主要参数决定: 探测器的QE, 像元尺寸和相机噪声. 后两项我们以后再做专题讨论.这期先讲讲小编认为顶顶重要,看起来最容易理解,但是其实还有些奥妙的QE. QE-量子效率 QE ...
- spring+mybatis+shiro入门实例
sql: 1 /* 2 SQLyog Ultimate v11.33 (64 bit) 3 MySQL - 5.1.49-community : Database - db_shiro 4 ***** ...