关于Linux系统七日杀服务器的那些事——持续更新中

搭建七日杀服务器:这里的服务器指的是云服务器:阿里云、华为云、腾讯云。用云服务器的好处是可以根据用户多少可以升降服务器配置,这样可以使你花最少的钱并且能很高的保障服务器稳定运行。
	关于带宽:如果你用的是官方地图,服务器最好买包流量的,比如一个月固定3000G流量会给你14M带框,这种优势是比买固定宽带不限流量的花费便宜很多,而且带宽也会高上许多,不用担心因为玩家过多而带宽不足出现卡顿的问题;但是如果你是自定义地图耗费的服务器流量比较大,带宽的话你可以通过游戏配置限制玩家下载地图时的占用大小。这种情况可以根据实际需求来选择购买包月流量还是固定带宽。
	关于swap:个人观点8Gswap足够了,众所周知七日杀是非常吃内存的会把所有游戏数据加载到内存中,所以尽量保证内存足够,当内存不足时才会用到swap交换分区,但是swap交换分区的效率远不如内存,可以用 free -m 命令查看内存利用率,当主机开始消耗swap了说明内存已经不足游戏开始卡顿了,需要对云主机内存进行升配了。
	
	
	配置要求:			
		测试服:
			带宽:1M
			内存:4G
			swap:8G
			cpu:1核	
		10人服:
			带宽:2M
			内存:8G
			swap:8G
			CPU:2核
		10-40人服:
			带宽:4M以上(测试了下一般15个玩家基本上带宽就能达到4M,而且我用的是官方地图)
			内存:16G以上
			swap:8G
			CPU:4核以上
	系统配置:
		修改主机名:
			hostnamectl set-hostname 7day
		停掉所有防火墙和云服务过滤策略	
		设置swap:
			swapon -s # 如果该命令没有返回出结果,则代表该系统尚未配置过swap。
			df -h	# 检查可用的存储空间
			fallocate -l 8G /swapfile	# 请根据自己情况修改swap大小
			chmod 600 /swapfile	# 更改swap文件的权限,否则会有很大的安全隐患
			mkswap /swapfile	#格式化
			swapon /swapfile	#启用swap
			vim /etc/fstab	#设置为永久生效
				/swapfile   swap    swap    sw  0   0
			swappiness参数决定了系统将数据从内存交换到swap空间的频率。该数值越接近于0,系统越倾向于不进行swap,最大限度使用物理内存。数值越接近100,越倾向于使用swap,而过多的使用swap可能导致服务器运行效率缓慢。这里我为了保证服务器运行效率,建议设置为1。
			vim /etc/sysctl.conf
				vm.swappiness = 1
	系统安全配置:这个可以提高系统安全性,可以防止被暴力破解或降低流量攻击
		sshd:修改端口设置只允许免密防暴力破解
			vim /etc/ssh/sshd_config
				Port 2222	#修改端口为2222
				PasswordAuthentication no	#设置为不能账号密码登录,防暴力破解,关于密钥登录可以百度一下
			systemctl  restart sshd	#使配置生效
		防火墙设置:降低流量攻击
			补充中,,,,
	
	安装游戏服务器
		yum -y install glibc libstdc++	#安装运行环境
		yum -y install glibc.i686 libstdc++.i686	#安装运行环境
		yum  install SDL2 多媒体开发库
		wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz	#下载Linux系统专用的SteamCMD 
		tar -xvf steamcmd_linux.tar.gz	#解压
		./steamcmd.sh	#运行steamcmd
		login <用户名> <密码>	登录steam账号并输入一次安全令牌
		force_install_dir ~/7DaysToDieServer		# 设置服务端安装目录
		app_update 294420 validate	# 下载七日杀服务端,294420是七日杀的编号
		force_install_dir /root/7DaysToDieServer	#设置服务端安装目录
		app_update 294420 validate	# 下载七日杀服务端,294420是七日杀的编号
		quit	#退出SteamCmd
		nohup  /root/~/7DaysToDieServer/startserver.sh -configfile=serverconfig.xml &	#启动游戏
	添加计划任务
		crontab -e
			1 */1 * * * sync && echo 3 > /proc/sys/vm/drop_caches	#每一小时清理一下读写缓存
			*/5 * * * * ps -ef |grep -v grep|grep 7DaysToDieServer || bash -c "nohup  /root/~/7DaysToDieServer/startserver.sh -configfile=serverconfig.xml &"	#每5分钟一检测游戏进程是否还在,如果不在自动启动
			1 5 * * *    kill -9 `ps -ef | grep '\./'|grep -v grep |awk '{print $2}'` && sleep 10 &&      bash -c "nohup  /root/~/7DaysToDieServer/startserver.sh -configfile=serverconfig.xml &"	#每天早上5点自动重启

