Hướng dẫn này giải thích cách thiết lập máy chủ Counter-Strike: Global Offensive trên Arch Linux.
Hướng dẫn này giả định rằng bạn đã đăng nhập bằng tài khoản người dùng chuẩn và có đặc quyền sudo. Chúng tôi sẽ sử dụng tài khoản người dùng thông thường vì việc xây dựng các gói với AUR không nên được thực hiện từ tài khoản root.
Trước khi bắt đầu
Nếu bạn đang sử dụng phiên bản 64 bit của Arch Linux, điều rất quan trọng là bạn phải multilib
bật kho lưu trữ. Nếu nó không được kích hoạt, SteamCMD không thể tải xuống hoặc chạy các tệp máy chủ trò chơi. Để kích hoạt multilib, chỉ cần bỏ ghi chú các dòng sau vào /etc/pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Điều này không áp dụng cho các hệ thống Arch Linux 32 bit.
Cài đặt SteamCMD
Có một gói AUR cho SteamCMD. Đây có thể là cách dễ nhất để cài đặt SteamCMD trên Arch. Có một vài điều cần lưu ý về nó mặc dù:
- Tất cả các đường dẫn tương đối là tương đối với
/usr/share/steamcmd
.
- Để tự nâng cấp SteamCMD, bạn phải ở trên tài khoản root.
Nếu bạn đang ở trên máy chủ 64 bit, bạn phải cài đặt gói lib32-gcc-libs
.
sudo pacman -Sy lib32-gcc-libs
Bây giờ chúng ta phải xây dựng gói. Sử dụng curl, tải tarball cho gói.
curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz
Khi quá trình tải xuống kết thúc, giải nén và thay đổi thư mục đã tạo.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Bây giờ, sử dụng makepkg, xây dựng gói.
makepkg -ci
Nếu bạn không chuyển -i
cờ cho lệnh makepkg, thì hãy sử dụng lệnh sau để cài đặt nó.
sudo pacman -U *.pkg.tar.xz
Bây giờ bạn đã cài đặt SteamCMD và sẵn sàng tải xuống máy chủ Counter-Strike: Global Offensive.
Cài đặt Counter-Strike: Máy chủ tấn công toàn cầu
Hướng dẫn này sử dụng một người dùng riêng để chạy máy chủ, vì vậy chúng tôi sẽ tạo một người dùng và nhóm csgo mới với thư mục nhà riêng của nó /var/lib
.
sudo groupadd csgo
sudo mkdir /var/lib/csgo
sudo useradd -d /var/lib/csgo -g csgo -s /bin/bash csgo
sudo chown csgo.csgo -R /var/lib/csgo
Bây giờ để cài đặt máy chủ.
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
Sau khi tải xuống xong, bạn đã cài đặt máy chủ.
Cấu hình
Mặc dù bạn có thể chạy máy chủ, một số cấu hình nên được thực hiện để máy chủ không quá chung chung. Tệp chính mà chúng tôi đặt cài đặt là server.cfg
tệp. Dưới đây là một server.cfg
tập tin rất cơ bản .
Để mở / tạo tập tin, sử dụng trình soạn thảo yêu thích của bạn. Tôi sử dụng vim trong ví dụ này.
sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg
Thêm những điều sau. Có thể tìm thấy nhiều cài đặt hơn trên Valve Developer Wiki. Hãy chắc chắn thay đổi một số cài đặt cho phù hợp với nhu cầu của bạn.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "[email protected]"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
Chạy máy chủ của bạn
Để chạy máy chủ của bạn không cần giám sát, bạn sẽ cần một bộ ghép kênh như GNU Screen hoặc tmux . Trong bài viết này, tôi sẽ sử dụng tmux để chạy máy chủ, nhưng nếu bạn thích và biết cách sử dụng màn hình, hãy sử dụng nó.
Cài đặt tmux bằng cách sử dụng pacman.
sudo pacman -Sy tmux
Bạn có thể khởi động máy chủ bằng lệnh sau. Bạn có thể thay đổi bản đồ nếu muốn. Vui lòng đọc "Ghi chú cuối cùng" để biết thêm thông tin về game_type
và game_mode
các giá trị. Ví dụ này là cho một máy chủ bình thường cổ điển.
sudo -u csgo tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; ./srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
Nếu bạn cần phải gắn vào bàn điều khiển, hãy chạy như sau.
sudo -u csgo tmux attach -t csgo-console
Bạn có thể để máy chủ giao diện điều khiển bằng cách gõ tổ hợp phím CTRL + B sau đó thả những phím và sau đó nhấn D .
Chạy với systemd
Chạy máy chủ với systemd thuận tiện vì nhiều lý do. Cái chính là bạn có thể khởi động nó khi VPS khởi động. Điều này đòi hỏi một kịch bản và một đơn vị systemd được viết. Mặc dù đây là một ý tưởng tốt, nó là tùy chọn .
Điều đầu tiên để viết là kịch bản bắt đầu. Để tạo tập lệnh, sử dụng trình soạn thảo yêu thích của bạn. Ở đây vim được sử dụng, nhưng bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào như nano.
sudo -u csgo vim ~csgo/server/csgo.sh
Thêm vào đây và chắc chắn xem dòng bằng lệnh start vì nó có chế độ và kiểu trò chơi.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="csgo"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; /var/lib/csgo/server/srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
;;
stop)
sudo -u $ tmux send-keys -t csgo-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t csgo-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Bây giờ bạn cần phải làm cho đơn vị systemd.
sudo vim /usr/lib/systemd/system/csgo.service
Thêm những điều sau.
[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/csgo/server/csgo.sh start
ExecStop=/var/lib/csgo/server/csgo.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Bây giờ hãy chắc chắn rằng csgo.sh
tập tin có thể thực thi được.
sudo chmod +x ~csgo/server/csgo.sh
Sau khi tất cả điều đó, bạn có thể sử dụng systemctl
để bắt đầu và dừng máy chủ. Ngoài ra, bạn có thể sử dụng nó để làm cho nó bắt đầu khởi động.
Để bắt đầu:
sudo systemctl start csgo.service
Dừng lại:
sudo systemctl stop csgo.service
Khởi động lại:
sudo systemctl restart csgo.service
Để kích hoạt khi khởi động:
sudo systemctl enable csgo.service
Để tắt khi khởi động:
sudo systemctl disable csgo.service
Mặc dù systemd xử lý bắt đầu và dừng máy chủ, bạn có thể truy cập bàn điều khiển bằng lệnh sau.
sudo -u csgo tmux attach -t csgo-console
Ghi chú cuối cùng
SteamCMD được cài đặt trong khu vực chỉ có root mới có thể thay đổi tệp (xem ghi chú trong phần "Cài đặt SteamCMD"). Nếu bạn cần nâng cấp SteamCMD, chỉ cần chạy nó dưới quyền root.
sudo steamcmd +quit
Nếu bạn cần cập nhật máy chủ. Đầu tiên dừng máy chủ và sau đó sử dụng SteamCMD để cập nhật (sử dụng cùng một lệnh để cài đặt).
sudo systemctl stop csgo.service
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
sudo systemctl start csgo.service
Chế độ trò chơi và loại trò chơi trong lệnh bắt đầu rất quan trọng tùy thuộc vào loại máy chủ bạn muốn. Đây là bảng nhanh các giá trị có thể.
Game Mode | game_type | game_mode
Classic Casual | 0 | 0
Classic Competitive | 0 | 1
Arms Race | 1 | 0
Demolition | 1 | 1
Deathmatch | 1 | 2
Có rất nhiều chủ đề cấu hình không được đề cập trong hướng dẫn này. Nếu bạn cần thêm thông tin, vui lòng tham khảo Valve Developer Wiki.