전용 서버 구성
목차
설치
Windows용 서버 설치
팀 포트리스 2 Windows 전용 서버 설정법을 보려면, Windows 전용 서버 항목을 참조하세요.
이 항목에서는 Windows 기반 컴퓨터에서 팀 포트리스 2 전용 서버를 만드는 법을 설명해줍니다. 먼저 Steam 콘솔 클라이언트 도구(또는 Steamcmd)를 사용해야 합니다. Steamcmd는 당신의 컴퓨터에 서버 콘텐츠의 최신 버전을 완벽하게 설치할 수 있도록 해 줍니다. 만약 이미 Steamcmd로 설치를 완료했다면, 도구가 현재 설치되어 있는 전용 서버를 최신 버전으로 업데이트해줍니다.
당신은 팀포2 서버를 vojmar의 설치 도구 https://www.youtube.com/watch?v=0ZGScKWkPxg 로 설치하거나 http://media.steampowered.com/installer/steamcmd.zip 에서 Steamcmd를 내려받을 수 있습니다.
이 파일을 내려받고 명령어 셸에서 도구를 실행시키면 텍스트 windowed 설치 도구가 자동으로 당신의 서버를 설치하거나 업데이트할 것입니다. 시간과 파일을 내려받을 때의 주파수 대역폭을 아끼고 싶다면, 최신 Half-Life 전용 서버 설치 도구 root 폴더 안의 Steamcmd를 실행시키세요.
명령 행 설정 예시:
steamcmd +login anonymous +force_install_dir C:\tf2_server +app_update 232250 validate +quit
텍스트 파일로 명령 행을 보호하고 싶다면, 파일이 batch로 바뀌도록 확장자를 .bat 파일로 변경하세요. batch 파일은 언제나 업데이트할 수 있습니다.
더 자세한 설치 방법을 듣고 싶다면: SteamCMD 에 대한 Valve Developer Community
MOTD
MOTD는 "Message Of The Day"(오늘의 메시지)를 뜻합니다. 이것은 당신의 서버에 접속할 때마다 나타납니다. MOTD는 간단할 수도 있고, 복잡한 웹사이트 페이지일 수도 있습니다. 메시지를 수정하려면, orangebox/tf 폴더로 가서 이름이 motd.txt
와 motd_text.txt
로 되어 있는 파일의 텍스트를 수정하세요(두 번째 파일은 플레이어가 게임 내에서 비활성화할 수 있는 HTML MOTD 파일입니다).
두 파일은 크기 제한이 있습니다. 한 파일은 크기가 1k를 넘어서는 안 됩니다(거의 1536개의 문자를 입력할 수 있는 크기입니다). motd_text.txt
는 인터넷 브라우저 같은 HTML를 표시할 수 있습니다.
파일이 제한에 걸렸을 때 (크기 제한 등) 대안은 .html
파일을 웹으로 보낸 다음 링크를 거는 것입니다. 예를 들어 motd.txt
: http://www.your-clan-website.com/motd.html 에 motd.html
파일을 표시하도록 할 수 있습니다.
팀포2 칠판에 MOTD을 더 잘 만드는 법을 알고 싶다면: http://www.specialattack.net/node/39
http://hlds101.com/configuring.htm
Maplist
Maplist는 서버에서 플레이 가능한 맵 목록을 알려 주는 파일입니다. 만약 비공식 맵 투표 플러그인을 사용하기로 결심했다면, 맵 이름을 maplist.txt
와 투표 목록에 적어 주세요.
SRCDS (Source 전용 서버)로 플레이 가능 맵 목록을 수정할 수 있습니다. 이것은 orangebox/tf/maplist.txt
에 들어있습니다.
비공식 맵을 추가하려면, .bsp
파일을 orangebox/tf/maps
디렉터리에 넣고 서버 디렉터리 안의 orangebox/tf/maplist.txt
에서 maplist.txt
를 찾아내고 목록에 이름을 추가하면 됩니다(맵 이름을 나열할 때, .bsp
확장자를 제외하고 .bsp
파일의 정확한 이름을 사용하세요).
치트 예방
VAC
Valve Anti-Cheat는 서버에서 부당한 프로그램을 사용하는 사용자들을 자동으로 찾아내고 추방시킵니다(이동속도 해킹, aimbot 사용과 sv_cheats
noclip 명령어 사용 같은 과격한 사례까지).
VAC는 모든 서버에서 기본적으로 활성화되어 있고 관리자가 -insecure 행을 런치 설정에 추가해서 비활성화시킬 수 있습니다.
서버 설정
VAC가 서버를 확보한 후, 치트에 대항하는 첫 번째 수단은 서버 변수(콘솔 명령어) sv_pure
입니다. 클라이언트는 플레이어가 대체/변경할 수 있으며, 콘텐츠 및 데이터를 제한하는 수단으로 사용할 때 이 변수를 제어합니다. 만약 적절하게 구성되어 있지 않다면 취약점이 발견되기 쉬워집니다. 만약 서버에서 치트를 사용하는 것을 원하지 않는다면 임의로 (중요하진 않음) 변수를 1 또는 2로 설정할 수 있습니다. 기본 설정은 sv_pure
0으로 되어 있습니다. 가능한 수치는 특별한 상황이 아니면 0, 1, 그리고 2로 변경할 수 있습니다.
- sv_pure 0
- 클라이언트가 모든 게임 파일의 위치를 지정할 수 있습니다. 클라이언트는 부당한 이익을 얻기 위해 적군의 모델 스킨 색을 바꾸거나, 벽을 보이지 않게 하거나, 기밀 서류 가방을 빛나게 하는 식으로 파일을 변경할 수 있습니다. 이것은 게임 프로세스를 변경한 것이 아니기 때문에 VAC는 이런 취약점에 대응할 수 없습니다. 클라이언트가 무엇을 할 수 있는지는 서버에 달려 있습니다.
- sv_pure 1
- 클라이언트는 white list (허용된 콘텐츠 목록)에 나와 있는 데이터만 사용할 수 있습니다. 기본적으로 white list는 사용자 지정 플레이어 모델 스킨 등은 불러올 수 있습니다.
- sv_pure 2
- 클라이언트가 모든 사용자 콘텐츠를 무시하게 되고 Steam 지정 데이터만 사용할 수 있습니다. 이것이 작동되어 있는 동안, sv_pure 2는 모든 사용자 지정 스킨/모델과 스프레이를 사용할 수 없도록 합니다.
white list 포맷 데이터와 sv_pure
서버에 대해 더 많은 정보를 알고 싶다면 Pure_Servers 에 대한 Valve Developer Community를 참조하세요.
대부분의 서버는 white list를 수정하고 sv_pure
를 1로 설정해서 플레이어가 콘텐츠 디렉터리를 허용하거나 독자적인 모델을 사용하기가 어렵거나 불가능하게 합니다.
서드파티 플러그인
몇몇 서드파티 플러그인/주변기기는 악의적 플레이어로부터 대항하기도 합니다. 더 많은 정보를 보거나 플러그인을 확인하고 싶다면 SRCDS Hardening @ alliedmods.net을 참조하세요.
명령 행 설정
명령 행 설정 에 대한 Valve Developer Community
빠른 게임
빠른 게임은 메인 메뉴의 플레이 시작 단추로 서버에 접속할 수 있도록 합니다. 이것은 빠른 게임을 위해 서버에서 지원하는 Steam 지원 지식 베이스 항목으로, 여기에서 확인할 수 있습니다.
팀포2 전용 서버 Server.cfg 예시
// General Settings // // Hostname for server. hostname yourserver.com TF2 Server // Overrides the max players reported to prospective clients sv_visiblemaxplayers 24 // Maximum number of rounds to play before server changes maps mp_maxrounds 5 // Set to lock per-frame time elapse host_framerate 0 // Set the pause state of the server setpause 0 // Control where the client gets content from // 0 = anywhere, 1 = anywhere listed in white list, 2 = steam official content only sv_pure 0 // Is the server pausable sv_pausable 0 // Type of server 0=internet 1=lan sv_lan 0 // Collect CPU usage stats sv_stats 1 // Execute Banned Users // exec banned_user.cfg exec banned_ip.cfg writeid writeip // Contact & Region // // Contact email for server sysop sv_contact emailaddy@google.com // The region of the world to report this server in. // -1 is the world, 0 is USA east coast, 1 is USA west coast // 2 south america, 3 europe, 4 asia, 5 australia, 6 middle east, 7 africa sv_region -1 // Rcon Settings // // Password for rcon authentication rcon_password yourpw // Number of minutes to ban users who fail rcon authentication sv_rcon_banpenalty 1440 // Max number of times a user can fail rcon authentication before being banned sv_rcon_maxfailures 5 // Log Settings // // Enables logging to file, console, and udp < on | off >. log on // Log server information to only one file. sv_log_onefile 0 // Log server information in the log file. sv_logfile 1 // Log server bans in the server logs. sv_logbans 1 // Echo log information to the console. sv_logecho 1 // Rate Settings // // Frame rate limiter fps_max 600 // Min bandwidth rate allowed on server, 0 == unlimited sv_minrate 0 // Max bandwidth rate allowed on server, 0 == unlimited sv_maxrate 20000 // Minimum updates per second that the server will allow sv_minupdaterate 10 // Maximum updates per second that the server will allow sv_maxupdaterate 66 // Download Settings // // Allow clients to upload customizations files sv_allowupload 1 // Allow clients to download files sv_allowdownload 1 // Maximum allowed file size for uploading in MB net_maxfilesize 15 // Team Balancing // // Enable team balancing mp_autoteambalance 1 // Time after the teams become unbalanced to attempt to switch players. mp_autoteambalance_delay 60 // Time after the teams become unbalanced to print a balance warning mp_autoteambalance_warning_delay 30 // Teams are unbalanced when one team has this many more players than the other team. (0 disables check) mp_teams_unbalance_limit 1 // Round and Game Times // // Enable timers to wait between rounds. WARNING: Setting this to 0 has been known to cause a bug with setup times lasting 5:20 (5 minutes 20 seconds) on some servers! mp_enableroundwaittime 1 // Time after round win until round restarts mp_bonusroundtime 8 // If non-zero, the current round will restart in the specified number of seconds mp_restartround 0 // Enable sudden death mp_stalemate_enable 1 // Timelimit (in seconds) of the stalemate round. mp_stalemate_timelimit 300 // Game time per map in minutes mp_timelimit 35 // Client CVars // // Restricts spectator modes for dead players mp_forcecamera 0 // Toggles whether the server allows spectator mode or not mp_allowspectators 1 // Toggles footstep sounds mp_footsteps 1 // Toggles game cheats sv_cheats 0 // After this many seconds without a message from a client, the client is dropped sv_timeout 900 // Maximum time a player is allowed to be idle (in minutes), made this and sv_timeout equal same time? mp_idlemaxtime 15 // Deals with idle players 1=send to spectator 2=kick mp_idledealmethod 2 // Time (seconds) between decal sprays decalfrequency 30 // Communications // // enable voice communications sv_voiceenable 1 // Players can hear all other players, no team restrictions 0=off 1=on sv_alltalk 0 // Amount of time players can chat after the game is over mp_chattime 10 // Enable party mode tf_birthday 0
유용한 모드/주변기기
부가적인 보호 수단
- DoS Attack Fixer for TF2 - 서비스 공격 거부 방지 대항용 서버 플러그인
- DBlocker - 안티 치트 플러그인
종합
- Metamod:Source - 여러 다른 플러그인 기반
- Event Scripts - 강력한 스크립트 환경
관리자 제어
- Mani의 관리자 플러그인
- SourceMOD - misc. 플러그인용 대량 스크립트 제공 플랫폼