七日杀文件与目录:
	~/7DaysToDieServer	# 七日杀服务端主目录
	~/7DaysToDieServer/Data/Worlds	# 七日杀服务端地图目录
	~/7DaysToDieServer/Data/ditu	# 七日杀服务端存档目录,可以在主配置文件中修改
	~/7DaysToDieServer/7DaysToDieServer_Data	# 七日杀服务器日志输出目录
	~/7DaysToDieServer/Mods	# Mods目录,需要自己创建
	~/7DaysToDieServer/serverconfig.xml	#主配置文件
	~/7DaysToDieServer/Data/ditu/serveradmin.xml	# 服务器配置文件

服务器配置文件:可以设置管理员和封禁玩家
cat ~/7DaysToDieServer/serverconfig.xml

  <admins>
    <!-- <user steamID="76561198021925107" name="Hint on who this user is" permission_level="0" /> -->
    <!-- <group steamID="103582791434672565" name="Steam Universe" permission_level_default="1000" permission_level_mod="0" /> -->
    <user platform="EOS" userid="0002044ccd1a4d4bacc59bcb9ab8ba53" name="土贼" permission_level="0" />	<!-- 设置管理员以及权限 -->
  </admins>	

 <blacklist>
    <!-- <blacklisted steamID="" name="" unbandate="" reason="" /> -->
    <blacklisted platform="EOS" userid="00022107456e4fd795439c8293628a0c" name="670267118" unbandate="2052-11-03 22:31:57" reason="[FF0000]NAIWAZI反作弊:人物档案" />
    <blacklisted platform="EOS" userid="000200aeedb14f8fa8dc93cae76b575d" name="流经岁月" unbandate="2052-11-20 03:08:42" reason="[FF0000]NAIWAZI反作弊:飞行" /><!-- 封禁玩家,可以把这里的代码复制到其他服务器上可以同步封禁玩家名单 -->
  </blacklist>

主配置文件:
cat ~/7DaysToDieServer/serverconfig.xml

<?xml version="1.0"?>
<ServerSettings>
	<!-- GENERAL SERVER SETTINGS -->

	<!-- Server representation -->
	<property name="ServerName"					value="土豆纯净公困难服 11月18日17点正式开服 QQ群:151846157 进群送300积分"/>	<!-- 服务器名字 -->
	<property name="ServerDescription"				value="QQ群:151846157 进群送300积分
纯净+PVE
血月3天一次+无限血月
欢迎新萌大佬入住"/>												<!-- 服务器简介描述 -->
	<property name="ServerWebsiteURL"				value=""/>				<!-- 网站 -->
	<property name="ServerPassword"					value=""/>				<!-- 服务器密码 -->
	<property name="ServerLoginConfirmationText"	value="祝游戏愉快!!
QQ群:151846157" />												<!-- 玩家进服前看到的小窗口内容 -->
	<property name="Region"						value="Asia" />				<!-- 服务区 -->
	<property name="Language"					value="English" />			<!-- 语言 -->

	<!-- Networking -->
	<property name="ServerPort"					value="26900"/>				<!-- 服务器端口 -->
	<property name="ServerVisibility"				value="2"/>				<!-- 此服务器的可见性:2 =公开,1 =仅向朋友显示 -->
	<property name="ServerDisabledNetworkProtocols"			value="SteamNetworking"/>		<!-- 不使用的网络协议,不要修改 -->
	<property name="ServerMaxWorldTransferSpeedKiBs" 		value="512"/>				<!-- 玩家与服务器的数据交互速度,服务器带宽高的填”1300"(这是最高了)带宽不够的填“512~1300” --
