Главная | О проекте | Блог | Реклама
Чтение RSS
Суперсайт
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Место под рекламу

    Опрос пользователей

    • Случайные файлы

    • Яндекс.Метрика
      тИЦ и PR сайта
      Онлайн всего: 1
      Гостей: 1
      Пользователей: 0

      Популярные файлы

    Наши друзья


  •  
    Главная » Файлы » Lunix

    Создание Steam-сервера на Linux Debian/Ubuntu.

  • 11.12.2011, 16:17



    Вот я набрался опыта (может и небольшого) в создании сервера на Линуксе и теперь расскажу вам, как это делать.

    Сам процесс установки ОС я не буду говорить, ищите сами, но скажу: в этом нет ничего сложного, просто будет слегка непривычно. Но все же не каждому дано работать с Линуксом. если Вы сомневаетесь, что сможете работать с этой ОС, то можете на виндовс установить VMware Workstation, а на VMware Workstation - установить Линукс.

    Мы будем рассматривать пример Ubuntu. Напоминаю, что Debian является "основателем" этой оси, и существенной разницы между ними нет. Лично я использую Ubuntu 9.10.

    Итак, начнём!

    Установка платформы сервера и запуск

    Практически все это время мы будем работать с командной строкой Линукса.

    Открываем "Терминал" ("Приложения" - "Стандартные" - "Терминал").

    Сначала создадим папку, например hlds, где будет наш сервер (обычно ее создают в домашней папке пользователя (в Линуксе другая структура папок)) и заодно перейдём в нее:
    1) mkdir /home/datex/hlds/
    2) cd /home/datex/hlds/
    mkdir - make directory (создать папку)
    cd - change directory (сменить локацию - тобиш перейти в указанную папку)
    datex - имя пользователя
    Имейте ввиду, что в Линуксе имеет значение регистр, по-этому советую всегда использовать маленькие буквы в названии файлов и папок, дабы не запутаться.

    теперь необходимо скачать Linux HLDSUpdateTool:
    wget http://storefront.steampowered.com/download/hldsupdatetool.bin
    wget - "достать из WWW"

    Если Вы сделали правильно, то увидите в консоли следующее:
    --08:57:14-- http://storefront.steampowered.com/download/hldsupdatetool.bin
    => `hldsupdatetool.bin'
    Resolving storefront.steampowered.com... 87.248.207.164, 87.248.207.168
    Connecting to storefront.steampowered.com|87.248.207.164|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 3 513 408 (3.4M) [application/octet-stream]

    100%[========================>] 3 513 408 31.71K/s ETA 00:0014

    08:59:25 (26.10 KB/s) - `hldsupdatetool.bin' saved [3513408/3513408]

    Поставим права доступа:
    chmod +x hldsupdatetool.bin

    Запускаем hldsupdatetool.bin:
    ./hldsupdatetool.bin
    ./ - так сказать, "запуск"
    После старта файл Вас спросит о лицензионном соглашении, введите "yes"
    После этого можно удалить ненужные файлы:
    rm ./hldsupdatetool.bin && rm ./readme.txt
    rm - remove (удалить)

    В папке должен появиться файл steam, запустим его:
    ./steam
    И должны увидеть следующее:
    Checking bootstrapper version ...
    Getting version 34 of Steam HLDS Update Tool
    Downloading. . . . . . . . . . .
    Steam Linux Client updated, please retry the command

    Теперь запустим еще раз только с переменными:
    time ./steam -command update -game "cstrike" -dir /home/datex/hlds/
    time - показывает время загрузки файлов, в этой операции не обязателен, но так будет легче узнать, сколько вы уже скачали.
    Операция займёт около 20-40 минут и будет выглядеть так:
    Checking bootstrapper version ...
    Updating Installation

    -----------------------------------

    98.10% .valveserver.cfg
    98.12% .valveskill.cfg
    98.12% .valvespraypaint.wad
    98.12% .valvesteam.inf
    98.12% .valvesteam_appid.txt
    98.12% .valvevalve.rc
    98.14% .valvevalvecomm.lst
    100.00% .valvexeno.wad

    Connection Reset

    real 114m3.697s
    user 0m4.230s
    sys 0m1.300s

    Создадим еще некоторые папки и файлы:
    1) mkdir ./platform && mkdir /platform/SAVE
    2) cat /dev/null > ./cstrike/language.cfg && cat /dev/null > ./cstrike/listip.cfg && cat /dev/null > ./cstrike/banned.cfg

    Мы создали Steam-сервер. Теперь попробуем запустить его:
    ./hlds_run -game cstrike +ip 192.168.5.57
    Пишем внутренний IP Вашего компьютера.
    должны увидеть следующее:
    Auto detecting CPU
    Using Pentium II Optimised binary.
    Auto-restarting the server on crash

    Console initialized.
    scandir failed:/hlds/./platform/SAVE
    Protocol version 48
    Exe version 1.1.2.6/Stdio (cstrike)
    Exe build: 15:58:06 Jun 15 2009 (4617)
    STEAM Auth Server
    couldn't exec language.cfg
    Server IP address 192.168.5.57:27020
    [S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.

    Adding master server 69.28.151.162:27010
    Adding master server 68.142.72.250:27010
    Connection to Steam servers successful.
    VAC secure mode is activated.
    "[S_API FAIL] SteamAPI_Init() failed;" - что это за ошибка, я так и не понял, но, вроде как, она не вылазяет нигде боком.

    Но таким способом сервер не удобно запускать. Нужно создать скрипт запуска. Я использую такой скрипт запуска:
    #!/bin/sh
    #vsftpd &
    screen -A -m -d -S csserv ./hlds_run -console +sv_lan 0 -game cstrike +maxplayers 12 +port 27020 +ip 192.168.5.57 -pingboost 3

    Как создать скрипт?
    Надо создать текстовый файл с расширением .sh, допустим start.sh. Этот скрипт кидаем в папку hlds/.


    Вопрос: Что такое pingboost?
    Ответ: pingboost - это серверная переменная, инициализируемая только во время запуска сервера, которая увеличивает нагрузку на сервер, но снижает задержку в игре. Без него HLDS добавляет 20мс каждому игроку.

    Вопрос: На каких платформах он работает?
    Ответ: pingboost работает только на HLDS для GNU Linux.

    Вопрос: Каким образом работает pingboost?
    Ответ: pingboost уменьшает задержку на сервере тремя способами:
    -pingboost 1: Этот метод уменьшает задержку на 10мс и использует метод ожидания (a select() call).
    -pingboost 2: Этот метод уменьшает задержку на 10мс и использует метод ожидания (and alarm() type call).
    -pingboost 3: Этот метод обрабатывает кадр каждый раз при поспутлении пакета с данными, что в свою очередь снижает задержку до максимально низкого уровня. Этот режим использует все процессоры и сильно их загружает.
    Вопрос: Как использовать pingboost?
    Ответ: Достаточно всего лишь иметь HLDS и Linux сервер. Далее, в строке запуска сервера дописать "-pingboost 1 (2 или 3)".

    Примечание: Для интернет серверов рекомендуется использовать первый метод бустинга (-pingboost 1).

    Далее, чтоб не выполнять множество команд, для запуска сервера через командную строку, можно создать еще один скрипт в папке /home/datex/:
    #!/bin/bash
    cd /home/datex/hlds_cs/
    ./start.sh
    screen -r csserv
    Его так же можно назвать start.sh.

    В следущий раз, чтоб запустить сервер, Вам понадобится ввести в командной строке ./start.sh
    Запустится файл /home/datex/start.sh и сошлётся на файл /home/datex/hlds_cs/start.sh, после чего тот запустит сервер в отдельном окне (консоли). Для корректного выключения сервера, нужно вводить команду quit.

    Установка Metamod и Amx Mod X

    Скачаем и установим Metamod:
    1) wget http://sunet.dl.sourceforge.net/project/metamod/Metamod%Binaries/1.19/metamod-1.19-linux.tar.gz
    2) tar -xvzf ./metamod-1.19-linux.tar.gz
    3) mkdir ./cstrike/addons && mkdir ./cstrike/addons/metamod && mkdir ./cstrike/addons/metamod/dlls && mv ./metamod_i386.so ./cstrike/addons/metamod/dlls/metamod_i386.so
    4) rm metamod-1.19-linux.tar.gz
    5) cat ./cstrike/liblist.gam | sed "s/dlls/cs_i386.so/addons/metamod/dlls/metamod_i386.so/" > ./cstrike/liblist.gam.new && mv ./cstrike/liblist.gam.new ./cstrike/liblist.gam
    1) Скачиваем архив
    2) Разархивируем его
    3) Создаём папки и кидаем в них файлы
    4) Удаляем архив
    5) Изменяем liblist.gam

    Теперь установим Amx mod X:
    1)wget http://sunet.dl.sourceforge.net/project/amxmodx/AMX%Modєse/1.8.1/amxmodx-1.8.1-base.tar.gz
    2) tar -xzvf ./amxmodx-1.8.1-base.tar.gz -C ./cstrike/
    3) rm ./amxmodx-1.8.1-base.tar.gz && wget http://sunet.dl.sourceforge.net/project/amxmodx/Counter-Strike­don/1.8.1/amxmodx-1.8.1-cstrike.tar.gz
    4) tar -xzvf ./amxmodx-1.8.1-cstrike.tar.gz -C ./cstrike/
    5) echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" > ./cstrike/addons/metamod/plugins.ini
    1) Скачиваем архив
    2) Разархивируем его
    3) Удаляем архив и скачиваем Amx addons для Counter-Strike
    4) Разархивируем его
    5) Изменяем /metamod/plugins.ini

    Прелупреждаю: все данные действия происходят в папке /hlds/. И еще: прежде всего нужно установить одно приложение:
    apt-get install screen

    Настройка FTP

    Если у Вас есть еще 1 компьютер и если Вам неудобно работать с файлами на Линуксе, то Вы можете воспользоваться этим пунктом.

    vsftpd - Very Secure FTP Daemon отлично подходит для быстрого развертывания ftp-сервера на машине с Ubuntu Linux. Первым делом установим его:
    apt-get install vsftpd

    Займемся его конфигурацией, для этого правим файл /etc/vsftpd/vsftpd.conf. Ищем такие строки:
    anonymous_enable=YES
    local_enable=YES
    write_enable=YES
    anon_upload_enable=NO
    anon_root=/var/ftp
    anonymous_enable - разрешение доступа анонимных пользователей;
    local_enable - разрешение доступа для локальных пользователей;
    write_enable - разрешаем запись;
    anon_upload_enable - разрешение записи для анонимных пользователей;
    anon_root - папка, к которой имеют доступ анонимные пользователи.
    Если не понимаете о чём они, оставьте их такими, какие они есть.

    Теперь скачайте (на виндовс) любой FTp-client, к примеру Total Commander (желательно русский). Вверху нажмите "Сеть/FTP" и выберете "Соединиться с FTP-сервером...". Тыкаем "Добавить." и вылазит еще одно окошко:
    "Имя соединения" - думаю, всё ясно, пишите на ваш вкус
    "Сервер:[Порт]" - внутренний IP компьютера, на котором стоит сервер
    "Учётная запись" - имя пользователя на том компе
    "Пароль" - пароль от пользователя, но его вводить нежелательно, т.к. TC в этом плане не уязвим. Если Вы его не введёте, то потом при каждом подключении будете вводить пароль.

    Быстрая скачка с FTP

    Раз мы настроили FTP, то почему бы не воспользоваться этим шансом?

    Вы уже научились способу быстрой HTTP-скачки? Тогда он сейчас Вам поможет!

    Заходим в папку /var/ftp/ и создаём там такую же структуру файлов и папок, как указано в той статье.

    Теперь попробуем проверить. Надо зайти через браузер и Ввести в браузере ftp://ваш_внешний_айпи, а там, думаю, Вы сами поймёте.

    Если у Вас получилось, то в server.cfg вводим:
    sv_allowdownload 1
    sv_downloadurl ftp://внешний_айпи:21

    PS: FTP-сервер занимает 21-ый порт по умолчанию, так что его тоже нужно открыть.

    Открытие портов на Linux'е

    Открыть порт можно, выполнив такую команду:
    iptables -I INPUT -p tcp --dport 5222 -m state --state NEW -j ACCEPT
    Вместо 5222 пишем свой порт.

    Спасибо Fire'у и Hellrock'y за просветление.
    Источники использованы:
    http://www.loewa.ru/statia/49-hldsserver.html
    http://ubuntueasy.com/servery/bystraja-ustanovka-ftp-servera
    http://c-s.net.ua/forum/topic11712.html

    Автор: DaTeX
    Убедительная просьба: при копировании статьи, указывайте автора, ведь что в этом плохого есть? Уважайте чужой труд, и тогда Вас будут уважать!

    Желаю удачи!


    Просмотров: 1948 Категория: Lunix
    Добавил: admin Рейтинг: 0.0/0

    Всего комментариев: 0

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]













































  • Наверх

    Реклама

    Ваша реклама