Создаем сервер Unreal Tournament 99 (UT99) на Debain

Главная Форумы JUST FOR FUN Create gaming servers Создаем сервер Unreal Tournament 99 (UT99) на Debain

Просмотр 4 сообщений - с 1 по 4 (из 4 всего)
  • Автор
    Сообщения
  • #398
    E-tec
    Хранитель

      В этом мануале разберем шаг за шагом, как развернуть UT99 сервер на linux. Собирать будем на Debian linux, на момент написания статьи актуальная версия 9, но инструкция подойдет для любого более свежего билда ОС. UT сервер будем собирать на 451, либо 469 патче на Ваш выбор т.к. на этих патчах работает webadmin, что удобно для удаленного администрирования.

      Перед тем как что-то начать делать убедитесь, что у Вас есть статический IP адрес!

      Обращайте внимание на знаки $, #, >, они не являются частью команд, но показывают от какого пользователя или в каком приложении они вводятся, это важно.

      Опять же как и в случае с развертыванием CS сервера я не буду рассказывать как установить саму ОС, так как это элементарно просто, так что приступлю сразу к делу! Опять же я использовал самый легкий образ ОС Debian (Маленькие диски или USB-накопители amd64), скачать его можно по ссылке с официального сайта Debian (~250-300Мб).

      При установке ОС выбираем только необходимые системные утилиты, остальное нам ни к чему.

      После установки доустанавливаем необходимое для удобства пакеты
      ssh – сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой
      mc – файловый менеджер с текстовым интерфейсом
      net-tools – это набор сетевых утилит для диагностики сетей и мониторинга сетевых соединений

      # apt update
      # apt upgrage
      # apt install ssh mc net-tools

      Если сервер находится за NAT, меняем настройки сетевого адаптера на статику, для этого открываем конфиг, меняем IP на свои если они отличаются от моего варианта:
      # nano /etc/network/interfaces

      прописываем СВОИ параметры, я буду использовать ip 192.168.1.8:

      # The primary network interface
      allow-hotplug eth0
      iface eth0 inet static
      address 192.168.1.9
      netmask 255.255.255.0
      gateway 192.168.1.1
      dns-nameservers 192.168.1.1 8.8.8.8

      Отключаем IPv6, идем в конфиг:
      # nano /etc/sysctl.conf

      В конец конфига вставляем:

      Turn off IPv6
      net.ipv6.conf.all.disable_ipv6 = 1
      net.ipv6.conf.default.disable_ipv6 = 1
      net.ipv6.conf.lo.disable_ipv6 = 1
      net.ipv6.conf.eth0.disable_ipv6 = 1

      При этом в последней строке, если необходимо, изменяем имя сетевого интерфейса eth0 на тот, который используется у нас. Если в системе несколько интерфейсов, то добавляем по аналогии строку для каждого дополнительного интерфейса.

      Для вступления изменений в силу, заставим sysctl перечитать файл /etc/sysctl.conf:
      # sysctl -p

      Перезагружаем сервер и проверяем список интерфейсов, где IPv6 интерфейсов уже не должно остаться:
      # ip addr | grep inet6

      Так же понадобятся x32 библиотеки для запуска сервера, установим их:

      # dpkg --add-architecture i386
      # apt update
      # apt install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

      На этом подготовка закончена приступим к установке самого сервера.

      Прежде всего, вам нужно создать обычного пользователя, подойдет та учетная запись, которая была создана при установке ОС. **НЕ используйте** ROOT для запуска игрового сервера!

      Если при установке ОС вы создали дополнительную учетную запись, например administrator, то она вполне сгодится!

      Если Вы этого не сделали, то просто создайте его командой:

      # adduser [username]

      Эта команда запустит скрипт, который задаст несколько вопросов, например пароль.

      Как только Вы это сделаете, войдите в систему под этим пользователем. Самый простой способ сделать это без выхода из системы – использовать команду su.

      # su - [username]

      Итак, теперь, когда у нас есть пользователь, нам нужно перейти в его домашний каталог. Так что давайте сделаем следующее:

      $ cd /home/[username]

      Далее скачиваем UT99 сервер и разархивируем его основные файлы

      $ wget https://geek-speak.ru/files/UT99SRV/ut-server-436.tar.gz
      $ tar -zxf ut-server-436.tar.gz

      переходим в каталог
      $ cd ut-server

      Далее мануал для развертывания патча 451
      Скачиваем и разархивируем архив с патчем 451

      $ wget https://geek-speak.ru/files/UT99SRV/UTPGPatch451LINUX.tar.tar
      tar xfj UTPGPatch451LINUX.tar.tar

      Скачиваем и разархивируем ASU (Abfackelns Server Utilities)

      $ wget https://geek-speak.ru/files/UT99SRV/asu-0.6.tar.gz
      tar -zxf asu-0.6.tar.gz

      Даем полные права исполняемому файлу ASU и необходимым каталогам и файлам для запуска UT99
      $ chmod +x asu.sh
      $ chmod +x ucc
      $ chmod +x Logs
      $ chmod +x System

      Далее мануал для развертывания патча 469c
      Скачиваем и разархивируем архив с патчем 469c

      $ wget https://geek-speak.ru/files/UT99SRV/UTPatch469c-Linux-x86.tar.bz2
      $ tar xfj UTPatch469c-Linux-x86.tar.bz2

      Скачиваем и разархивируем ASU (Abfackelns Server Utilities)

      $ wget https://geek-speak.ru/files/UT99SRV/ASU-NEW.zip
      $ gunzip -S ASU-NEW.zip

      ВНИМАЕНИЕ! После распаковки убедитесь, что файлы находятся в нужных каталогах, для этого откройте файловый менеджер mc, и убедитесь, что все одноименные файлы и каталоги находятся в основной папке.

      Даем полные права исполняемому файлу ASU и необходимым каталогам и файлам для запуска UT99
      $ chmod +x asu.sh
      $ chmod +x ucc
      $ chmod +x Logs
      $ chmod +x System

      Так как игра уже не очень новая нам нужно будет выполнить еще несколько телодвижений. Перейдем в папку System игрового сервера. «System» — c большой буквы.

      $ cd System

      И сделаем символическую ссылку
      $ ln -s libSDL-1.1.so.0 libSDL-1.2.so.0

      Выходим в корень сервера
      $ cd $HOME/ut-server

      Запускаем скрипт настройки
      $ bash ./asu.sh

      После запуска скрипт начнет запрашивать у Вас различные опции для настроек сервера. Те опции о которых Вы ничего не знаете оставьте по умолчанию. После запуска скрипта Вы увидите следующее текстовое меню:

      MAIN MENU
      ---------
      
      B) Bot Menu
      D) Specify UT Directory and active .ini files
      /usr/games/ut-server/./System/UnrealTournament.ini
      H) Help and Copyright Information
      I) Install Init Script
      N) Enable NG Local Stats (requires JDK 1.2)
      O) Optimization Menu
      P) Patches
      R) Enable Download Redirection
      S) Server Info, MOTD and Passwords
      U) Umod Package Menu
      V) Verify Installation
      X) Exit
      
      Enter a letter from the above menu.
      ?

      Чтобы запустить сервер, мы сосредоточимся только на настройке сценария запуска. Поэтому выберите вариант I.

      Первый вопрос настройки сервера будет касаться от какого пользователя вы будете запускать свой сервер. Вводим имя пользователя, которого создали в самом начале! Не запускайте его как root.

      Затем он попросит вас ввести IP-адрес, который будет прослушивать. Это нужно сделать только в том случае, если на сервере имеется несколько IP-адресов. Я оставил его пустым.

      Затем он спросит вас, какой тип игры вы хотите запустить, если вы не видите тип игры, который вы планируете запустить. Просто выберите DM на данный момент, или пропустите этот шаг, данные настройки можно будет изменить через Webmin.

      Затем он спросит вас, с какой карты вы хотите начать. Просто выберите одну из представленных карт. Не имеет значения, может быть изменено позже через Webmin.

      Если вы планируете запускать мутаторы, введите их сейчас. Введите только один, затем нажмите клавишу ввода. Он будет продолжать задавать этот вопрос, пока вы не представите пустой ответ. Если вы не хотите запускать какие-либо мутаторы, просто нажмите клавишу ввода, данные настройки можно будет изменить через Webmin.

      Как только вы закончите настраивать сервер, он выведет вам полный список настроек, которые вы только что ввели. Просмотрите его, чтобы убедиться, что вы сделали все верно. Затем выйдите из сценария выбрав “X” в меню.

      Сценарий создаст файл ucc.init. Важно знать, что в нем установлен путь к серверу. Итак, если вы хотите переместить сервер в другой каталог, вы должны изменить этот файл. Имя пути упоминается несколько раз.

      Дадим этому файлу так же полные права:
      # chmod +x ucc.init

      [Хочу упомянуть, что настройки ASU, есть возможность изменять через любой текстовый редактор, и запустив скрипт утилиты через ./asu.sh. Запустив скрипт и выбрав опцию (просмотр\редактирование информация о сервере, MOTD и пароли), укажите, какой порт вы хотите использовать для веб-администратора, а также имя пользователя и пароль. Не обязательно редактировать файл UnrealTournament.ini напрямую, который также позволяет изменить имя сервера, MOTDS и другую информацию касающуюся сервера.

      Далее включим webadmin для удобного удаленного администрирования. Открываем файл настроек сервера System\UnrealTournament.ini, в нем ищем раздел [UWeb.WebServer] и устанавливаем параметр bEnabled = True, если необходимо меняем порт (стандарт 5080) (если по какой-то причине Вы не видите параметров порта добавляем строку ListenPort сами):

      [UWeb.WebServer]
      Applications[0]=UTServerAdmin.UTServerAdmin
      ApplicationPaths[0]=/ServerAdmin
      Applications[1]=UTServerAdmin.UTImageServer
      ApplicationPaths[1]=/images
      DefaultApplication=0
      bEnabled=True
      ListenPort=5080

      Также задайте пароль в разделе [UTServerAdmin.UTServerAdmin], иначе люди попытаются войти в систему со значениями по умолчанию:

      [UTServerAdmin.UTServerAdmin]
      AdminUsername = admin
      AdminPassword = mybiggestsecret

      При переходе на webadmin обязательно включите /ServerAdmin/ в свою адресную строку после хоста, т.к. возможно сервер попытается Вас перенаправить на защищенное соединение httpS в результате чего страница просто выдаст любую ошибку 404, 502. Итак, перейдите по адресу http://hostname:5080/ServerAdmin/ (не забывайте поставить косую черту в конце).

      В качестве меры предосторожности, начиная с патча 451, добавлена защита от принудительного входа администратора. Дополнительную информацию смотрите в файле Releasenotes.htm в справочном каталоге. В разделе [Engine.Gameinfo] необходимо добавить/изменить несколько правил (Проверьте эти параметры):

      [Engine.GameInfo]
       (snip)
       ...
       LoginDelaySeconds=1.000000
       MaxLoginAttempts=50
       ActionToTake=DO_KickBanPlayer

      Если все в порядке, то вы можете продолжить и пропустить этот шаг и запустить сервер с помощью этой команды.

      $ bash ./ucc.init start

      Для старта\остановки и перезагрузки сервера используются стандартные команды start\stop\restart. Если у вас возникли проблемы с запуском UT сервера, либо в консоли вы видите сообщения об ошибках на невозможность найти его файлы данных (см. Каталог Logs для сообщений об ошибках, если сервер не запускается), вам нужно установить переменную UT_DATA_PATH. Для этого нужно добавить строку ниже MYUSER = User.ini в ucc.init:

      export UT_DATA_PATH="$MYDIR/ut-server/System/"

      Для того, чтоб была возможность для подключения к серверу “из вне” нужно пробросить UDP порты (не TCP) 7777-7779, 7780 и 8777. Если у ваших друзей после проброса появилось возможность подключиться к серверу, больше ни чего делать не нужно. Так же если вы просматриваете мастербраузер и не видите свой сервер, еще нужно пробросить TCP порт 27900. Если он уже появляется, вам так же не нужно ничего делать.

      #417
      E-tec
      Хранитель
        UPD 16.11.18

        Если на сервере стала крошиться ошибка подобного типа:

        Заходим в конфигурационный файл ut сервера
        nano /home/USERNAME/ut-server/System/UnrealTournament.ini
        Ищем\правим\добавляем строки, чтоб получилось как ниже:

        [Engine.StatLog]
        LocalBatcherURL=
        LocalBatcherParams=
        LocalStatsURL=
        WorldBatcherURL=
        WorldBatcherParams=
        WorldStatsURL=
        LocalLogDir=../Logs
        WorldLogDir=
        bLogTypingEvents=False
        bWorldBatcherError=False
        
        [Engine.GameInfo]
        bWorldLog=False
        
        [IpServer.UdpServerQuery]
        GameName=ut
        OldQueryPortNumber=0
        bRestartServerOnPortSwap=False
        MinNetVer=0
        bTeamInfo=False

        т.е. ни чего не удаляем просто изменяем конфиг в первом и втором случае, в третьем добавляем строки, после чего перезапускаем сервер.

        Чтоб изменить сложность ботов, идем в конфиг:
        nano /home/USERNAME/ut-server/System/Users.ini
        ищем параметр
        Difficulty=6
        меняем от 1 до 8
        1. Novice – Новичок
        2. Average – Бывалый
        3. Experienced – Опытный
        4. Skilled – Скиловый
        5. Adept – Искусный
        6. Masterful – Властелин
        7. Inhuman – Нечеловеческий
        8. Godlike – Богоподобный

        • Ответ изменён 5 лет, 5 месяцев назад пользователем E-tec.
        #1129
        E-tec
        Хранитель

          TCP PORTS: 7777, 8080, 8777, 9777, 27900
          UDP PORTS: 7777, 7778, 7779, 27900

          #2375
          E-tec
          Хранитель
            UPD 05.06.23

            После отключения официальных серверов epic, в клиентах перестали отображаться сервера в мастербраузере игры. Для того, чтоб список снова был виден, ищем файл UT99\System\UnrealTournament.ini открываем его любым удобным редактором. Далее ищем следующий раздел конфига и добавляем строку в самый конец.

            [UBrowser.UBrowserMainClientWindow]
            ...
            bKeepMasterServer=True

            В этом же файле ищем мастер сервера оставляем только те, которые еще “живые”

            [UBrowserAll]
            ListFactories[0]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master.333networks.com,MasterServerTCPPort=28900,Region=0,GameName=ut
            ListFactories[1]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master.noccer.de,MasterServerTCPPort=28900,Region=0,GameName=ut
            ListFactories[2]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master.errorist.tk,MasterServerTCPPort=28900,Region=0,GameName=ut
            ListFactories[3]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master.newbiesplayground.net,MasterServerTCPPort=28900,Region=0,GameName=ut
            ListFactories[4]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master.oldunreal.com,MasterServerTCPPort=28900,Region=0,GameName=ut
            ListFactories[5]=UBrowser.UBrowserGSpyFact,MasterServerAddress=unreal.epicgames.com,MasterServerTCPPort=28900,Region=0,GameName=ut
            ListFactories[6]=UBrowser.UBrowserGSpyFact,MasterServerAddress=master0.gamespy.com,MasterServerTCPPort=28900,Region=0,GameName=ut
            bHidden=True
            bFallbackFactories=false

            После этого сохраняем файл проверяем работоспособность браузера серверов

          Просмотр 4 сообщений - с 1 по 4 (из 4 всего)
          • Для ответа в этой теме необходимо авторизоваться.
          Авторизация
          *
          *
          Регистрация
          *
          *
          *
          Пароль не введен
          *
          Генерация пароля