>	<!-- Slots -->
	<property name="ServerMaxPlayerCount"				value="50"/>				<!-- 玩家数量 -->
	<property name="ServerReservedSlots"				value="0"/>				<!-- 预留玩家位置,会减少总在线人数(一般默认0不改) -->
	<property name="ServerReservedSlotsPermission"			value="100"/>				<!-- 指定权限玩家可以进入预留玩家位置,权限分为0,1000,,(一般默认0不改)-->	
	<property name="ServerAdminSlots"				value="0"/>				<!-- 强制预留多少人,和最大同时在线人数不冲突,即使在线人数满了,有权限的玩家也可以进入游戏(默认-->		<property name="ServerAdminSlotsPermission"			value="0"/>				<!-- 可以进入预留位置的权限级别(默认) -->

	<!-- Admin interfaces -->
	<property name="ControlPanelEnabled"				value="false"/>				<!-- 启用/禁用网页控制(填true) -->
	<property name="ControlPanelPort"				value="8080"/>				<!-- 网页端口 -->
	<property name="ControlPanelPassword"				value=""/>			<!-- 进入网页的密码(自定义,不要中文) -->

	<property name="TelnetEnabled"					value="true"/>				<!-- Telnet 启用true  禁用false -->
	<property name="TelnetPort"					value="8081"/>				<!-- 端口 -->
	<property name="TelnetPassword"					value=""/>					<!-- 自定义密码 -->
	<property name="TelnetFailedLoginLimit"				value="10"/>				<!-- 10(密码错误次数,次数达到后关闭连接) -->
	<property name="TelnetFailedLoginsBlocktime"			value="10"/>				<!-- 10(连接超时 秒) -->

	<property name="TerminalWindowEnabled"				value="true"/>				<!-- true   是否在桌面显示后台窗口 -->

	<!-- Folder and file locations -->
	<property name="AdminFileName"					value="serveradmin.xml"/>		<!-- serveradmin.xml(管理员、白名单、黑名单文件),会跟玩家存档在一块 -->	
	<property name="UserDataFolder"					value="/root/~/7DaysToDieServer/Data" />	<!-- 指定玩家存档路径,推荐与服务端在同一目录下,方便你删档,替换/恢复存档,预制件管理 -->
	<property name="SaveGameFolder"					value="/root/~/7DaysToDieServer/Data/ditu" />	<!-- 指定服务器地图文件路径, -->

	<!-- Other technical settings -->
	<property name="EACEnabled"					value="false"/>				<!-- false(关闭EAC)启用true -->
	<property name="HideCommandExecutionLog"			value="0"/>				<!-- 隐藏命令执行的日志记录。0=显示所有内容,1=只对Telnet/ControlPanel隐藏,2=还对远程游戏客户端
隐藏,3=隐藏所有内容 -->		<property name="MaxUncoveredMapChunksPerPlayer"			value="80000"/>				<!-- 每个玩家在游戏地图上可以看到多少块(看到得越多越卡,也不能一点都没有)-->	
	<property name="PersistentPlayerProfiles"			value="false" />			<!-- false(是否支持玩家自定义人物外观) -->



	<!-- GAMEPLAY -->
	
	<!-- World -->
	<property name="GameWorld"					value="PREGEN8k"/>			<!-- RWG (随机地图)、或Worlds文件夹中任何现有的世界名称 (固定地图)(不要随便更改,只支持两个模式
,不是随机就是固定) -->		<property name="WorldGenSeed"					value="asdf"/>				<!-- 生成不同地图的规则(随便写) -->
	<property name="WorldGenSize"					value="8192"/>				<!-- 4096.8192.16348(三种大小的地图,16K的地图对大多数玩家都是一个挑战,8K图是主流,想人多就选8K
,随机图生成看服务器性能了,固定图的话秒生成) -->		<property name="GameName"					value="My Game"/>			<!-- 地图名(随便写),如果你有现成的地图文件,在这里写下文件夹名字,服务器就会加载到了 -->	 
	<property name="GameMode"					value="GameModeSurvival"/>		<!-- GameModeSurvival( 游戏生成模式) -->

	<!-- Difficulty -->
	<property name="GameDifficulty"					value="4"/>				<!-- 游戏难度    0到5 -->
	<property name="BlockDamagePlayer"				value="100" />				<!-- 玩家的方块伤害 -->
	<property name="BlockDamageAI"					value="100" />				<!-- 丧尸的方块伤害 -->
	<property name="BlockDamageAIBM"				value="100" />				<!-- 丧尸血月时候的方块伤害 -->
	<property name="XPMultiplier"					value="100" />				<!-- 经验倍率 -->
	<property name="PlayerSafeZoneLevel"				value="5" />				<!-- 如果玩家低于或等于这个等级,他将创造一个安全地带 -->
	<property name="PlayerSafeZoneHours"				value="0" />				<!-- 世界时日安全区存在 -->

	<!--  -->
	<property name="BuildCreate"					value="false" />			<!-- false(创造模式:开启:true、关闭:false,默认就好) -->	
	<property name="DayNightLength"					value="90" />				<!-- (现实60分钟时间为游戏里一天,也可以写999999) -->
	<property name="DayLightLength"					value="18" />				<!-- (24小时制,白天占去18小时,剩下6小时为黑天) -->
	<property name="DropOnDeath"					value="0" />				<!-- (死亡掉落 0 = 掉落一切,1 = 工具带,2 = 背包,3 = 删除所有,4=不掉落 ) -->	
	<property name="DropOnQuit"					value="0" />				<!-- (退出掉落 0 = 无,1 = 掉落一切,2 = 工具带,3 = 背包 ) -->	
	<property name="BedrollDeadZoneSize"				value="15" />				<!-- (玩家睡袋15M范围内不会刷新丧尸) -->
	<property name="BedrollExpiryTime"				value="10" />				<!-- 睡袋失效时间,以游戏天数为单位) -->

	<!-- Performance related -->
	<property name="MaxSpawnedZombies"				value="60" />				<!-- 丧尸数不要超80,因为还有即时刷新丧尸,所以丧尸数不是这个选项能决定全部的 -->	
	<property name="MaxSpawnedAnimals"				value="10" />				<!-- 动物数啊,随意了,只要不是100) -->
	<property name="ServerMaxAllowedViewDistance"			value="6" />				<!-- 6~12最大视距,7.8.9就好了,不然卡) -->

	<!-- Zombie settings -->
	<property name="EnemySpawnMode"					value="true" />				<!-- true(丧尸即时刷新,比如贞子尖叫) -->
	<property name="EnemyDifficulty"				value="0" />				<!-- ( 狂暴模式 0 = 正常, 1 = 狂暴 ) -->
	<property name="ZombieFeralSense"				value="2" />				<!-- 僵尸何时开启感知:0-3(休息、白天、晚上、全部) -->
	<property name="ZombieMove"					value="0" />				<!-- 白天 0-4 (走, 慢跑, 奔跑, 冲刺, 恶梦) -->
	<property name="ZombieMoveNight"				value="3" />				<!-- 夜晚 0-4 (走, 慢跑, 奔跑, 冲刺, 恶梦) -->
	<property name="ZombieFeralMove"				value="0" />				<!-- 野外 0-4 (走, 慢跑, 奔跑, 冲刺, 恶梦) -->
	<property name="ZombieBMMove"					value="4" />				<!-- 血月 0-4 (走, 慢跑, 奔跑, 冲刺, 恶梦) -->
	<property name="BloodMoonFrequency"				value="3" />				<!-- 几天一次血月,所谓的7天尸潮可以自定义了 -->
	<property name="BloodMoonRange"					value="0" />				<!-- 实际血月日可以多少天随机偏离上述设置。 将此设置为0会使血液卫星恰好在血月频率中指定的每个第N
