apt update -y && apt upgrade -y
apt disable ufw --now
apt install -y iptables-persistent netfilter-persistent
vi /etc/iptables/rule.v4
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT # sshd controle -A INPUT -s IP_ADDR/32 -j ACCEPT -A INPUT -s 0.0.0.0/0 -p tcp -m tcp --dport 22 -j DROP -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
systemctl enable netfilter-persistent.service --now
date
명령어를 통해 서버의 날짜도 체크합니다.apt install -y vim screen wget lib32gcc-s1 libsdl2-2.0
adduser steam
usermod -aG sudo steam && usermod -d /seven -m steam
chown steam:steam -R /seven
# my game data dir name is /seven
su - steam
cd ~
mkdir data # (Full Path /seven/data)
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz
./steamcmd.sh
force_install_dir ./data
login anonymous
app_update 294420
steamDB 내 7Days to Die SRV INFO
또는 steamcmd 에서
app_info_print NUMBER
로도 확인이 가능합니다.작성일 시점에서 public 버전 다운로드 시 Alpha 21.2 버전이 다운로드됩니다.
기타 버전으로 받고 싶다면 옵션
-beta alpha21.1
-beta latest_experimental
등을 활용 가능합니다.엄청 오래 걸림을 알 수 있습니다. 하지만 괜찮습니다. Mod 파일도 8GB가 넘기 때문에 시간과의 싸움은 계속됩니다.
설치가 완료되었다면 /seven/data 하단이 아래와 같습니다.
폴더와 파일 2개, 총 3개를 모두 steam에서 게임 데이터를 설치한 폴더(/seven/data) 하단에 넣어줍니다.
git clone https://KhaineUK@dev.azure.com/KhaineUK/DarknessFallsA21/_git/DarknessFallsA21
vi Mods/DarknessFallsServerConfig.xml
ServerName 서버 이름
ServerDescription 서버 설명
ServerPassword 서버 접근 비밀번호
Region Asia로 변경
Language 언어 변경
ServerPort 서버 포트
ServerMaxPlayerCount 최대 서버 참여 가능 인원 수
GameWorld 맵 고르는 옵션 # Mods\0-DarknessFallsCore\Worlds 하단에 참고
ls -al /seven/data/Mods/0-DarknessFallsCore/Worlds/ | awk '{ print $9 }' | grep "DFalls"
DFalls-Large1-NoPEP DFalls-Large1-PEP DFalls-Large2-NoPEP DFalls-Large2-PEP DFalls-Medium1-NoPEP DFalls-Medium1-PEP DFalls-Medium2-NoPEP DFalls-Medium2-PEP DFalls-Navezgane DFalls-Small1-NoPEP DFalls-Small1-PEP DFalls-Small2-NoPEP DFalls-Small2-PEP DFalls-VSmall1-NoPEP DFalls-VSmall1-PEP DFalls-VSmall2-NoPEP DFalls-VSmall2-PEP
GameName 게임이름 설정
GameMode 모드 설정 # default value GameModeSurvival
GameDifficulty 난이도 # 0 (easy) ~ 6 (hell)
BlockDamagePlayer 때릴 때 블럭 데미지
XPMultiplier 경험치 획득 속도
PlayerSafeZoneLevel 안전지대에서 권한 설정
PlayerSafeZoneHours 안전지대 활성화 시간 # 0 - 23 시 기준으로 0은 24시간 계속 활성화
BuildCreate 치트
DeathPenalty 사망 시 XP 패널티 # 0 - 3 값으로 0은 없음
DropOnDeath 사망 시 소지품 떨굼 # 0 - 4 값으로 0은 없음
DropOnQuit 접속 종료 시 소지품 떨굼 # 0 - 3 값으로 0은 없음
MaxSpawnedZombies | MaxSpawnedAnimals 스폰 좀비|동물 수 설정
ZombieMove 좀비 낮 행동 시 달리기 속도 # 0 - 4 (walk, jog, run, sprint, nightmare)
ZombieMoveNight 좀비 밤 행동 시 달리기 속도
BloodMoonWarning 블러드문 경고 시간 # 0 - 23 시
AirDropFrequency 보급품 빈도 # 24 = 1Day, 72 = 3Days ...
AirDropMarker 보급품 맵 표시
PartySharedKillRange 파티원 경험치 공유 범위
PlayerKillingMode 플레이어끼리 공격 여부 # 0 = 불가
SaveGameFolder 세이브 폴더 지정
SaveGameFolder는 원래 주석 처리된 옵션으로 GameName을 바꿔야 reset 되는 것에 비해 Save 파일을 지워버릴 수 있어 용이합니다.
AdminFileName admin User 설정 파일 # default Value = serveradmin.xml
admin 파일은 보통 Save 폴더 하단에 있습니다. 없다면 한 번 서버 돌렸다가 끄면 생성되어 있을 겁니다.
vi serveradmin.xml
<user platform="Steam" userid="SteamUSERID" name="구분이름" permission_level="0" /> ... <!-- <permission cmd="say" permission_level="1000" /> --> <permission cmd="kick" permission_level="1" /> <permission cmd="chunkcache" permission_level="1000" /> <permission cmd="createwebuser" permission_level="1000" /> <permission cmd="debugshot" permission_level="1000" />
스팀 USER ID에 맞는 계정이 접속하면 admin 처리 되며, 아래 commands를 쓸 수 있습니다. Permission_level은 해당 명령어를 쓸 수 있는 최소권한이며, 0이 상위권이므로 그냥 user의 Permission_level은 1000이하이기만 하면 됩니다.
vi /etc/iptables/rules.v4
-A INPUT -p tcp -m tcp --dport 26900 -j ACEEPT -A INPUT -p udp -m udp --dport 26900 -j ACEEPT
cd /seven/data
./startserver.sh -configfile=Mods/DarknessFallsServerConfig.xml
steamcmd.sh 를 통한 업데이트 명령어로 특별한 경우가 아니면 Mods 설치 이후에는 권장하지 않습니다.
vi app_update.sh
/seven/steamcmd.sh +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir /seven/data +app_update 294420 validate +quit
chmod +x app_update.sh