Hướng dẫn này giải thích cách thiết lập máy chủ Team Fortress 2 trên Arch Linux. Tôi giả sử rằng bạn đã đăng nhập bằng tài khoản người dùng không root có quyền truy cập sudo. Hướng dẫn này sử dụng AUR để xây dựng các gói và thao tác đó không nên được thực hiện từ tài khoản root.
Trước khi bắt đầu
Điều rất quan trọng là bạn phải multilib
kích hoạt kho lưu trữ khi và chỉ khi bạn ở trên máy chủ 64 bit (amd64). Nếu nó không được kích hoạt, thì SteamCMD không thể chạy và thậm chí bạn không thể tải xuống các tệp máy chủ. Để làm điều này, bạn phải bỏ ghi chú các dòng sau vào /etc/pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Nếu bạn đang sử dụng Arch 32-bit (i686), bạn có thể bỏ qua điều này một cách an toàn.
Cài đặt SteamCMD
Có một gói AUR cho SteamCMD và đó là một trong những cách dễ nhất để cài đặt SteamCMD trên Arch. Có một vài điều kỳ lạ 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 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 http://media.steampowered.com/installer/steamcmd_linux.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, hãy sử dụng pacman để 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ủ Team Fortress 2.
Cài đặt máy chủ Team Fortress 2
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 tf2 mới với thư mục nhà riêng của nó /var/lib
.
sudo groupadd tf2
sudo mkdir /var/lib/tf2
sudo useradd -d /var/lib/tf2 -g tf2 -s /bin/bash tf2
sudo chown tf2.tf2 -R /var/lib/tf2
Bây giờ để cài đặt máy chủ.
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 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. Ở đâ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 tf2 vim ~tf2/server/tf/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 trang nhà phát triển wiki và Valve Team Fortress 2. 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
Được biết, bạn cần một bộ ghép kênh như GNU Screen hoặc tmux để chạy máy chủ của bạn không cần giám sát. Ở đây chúng 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 đồ và maxplayers nếu muốn.
sudo -u tf2 tmux new-session -d -s tf2-console -d '~tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
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 tf2 tmux attach -t tf2-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 tf2 vim ~tf2/server/tf2.sh
Thêm những điều sau.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="tf2"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s tf2-console -d '/var/lib/tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
;;
stop)
sudo -u $ tmux send-keys -t tf2-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t tf2-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. Để tạo đơn vị, 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 vim /usr/lib/systemd/system/tf2.service
Thêm những điều sau.
[Unit]
Description=Team Fortress 2 Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/tf2/server/tf2.sh start
ExecStop=/var/lib/tf2/server/tf2.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Bây giờ hãy chắc chắn rằng tf2.sh
tập tin có thể thực thi được.
sudo chmod +x ~tf2/server/tf2.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 tf2.service
Dừng lại:
sudo systemctl stop tf2.service
Khởi động lại:
sudo systemctl restart tf2.service
Để kích hoạt khi khởi động:
sudo systemctl enable tf2.service
Để tắt khi khởi động:
sudo systemctl disable tf2.service
Mặc dù systemd đang xử lý bắt đầu và dừng máy chủ, bạn vẫn có thể truy cập bàn điều khiển bằng lệnh sau:
sudo -u tf2 tmux attach -t tf2-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 "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 tf2.service
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
sudo systemctl start tf2.service
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 Wiki của Team Fortress 2 và Wiki Developer Valve.