天发生 -->		<property name="BloodMoonWarning"				value="8" />				<!-- 红色日数在血月日开始的小时数。 将此值设置为-1会使红色永不显示  -->	
	<property name="BloodMoonEnemyCount"				value="8" />				<!-- 血月的时候,每个玩家对应的丧尸数量 -->

	<!-- Loot -->
	<property name="LootAbundance"					value="100" />				<!-- 搜刮倍率 -->
	<property name="LootRespawnDays"				value="7" />				<!-- 物资多少天刷新一次 -->
	<property name="AirDropFrequency"				value="48"/>				<!-- 空投时间(小时) -->
	<property name="AirDropMarker"					value="true"/>				<!-- 是否在地图标记空投 -->

	<!-- Multiplayer -->
	<property name="PartySharedKillRange"				value="10000"/>				<!-- 经验分享距离 -->
	<property name="PlayerKillingMode"				value="0" />				<!-- 玩家杀戮设置(0 =禁止杀戮,1 =仅杀死盟友,2 =仅杀死陌生人,3 =杀死所有人) -->

	<!-- Land claim options -->
	<property name="LandClaimCount"					value="2"/>				<!-- 每个玩家最多能有几颗生效的领地石 -->
	<property name="LandClaimSize"					value="41"/>				<!-- 领地石范围 -->
	<property name="LandClaimDeadZone"				value="30"/>				<!-- 禁止敌人放置领地石范围大小 (默认就好) -->
	<property name="LandClaimExpiryTime"				value="40"/>				<!-- 离线多少天领地石失效 -->
	<property name="LandClaimDecayMode"				value="2"/>				<!-- 控制离线玩家如何降落索赔。所有索赔有充分保护的第一个24小时。0=线性,1=指数,2=完全保护,
