Difference between revisions of "Linux dedicated server/ru"

From Team Fortress Wiki
Jump to: navigation, search
(Init-script для запуска сервера)
m (added tux)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:Выделенный сервер под Linux}}
 
{{DISPLAYTITLE:Выделенный сервер под Linux}}
 +
{{ambox | type = notice | image = TuxMascot.png| contents = This guide assumes that the reader has a basic understanding of using the Linux command line.}}
 +
  
 
== Установка ==
 
== Установка ==
Line 18: Line 20:
 
  ./srcds_run -game tf +map cp_badlands
 
  ./srcds_run -game tf +map cp_badlands
  
== Init-script для запуска сервера ==
+
== Правила iptables ==
  
 
<pre>
 
<pre>
#!/bin/bash
+
-A INPUT -i venet0 -p tcp -m tcp --dport 27015 -m state --state NEW,ESTABLISHED -j ACCEPT
#
+
-A INPUT -i venet0 -p tcp -m tcp --dport 27005 -m state --state NEW,ESTABLISHED -j ACCEPT
# chkconfig 345 80 20
+
-A INPUT -i venet0 -p udp -m udp --dport 27015 -m state --state NEW,ESTABLISHED -j ACCEPT
#
+
-A INPUT -i venet0 -p udp -m udp --dport 27005 -m state --state NEW,ESTABLISHED -j ACCEPT
# Startup script
+
-A INPUT -i venet0 -p tcp -m tcp --dport 27016 -m state --state NEW,ESTABLISHED -j ACCEPT
# Gameserver:
+
-A INPUT -i venet0 -p tcp -m tcp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
# Credits: Zack
+
-A INPUT -i venet0 -p tcp -m tcp --dport 27018 -m state --state NEW,ESTABLISHED -j ACCEPT
# Version: 1.00
+
-A INPUT -i venet0 -p tcp -m tcp --dport 27019 -m state --state NEW,ESTABLISHED -j ACCEPT
#
+
-A INPUT -i venet0 -p tcp -m tcp --dport 27020 -m state --state NEW,ESTABLISHED -j ACCEPT
#
+
-A INPUT -i venet0 -p udp -m udp --dport 27016 -m state --state NEW,ESTABLISHED -j ACCEPT
# NOTE:
+
-A INPUT -i venet0 -p udp -m udp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
# game_type variable indicates what game should be started.
+
-A INPUT -i venet0 -p udp -m udp --dport 27018 -m state --state NEW,ESTABLISHED -j ACCEPT
# Although this script have this variable, different gametypes cannot be started with it.
+
-A INPUT -i venet0 -p udp -m udp --dport 27019 -m state --state NEW,ESTABLISHED -j ACCEPT
# Consider to make changes to this script by hand.
+
-A INPUT -i venet0 -p udp -m udp --dport 27020 -m state --state NEW,ESTABLISHED -j ACCEPT
 
 
 
 
#variables
 
server_user="gameserver"
 
server_install_path="/home/server"
 
game_name=tf2
 
startup_command="$game_name-startup.sh"
 
RETVAL=0
 
 
 
 
# start and stop functions
 
start() {
 
echo "Gameserver will be running under user $server_user"
 
echo "Starting gameserver..."
 
chown -R $server_user:$server_user $server_install_path
 
su - $server_user -c "$server_install_path/$startup_command > /dev/null 2>&1 &"
 
RETVAL=$?
 
return $RETVAL
 
}
 
 
stop() {
 
PID=`ps ax | grep ucc-bin | grep -v grep | awk '{print $1}'`
 
if [ "$PID" != "" ]
 
then
 
echo "Stopping gameserver (PID $PID)..."
 
kill -9 $PID
 
sleep 2
 
else
 
echo "Gameserver is already stopped"
 
fi
 
}
 
 
status() {
 
PID=`ps ax | grep ucc-bin |grep -v grep | awk '{print $1}'`
 
if [ "$PID" != "" ]
 
then
 
echo "Gameserver is running and have pid $PID"
 
else
 
echo "Gameserver is stopped"
 
fi
 
}
 
 
 
case "$1" in
 
  start)
 
        start
 
        ;;
 
  stop)
 
        stop
 
        ;;
 
  restart)
 
        stop
 
sleep 2
 
        start
 
        ;;
 
  status)
 
status
 
;;
 
  *)
 
        echo "Usage: $0 {start|stop|restart}"
 
        exit 1
 
esac
 
 
exit $RETVAL
 
 
 
 
</pre>
 
</pre>
  
 
+
*'''Замечание''': если работает модуль multiports, то можно вместить всё в два правила.
*В директории с сервером лежит скрипт для запуска сервера, который вызывает инит скрипт. Пример скрипта:
+
*'''Замечание''': измените имя интерфейса (venet0) в соответствии с вашими настройками системы.
<pre>
 
#!/bin/bash
 
 
 
if [ "$1" != "" ]; then
 
        MAP=$1
 
else
 
        MAP='mvm_mannworks'
 
fi
 
 
 
cd /home/gameserver/engine/team-fortress/orangebox/
 
./srcds_run -game tf -maxplayers 32 +map $MAP
 
</pre>
 
  
 
== Замечания ==
 
== Замечания ==

Latest revision as of 05:41, 25 October 2021


Установка

Напишите в терминале строки находящиеся ниже

sudo apt-get install lib32gcc1 (for 64-bit platform)
wget http://www.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
type yes
./steam
./steam -command update -game tf -dir .

Запуск

cd orangebox
./srcds_run -game tf +map cp_badlands

Правила iptables

-A INPUT -i venet0 -p tcp -m tcp --dport 27015 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27005 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27015 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27005 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27016 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27018 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27019 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27020 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27016 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27018 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27019 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27020 -m state --state NEW,ESTABLISHED -j ACCEPT
  • Замечание: если работает модуль multiports, то можно вместить всё в два правила.
  • Замечание: измените имя интерфейса (venet0) в соответствии с вашими настройками системы.

Замечания

  1. Выделенный сервер не требует прав суперпользователя (root) для установки и запуска. Рассмотрите установку отдельной учётной записи пользователя для выделенного сервера (hlds).
  2. Если ваш сервер использует 64-битную (AMD64) версию Linux, возможно вам понадобится установить некоторые пакеты для 32-битной поддержки (binary compatibility). Если у вас установлен дистрибутив Debian, просто напишите в терминале sudo aptitude install ia32-libs, это должно помочь.
  3. server.cfg находится в папке orangebox/tf/cfg. Для информации по настройке сервера посмотрите Dedicated server configuration.
  4. Не забудьте открыть порты 27000-27015 в вашем сетевом экране, если он у вас установлен.

См. также