Hầu như mọi hướng dẫn server CS2 trên mạng thực chất là hướng dẫn MatchZy: plugin đấu tập đầy đủ, knife round, cùng cả đống config. Bài này thì ngược lại. Bạn muốn một dedicated server CS2 riêng cho bạn và bạn bè, thuần vanilla, không plugin. Việc cài đặt ngắn hơn nhiều so với vẻ ngoài trên mạng, và chốt lại ở một điều đa số bỏ sót: token đăng nhập giờ là bắt buộc.
Trước tiên: token GSLT (bắt buộc)
CS2 không nhận kết nối trên IP công khai nếu thiếu Game Server Login Token (GSLT). Đây là lý do phổ biến nhất khiến một server mới "boot ổn nhưng không ai vào được". Lấy token miễn phí:
- Vào trang Steam Game Server Account Management (steamcommunity.com/dev/managegameservers).
- Tạo token cho app ID 730 (Counter-Strike 2). Bạn sẽ nhận về một chuỗi ký tự dài.
- Token gắn với tài khoản Steam của bạn. Mỗi server một token. Đừng chia sẻ nó; token bị lộ có thể khiến các server của tài khoản bạn bị ban.
Cài server
Dedicated server CS2 là app 730 (giống bản game). Cài bằng SteamCMD:
./steamcmd.sh +login anonymous \
+app_update 730 validate \
+quitĐăng nhập anonymous là được; tài khoản trên server không cần sở hữu game. Config nằm ở:
<install>/game/csgo/cfg/server.cfgMột server.cfg vanilla
Dán đoạn này vào, đổi ba giá trị được đánh dấu CHANGE ME. Không plugin, không MatchZy.
// --- Identity ---
hostname "My Private CS2 Server" // CHANGE ME
sv_setsteamaccount "YOUR_GSLT_TOKEN" // CHANGE ME - the token from above
// --- Lock it down ---
sv_password "friends-only" // CHANGE ME - join password
rcon_password "pick-a-long-secret" // admin console over RCON
// --- Vanilla behaviour ---
sv_cheats 0
sv_pure 1
sv_lan 0
mp_autoteambalance 1
mp_limitteams 2
// --- A sane private match ---
mp_maxrounds 24
mp_roundtime 1.92
mp_freezetime 15
mp_warmuptime 30
sv_alltalk 0
sv_deadtalk 1Đó là một config thi đấu riêng tư hoàn chỉnh. Mode và map khởi đầu KHÔNG nằm trong đây: CS2 đặt chúng trên dòng khởi chạy, vì game_type và game_mode phải được biết trước khi map load.
Dòng khởi chạy
Khởi động server từ thư mục cài đặt. Lưu ý giờ là binary cs2 với -dedicated, không còn srcds_run nữa:
./game/bin/linuxsteamrt64/cs2 -dedicated \
-ip 0.0.0.0 -port 27015 \
+game_type 0 +game_mode 1 \
+map de_dust2 \
-maxplayers 10 \
+exec server.cfg- game_type 0 + game_mode 1 là Competitive 5v5 chuẩn. Xem bảng bên dưới cho các mode khác.
- map de_dust2 là map khởi đầu. Map chính thức nào cũng được (de_mirage, de_inferno, cs_office…).
- exec server.cfg chạy các cvar của bạn, gồm cả sv_setsteamaccount, trước khi người chơi kết nối.
- Cổng 27015 là cổng game và cổng query A2S. Mở nó trong firewall (UDP + TCP).
Các cặp game_type / game_mode
CS2 không có một cvar "mode" duy nhất. Mỗi mode là một cặp gồm hai con số:
game_type game_mode Mode
0 0 Casual
0 1 Competitive (5v5)
0 2 Wingman (2v2)
0 3 Hostage / Casual (cs_ maps)
1 0 Arms Race
1 1 Demolition
1 2 DeathmatchĐổi game_type khi server đang chạy không ổn định trong CS2, nên hãy chọn mode trên dòng khởi chạy và restart tiến trình khi muốn đổi. Chỉ đổi map (changelevel de_mirage) trong cùng một mode thì không sao.
Load map workshop
Map Workshop không phải là tham số khởi chạy. Bạn load chúng lúc chạy bằng host_workshop_map cùng workshop ID của map, server sẽ tự tải về và host. Thêm -disable_workshop_command_filtering vào dòng khởi chạy trước, rồi trong console server (hoặc qua RCON):
host_workshop_map 3070315466Con số đó là ID lấy từ URL trang workshop. Lần load đầu server phải kéo map từ Steam nên chờ một chút. Đây là cái bẫy CS2 khiến ai cũng vấp: đặt tên map workshop sau +map trên dòng khởi chạy không có tác dụng; phải dùng host_workshop_map.
Giữ server riêng tư
Khi đặt sv_password, chỉ ai nhập đúng mật khẩu mới kết nối được. Chia sẻ IP server và mật khẩu cho nhóm của bạn và bảo họ dùng console: connect your.server.ip:27015; password friends-only. Mật khẩu cũng giữ server nằm ngoài pool quick-play công khai, đúng thứ bạn muốn cho một game riêng tư.