直到权利要求到期 -->		<property name="LandClaimOnlineDurabilityModifier"		value="0"/>				<!-- 当玩家在线时,保护区的硬度会增加多少。0意味着无限(不会受到伤害)。默认值为4倍 -->	
	<property name="LandClaimOfflineDurabilityModifier"		value="0"/>				<!-- 当玩家离线时,保护区的硬度会增加多少。0意味着无限(不会受到伤害)。默认值为4倍 -->	
	<property name="LandClaimOfflineDelay"				value="0"/>				<!-- 离线后领地石硬度变化 0意味着无限(不会受到伤害) -->


	<property name="DynamicMeshEnabled"				value="true"/>				<!-- 动态网格系统是否已启用 -->
	<property name="DynamicMeshLandClaimOnly"			value="true"/>				<!-- 动态网格系统是否仅在玩家LCB区域中处于活动状态 -->
	<property name="DynamicMeshLandClaimBuffer"			value="2"/>				<!-- 动态网格 LCB 块半径 -->
	<property name="DynamicMeshMaxItemCache"			value="7"/>				<!-- 可以同时处理多少个项目,值越高,占用的 RAM 越多 -->

	<property name="TwitchServerPermission"				value="90"/>				<!-- 在服务器上使用twitch需要的权限级别 -->
	<property name="TwitchBloodMoonAllowed"				value="false"/>				<!-- 如果服务器在血月期间允许twitch操作。这可能会导致服务器延迟,在血月期间会产生额外的僵尸 -->
	<!-- 在开始新游戏时,有几个游戏设置无法更改。您可以使用控制台命令在游戏中更改其中至少一些命令。setgamepref BedrollDeadZoneSize 30 -->
</ServerSettings>	
~/7DaysToDieServer/Data/Config/目录下配置相关	
	(参考:https://www.360docs.net/doc/2714137399.html)
	1、items文件:创造模式中按u键调出来的items栏所有物品的属性都在这里,最重要的修改物品叠加数量的就在这边。
	2、buffs文件:可直接修改各类buff的生成要求和持续时间
	3、loot文件:可直接修改各类E键搜索的物品栏的生成内容、数量
	4、recipes文件:可直接修改合成表
	5、blocks文件:创造模式中按u键调出来的blocks栏所有物品的属性都在这里。
	6、biomes文件:修改不同生态系统的属性
	7、entityclasses文件:修改敌人属性,你懂得
	8、entitycgroups文件:修改敌人刷新的群体,比如刷尸潮时会出现哪些类型的丧尸,全部军肥、尸王不是梦
	9、materials文件:修改其他材料的基础信息
	10、rwgmixer文件:修改随机地图生成时的不同生态、城镇属性。你想生成全部是废墟、雪地、沙漠的地图,或者一个地图全是城镇不再是梦
	11、spawning文件:修改不同生态、不同时间的僵尸刷新群体和数量
	12、sounds文件:修改各类声音属性
	13、traders文件:商人参数、贩卖机参数			
七日杀指令:
	(参考:https://www.360docs.net/doc/f55522835.html)
					
NAIWAZI
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值