本教程适用于搭建7日杀Linux服务器(云服务器/实体服务器)。我会尽量详细地写,未提及的细节建议直接问善用搜索。
建议的配置需求:
CPU双核起,内存最低4G,建议8G起步。
如果你玩的是Navezgane,那么4G内存可供五六好友一起游戏;如果你选用8k大小的自定义地图,那么最低配备8G内存是比较稳妥的。
地图越大,人越多,视距越大,内存占用越大。注意自带的PREGEN地图也是8k大小的,具体可以看map_info.xml文件内的HeightMapSize值。
建议的网络环境:
国内的云服务器或电信/联通有动态公网IP的家庭宽带。
工具:
本教程示例使用的发行版是Ubuntu18.04LTS(Debian类同)。
建议使用的SSH/SFTP工具为:XShell,XFTP(个人非商用免费)。
请注意文中的空格和英文标点,不要搞错了。
执行以下命令安装Steamcmd:
sudoadd-apt-repositorymultiverse
sudodpkg--add-architecturei386
sudoaptupdate
sudoaptinstalllib32gcc1steamcmd
ln-s/usr/games/steamcmdsteamcmd
启动steamcmd并匿名登陆:
输入steamcmd回车,匿名登陆loginanonymous回车。
指定安装路径:
force_install_dir/home/user/7dtd
【这里的user要替换为你自己的用户名,7dtd可随便取个你喜欢的文件夹名,但在后续教程中为了指称方便,默认采用这个】。如果不指定的话会默认安装在steam目录里面,一层层找起来比较麻烦。
安装服务器:
app_update294420(稳定版)
app_update294420-betalatest_experimental(测试版)。
因发文之时a19还是experimental测试状态,所以我选择了后者。**注意!稳定版和测试版并不兼容,想清楚自己要玩什么版本**
启动服务器:
我们来到指定的安装目录里cd/home/user/7dtd
执行./startserver.sh-configfile=serverconfig.xml
这里serverconfig.xml是默认的配置文件,我建议你不要直接修改它,而是复制一份(以防改错了又不知道怎么还原),重新命名后修改,然后指定你修改后的那个xml启动。
ctrl+c关闭服务端
Screen运行:
上面的做法可以让你启动服务器,但当你断开ssh连接时,服务器也随之关闭。这里使用screen来后台运行游戏服务端。(可以自行搜索了解一下screen)
安装screen:sudoaptinstallscreen
建立一个名为7的会话:screen-S7(这个7也可以随便改啦)
来到服务端的安装目录,然后运行./startserver.sh-configfile=edited.xml(假设edited.xml是你修改后的配置文件)
断开这个会话:Ctrl+ad
返回这个会话:screen-r7
主要就以下三组。如果VPS提供商有安全组设置的话请放行;家宽开服记得路由器设置端口转发。
TCP:26900
UDP:26900-26902
(UDP仅开放26902即可通过地址直连,但无法在大厅列表刷到你的服务器)
网页控制面板(可选):TCP:8080
(网页控制面板调用了GoogleAPI)
/home/user/7dtd/安装路径
/home/user/7dtd/Mods/如果要加mod,就在安装目录下新建这个文件夹,把mod放进去
/home/user/7dtd/Data/Worlds/地图文件夹
/home/user/.local/share/7DaysToDie/Saves/极其重要!建议定期备份!虽然服务器会定期保存+备份,但一旦运气不好服务器崩溃就救不回来了。存放玩家数据与对地图的改动,这里也是服务器管理员文件的默认存放目录。做服务器迁移记得要把这个也一起搬运。Saves好像在A19变成了saves,自己注意一下大小写。
%AppData%Windows客户端的地图存放目录。GeneratedWorlds是生成的世界,Saves是本地作为主机时的数据,SavesLocal是访问远程服务器所保存的游戏数据。
serverconfig.xml里面挑一些讲解,英语不是很差都能看懂
ServerVisibility服务器可见度。顾名思义是能不能被服务器列表刷到啦。如果怕被D服可以设置为隐藏。
ServerMaxWorldTransferSpeedKiBs加载地图的最大带宽。在玩家进入服务器时,如果本地没有这张地图,会从服务器下载地图文件,并从服务器同步区块的改动。上述行为是比较消耗带宽的。默认值是512KB/s。需要根据自身带宽大小进行调整。(Mbps与KB/s的转换请自行搜索)
EACEnabled是否启用反作弊。如果是几个认识的朋友一起玩并设置了密码,关了也没事,节省性能(据说EAC会有一些bug)。
BlockDamagePlayer,BlockDamageAI,BlockDamageAIBM玩家/AI/血月时AI的物块伤害百分比。如果菜鸡们首次开服,这个好有用的,有效防止一日死7次。
MaxSpawnedZombies,MaxSpawnedAnimals最大丧尸数量对性能影响较大,如果血月感到卡的话可以视情况降低。动物数量对性能影响较小。
ServerMaxAllowedViewDistance服务器最大许可的视距。十分影响性能,更高的视距意味着对于每个玩家,服务器要用更大的内存加载视距内的地图,计算更大范围内的事件。性能低下的服务器就设置为最低值6吧(偷偷抹把泪)
如何添加管理员权限
上面已经提及了管理员文件的路径,查询steamid64,像这样添加管理员。
你可以在游戏内按F1打开控制台执行命令,也可以在网页控制面板执行命令。这里提几条常用的吧
shutdown关服
saveworld缩写sa,手动保存世界。注意在此过程中,服务器里的玩家会卡得生活不能自理。
say服务器它说话啦!
version输出游戏和插件的版本
dm/cm开发者模式/创造模式,在客户端运行,输一遍开启,再输一遍关闭,需要管理员权限
国内2核8G内存的VPS什么价格?打扰了。有专门的托管服务,便宜一点。还是买不起啊
我自己的电脑不可能24小时开着游戏不干别的事情,那就捡垃圾挂在家里当服务器,大家聚在一起能玩两个月我就赚到了,相当于白捡一个服务器。
要素:宽带给了公网ip,路由器设置端口转发,路由器配置ddns。(善用搜索)
没有公网IP?可以考虑使用frp或nps内网穿透。穿透tcp26900和udp26902即可。(善用搜索)
新建文件touch/home/user/7backup.sh
事先新建备份文件夹mkdir/home/user/7dtdbackup
#!/bin/shmkdir/home/user/tmpcd/home/user/.local/share/7DaysToDie/savescp-r./Navezgane/MyGame/home/user/tmp#自行修改为想要备份的存档目录nice-19zip-r/home/user/7dtdbackup/backup.$(date+%Y%m%d%H%M).zip/home/user/tmp#nice-19降低zip压缩的优先级,避免游戏服务器卡顿rm-rf/home/user/tmp
添加可执行权限chmod+x/home/user/7backup.sh
加入crontab计划任务(没有的话先安装cron.自行了解你喜欢的文本编辑器):crontab-e