# Terraira建立服务器(Linux)
VPS信息:
套路云1G内存的小鸡
centos 64位
建完之后内存百分百,CPU使用率也会达到70%左右
创建教程:
查看是否有swap
free -m
如果不是很大,就删除重建
swapoff -a
新增swap分区
dd if=/dev/zero of=/root/swapfile bs=1M count=2048
mkswap /root/swapfile
swapon /root/swapfile
重启服务器reboot后查询
free -m
设置swap空间自动启动
编辑vi /etc/fstab
添加/root/swapfile swap swap defaults 0 0,保存文件之后,再次重启reboot
或者这么添加:
echo "/root/swapfile swap swap defaults 0 0" >> /etc/fstab先装一些工具
yum install screen yum install unzip搞两个文件夹
cd terraria mkdir exe downloads下载服务器包
wget http://terraria.org/server/terraria-server-1353.zip unzip terraria-server-1353.zip -d /root/terraria/exe cd /root/terraria/exe/1353 cp -p Windows/serverconfig.txt /root/terraria/exe/1353/Linux //这里要把配置文件serverconfig.txt拷贝到 TerrariaServer.exe的同一个目录 cd /root/terraria/exe/1353/Linux //到这里需要配置一下文件 vi serverconfig.txt //把世界名字和密码改一下 world=/root/terraria/Worlds/世界的名字.wld autocreate=2 worldname=世界的名字 difficulty=0 maxplayers=4 password=设定一个密码 worldpath=/root/terraria/Worlds下面是可用的配置文件命令表:
maxplayers=8 - 设置服务器的最大玩家数,数值必须介于1到255。
world=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\world1.wld - 加载一个世界并自动启动服务器。
port=7777 - 设置端口号,
password=p@55w0rd* - 设置服务器密码。
motd=Please don’t cut the purple trees! - 设置当日的消息。
worldpath=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\ - 设置世界文件的存储位置。
autocreate=3 - 如果没有在 -world 参数指定的路径找到世界,那么创建一个新世界。世界大小分为:1(小),2(中),3(大)。
difficulty=0 - 设置在使用 -autocreate 参数下的难度。可选项: 0(普通),1(专家)。
worldname=World - 当使用 -autocreate 参数时设定世界名称。
banlist=banlist.txt - 指定封禁名单文件的路径。默认情况下为工作路径下的banlist.txt文件。
secure=1 - 为服务器添加增强型作弊保护。
language - 通过语言码设置服务器语言。
给一开始建的文件夹加个权限
cd /root/terraria/exe/1353/Linux最后启动一下试试
./TerrariaServer.bin.x86_64 -config serverconfig.txt
正常的话应该会创建世界(此处贼卡,可能会把ssh卡瘫痪,多等一会就好了),然后进入创建世界后的命令行
确认成功后退出服务器
exit
然后将配置文件某些项注释掉
# autocreate=2# worldname=世界的名字# difficulty=1制作一个自动启动的脚本:
//新建个文本vi T_server.sh//把下面代码复制进去USERNAME='root'SCNAME='root'TERA_VER='1353'BIN_PATH="/root/terraria/exe/$TERA_VER/Linux/"SERVICE='TerrariaServer.bin.x86_64'CONFIG='/root/terraria/exe/1353/Linux/serverconfig.txt'
ME=‘root’
if [ $ME != $USERNAME ] ; then echo "Please run the $USERNAME user." exitfi
start() { if pgrep -u $USERNAME -f $SERVICE > /dev/null ; 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 > /dev/null ; 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服务器启动 /root/start.sh start
服务器停止 /root/start.sh stop
服务器重启 /root/start.sh restart
确认状态 /root/start.sh status
保存世界存档 /root/start.sh save
给该文件提升权限
chmod +x T_server.sh
之后执行脚本开启服务器
开了以后可以用screen -r ID回到“创建世界后的命令行”(ID可以用screen -ls查看)
最小化“创建世界后的命令行”可以用Ctrl + a + d来最小化(a、d要快速按,因为在xshell里这个是xshell的快捷键)