no-steam |v.34| Zombiemod [B/IKCM] RUS
http://forum.vlksm.in/

Сервер Counter-Strike:Source на VDS
http://forum.vlksm.in/viewtopic.php?f=20&t=4320
Страница 1 из 1

Автор:  TPOLI,KUU[B/IKCM] [ 11 июн 2017, 14:52 ]
Заголовок сообщения:  Сервер Counter-Strike:Source на VDS

В этой статье я расскажу как сделать игровой сервер Counter-Strike:Source от 96 рублей в месяц.

VDS/VPS
Скрытый текст
могу порекомендовать три хостинга:
time-host.net - сам им пользуюсь
skyhost.ru - минимальный тариф всего 96 рублей
ihor.ru -

К достоинствам первого можно отнести возможность апгрейда (добавить места на HDD, ОЗУ, ядро) без смены тарифа и возможность выбора 32-х разрядного линукса при установке без лишних телодвижений.

На текущий момент рекомендовал бы третий, сервер в минимальной комплектации 100 рублей и довольно стабильный

Реализацию обязательно выбираем KVM. Так и шустрее и официально разрешено запускать на ней игровой сервер.

В качестве ОС рекомендую использовать ubuntu 12.04 или 14.04 32-х разрядную.
Внимание: на 64-разрядной оси запустить сервер удастся, но придется долго возиться (устанавливать дополнительные библиотеки) и работать он будет некорректно (для полноценного запуска придется из консоли сервера карту запускать и, например, на ЗМ-е не работает пофайловый конфиг). Вдобавок вебморду сорсбана и сайт хлстат также гораздо проще установить на 32-х разрядную ОС.

Пошаговая инструкция установки ubuntu server 32-bit доступна здесь

Также, если есть необходимость в сайте, форуме, сорсбане, hlstat, сервера быстрой закачки карт и т.п, рекомендую для этого использовать отдельный VDS, чтобы не нагружать тот, на котором будет установлен игровой сервер.

Для игрового сервера человек на 20 вполне достаточно минимального тарифа (1 ядро, 500 МБ ОЗУ).

************************************************************
Добавление пользователя VDS (обязательно!)
Скрытый текст
Итак, мы получили заветный пароль от учетной записи суперпользователя и ip-адрес нашего VDS. Теперь нам понадобится программа для доступа на VDS по SSH: putty. В поле "имя хоста" вбиваем ip-адрес и жмем "соединиться". Теперь необходимо залогиниться. набираем логин root, жмем клавишу ввод. Теперь необходимо ввести пароль, предоставленный хостером. (Внимание: пароль при вводе не отображается). Жмем ввод.
Теперь необходимо создать нового пользователя. Работать из под рута - дурной тон.
Код:
adduser username
, где username имя нового пользователя
Далее необходимо задать пароль, все остальное можно оставить по умолчанию, просто жмем ввод
Также необходимо предоставить новому пользователю права на выполнение команд с правами суперпользователя
Код:
nano /etc/sudoers

в открывшемся файле под строку:
Код:
root ALL=(ALL:ALL) ALL

добавляем
Код:
username ALL=(ALL:ALL) ALL
, где username - имя нашего нового пользователя.
! Вставлять текст из буфера обмена можно правой кнопкой мыши.
Когда привели файл к нужному виду, жмем CTRL + X, подтверждаем изменения кнопкой "y" и жмем ввод
Все, работа из под rootа окончена, набираем:
Код:
logout
и снова подключаемся используя только что созданную учетную запись

************************************************************
Поднимаем FTP сервер
Скрытый текст
Для закачки сервера можно конечно использовать утилиту wget, но удобнее делать это через FTP
Установка:
Код:
sudo apt-get update
sudo apt-get install vsftpd

Конфиг по умолчанию находится в файле /etc/vsftpd.conf
Открываем:
Код:
sudo nano /etc/vsftpd.conf

Основные настройки (можете просто заменить содержимой конфига на нижеприведенный текст):
Код:
listen=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

После изменения конфигурации необходимо перезапустить фтп-сервер:
Код:
sudo service vsftpd restart

Теперь можно скачать фтп-клиент и подключиться к серверу используя наш ip-адрес и учетную запись, которую мы создали в предыдущем пункте.

************************************************************
Загрузка игрового сервера на VDS
Скрытый текст
В домашней дирректории (в той, в которой вы оказываетесь после логина) создаем папку для сервера:
Код:
mkdir css
cd css
mkdir server

Далее, либо переходим в папку сервера и закачиваем сервер через wget
Код:
cd server
wget ссылка_на_сервер

либо закачиваем его через FTP

Ссылку на сервер приводить не буду. Ищите в гугле. Вам нужна linux версия, желательно с установленным эмулятором стимайди (чтобы пускало с пираток)

Официальную выерсию Вы можете скачать по инструкции Выделенный сервер Counter-Strike:Source (официальная версия)

************************************************************
Запуск сервера
Скрытый текст
Запускать сервер мы будем через скрипт.
Переходим в корневую директорию сервера
Код:
cd /home/username/css/server
, где username - созданный во втором пункте пользователь
Создаем или приводим к нужному нам виду (если он уже был в скаченном вами сервере) скрипт
Код:
nano start.sh

вставляем следующий текст:
Код:
#!/bin/sh
echo "CSS server"
./srcds_run -console -game cstrike -localcser -nomaster -insecure +maxplayers 20 +map стартовая_карта +fps_max 0 -tickrate 66 -ip айпи_вдс -port 27015 +sv_lan 0

параметры запуска можете изменить по вкусу.
Сохраняем.
Делаем необходимые файлы исполняемыми
Код:
chmod +x srcds_amd  srcds_i486  srcds_i686  srcds_run  start.sh  steam

Для запуска нам понадобится утилита screen
Проверяем установлена ли она:
Код:
screen -v

Если нет - устанавливаем:
Код:
sudo apt-get install screen

Теперь можно запустить сервер
Код:
screen -AmdS servak ./start.sh

для открытия консоли сервера используем команду
Код:
screen -r servak

для выхода из консоли: CTRL+A+D (будьте внимательны: CTRL+C остановит сервер)

************************************************************
Раскрутка
Скрытый текст
В обязательном порядке стоит добавить сервер сюда: http://css.setti.info/#addserver . Это необходимо, чтобы сервер отображался в игре на вкладке "интернет".
В какие-либо платные раскрутки лично я не верю. Лучший способ раскрутки - самому постоянно находиться на сервере, а еще лучше с друзьями. И на первых порах желательно ограничить объем скачиваемого контента (скины, музыка и прочее), т.к. мало кому интересно заходить на полупустой сервер, а еще менее интересно ждать пока закачается весь этот хлам.

************************************************************
FastDownload (быстрая закачка карт)
Скрытый текст
Для того, чтобы карты быстро скачивались, нам понадобиться web-сервер. Лучше ставить его на отдельный VDS (чтобы там же крутился сайт, стата, сорсбан и прочее, если ничего такого не планируется то можно и на основной поставить).
Для установки вводим:
Код:
sudo apt-get install lamp-server^ phpmyadmin

В процессе установки потребуется задать пароль к phpmyadmin (веб-интерфейс для работы с mysql базой данных)

Все, теперь файлы и папки, закинутые в дирректорию /var/www/html/ будут доступны через браузер по ip-адресу вашего VDS (либо по доменному имени, если вы указали для него этот адрес)

Рекомендую также установить ftp-сервер на VDS с веб-сервером, для удобства. И не забудьте права на директорию передать основному пользователю:
Код:
sudo chown -R username:username /var/www/html
, где username - имя вашего пользователя.
Теперь в данной директории можно создать папку fastdownload и туда загрузить через ftp загружаемый контент, т.е. целиком папку maps и при необходимости models, materials, sound (для этих папок достаточно только те файлы, которых нет в клиенте по умолчанию, т.е. которые вы добавляли на сервер - скины, звуки и т.д. - с сохранением пути как на сервере).
Важно: все файлы необходимо заархивировать в bz2-архив (отдельно каждый файл), т.е. в конечном итоге из карта.bsp должен получиться файл карта.bsp.bz2.

Я сначала на компе их архивирую, потом закачиваю на веб-сервер (привык). Вы можете сначала закачать, потом заархивировать все одной командой:
Код:
find /var/www/html/fastdownload/ -exec bzip2 {} \;


Теперь необходимо внести изменения в server.cfg, добавить следующие строки:
Код:
net_maxfilesize 200
sv_downloadurl "ip-адрес/fastdownload"
sv_allowupload 1
sv_allowdownload 1


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

************************************************************
Автоматическая запись демок и удаление старых демок и логов
Скрытый текст
Чтобы включить автозапись SourceTV на вашем сервере, добавьте эти строчки в ваш autoexec.cfg:
Код:
tv_enable 1
tv_autorecord 1
tv_maxclients 0

При желании, если на VDS с игровым сервером установлен web-сервер, можно сделать демки доступными для скачивания.
Для этого в крон добавляем задание для переноса их на вебсервер:
Код:
sudo nano /etc/crontab

в открывшийся файл добавляем:
Код:
3  *    * * *   username  cd /путь/cstrike/ && mv *.dem /var/www/html/fastdownload/demki
5  3    * * *   username  find /var/www/html/fastdownload/demki -type f -mtime +10 -delete
15 3    * * *   username  find /путь/cstrike/logs/ -type f -mtime +10 -delete
25 3    * * *   username  find /var/www/html/fastdownload/demki -type f -size -1000k -delete

Поясню: первая строка ровно в 3 минуты каждого часа переносит демки из корневой папки сервера на web-сервер;
вторая строка удаляет демки старше 10 дней ежедневно в 3:05;
третья строка удаляет логи старше 10 дней ежедневно в 3:15;
четвертая строка ежедневно в 3:25 удаляет демки размером меньше 1 МБ (это актуально, если на сервере установлен плагин autochangemap, меняющий карту каждые 5 мин при пустом сервере)

Не забудьте вместо username указать имя вашего пользователя, а вместо путь указать полный путь к папке cstrike (та в которой папка maps)

************************************************************
Установка LAMP (веб-сервер для сайта, hlstat и прочего)
Скрытый текст
Запускаем установку:
Код:
sudo apt-get install lamp-server^ phpmyadmin

В процессе необходимо будет задать пароль для суперпользователя БД и указать сервер, для которого нужно сконфигурировать phpmyadmin (пробелом звездочку напротив Апача поставить надо). Также нужно будет ввести пароль от суперпользователя phpmyadmin.

По окончании процесса набираем ip-адрес сервера в адресной строке браузера и любуемся стартовой страницей apache

************************************************************
Установка HLstatsX:CE
Скрытый текст
Переходим в директорию веб-сервера (по умолчанию находится по пути /var/www):
Код:
cd /var/www

Делаем нашего пользователя владельцем папки html:
Код:
sudo chown user:user html

Переходим в нее:
Код:
cd html

Создаем папку hlstat (название можете задать любое) и переходим в нее:
Код:
mkdir hlstat && cd hlstat

Утилитой wget скачиваем дистрибутив hlstatsx.
Необходимую Вам версию Вы можете найти в интернете. В нашем примере использован дистрибутив hlxce_1_6_19.
При необходимости извлекаем дистрибутив из архива.
В нашем случае отсутствовала программа unzip:
Код:
sudo apt-get install unzip

Код:
unzip hlxce_1_6_19.zip

Удаляем лишнее:
Код:
rm -r amxmodx heatmaps CREATORS hlxce_1_6_19.zip IMAGES LICENSE README

Содержимое папки sourcemod копируем в соответствующую директорию игрового сервера.

Далее открываем браузер и вводим в адресную строку ip_сервера/phpmyadmin
Используем логин root и введенный при установке веб-сервера (предыдущий пункт) пароль.
Создаем новую БД и пользователя этой БД.
Импортируем в эту базу дамп install.sql из папки sql

Затем перемещаем папку scripts в нашу домашнюю директорию:
Код:
mv scripts ~/hlstat_scripts


В итоге должна остаться всего одна директория: web
Перемещаем ее содержимое в текущую папку (/var/www/html/hlstat):
Код:
mv web/* ./

и удаляем опустевшую папку web:
Код:
rm -r web


Открываем конфигурационный файл веб-части hlstat:
Код:
nano config.php

Указываем реквизиты подключения к нашей БД, правя строки:
Код:
// DB_USER - The username to connect to the database as
define("DB_USER", "hlstat");

// DB_PASS - The password for DB_USER
define("DB_PASS", "[b]********[/b]");

// DB_NAME - The name of the database
define("DB_NAME", "hlstat");

(вместо ******** необходимо подставить пароль к БД)

Переходим к нашей папке со скриптами:
Код:
 cd ~/hlstat_scripts/

Открываем конфигурационный файл hlstats.conf:
Код:
nano hlstats.conf

И редактируем реквизиты подключения к БД:
Код:
DBHost "localhost"
(вместо [b]********[/b] необходимо подставить пароль к БД)

# DBUsername - User to connect to the database as.
DBUsername "hlstat"

# DBPassword - Password for the database user.
DBPassword "*********"

# DBName - Name of the database to use.
DBName "hlstat"


Переходим в директорию GeoLiteCity:
Код:
cd GeoLiteCity

и запускаем скрипт обновления геоинформации:
Код:
./install_binary.sh

После успешного выполнения в директории должен появиться файл GeoLiteCity.dat

Далее открываем планировщик Crontab:
Код:
crontab -e

и добавляем задания:
Код:
*/5 *   * * *      cd /home/user/hlstat_scripts && ./run_hlstats start
10  0   * * *      cd /home/user/hlstat_scripts && ./hlstats-awards.pl
15   1   * * 1      cd /home/user/hlstat_scripts/GeoLiteCity && ./install_binary.sh
43  0   * * *      cd /home/user/hlstat_scripts && ./run_hlstats restart
15  2    * * *     find /home/user/hlstat_scripts/logs -type f -mtime +10 -delete

Первая строка каждые 5 минут запускает наш скрипт (если он запущен ничего не делает).
Вторая строка ежедневно в 00 часов 10 минут обновляет информацию об ежедневных наградах.
Третья строка раз в неделю обновляет файл геоинформации.
Четвертая строка раз в день перезапускает наш скрипт (в отличие от первой строки происходит именно перезапуск, а не запуск в случае остановки)
Пятая строка ежедневно удаляет логи, которые старше 10 дней

Для корректного распознавания стран возможно потребуется установить модуль Geo::IP::PurePerl
Код:
sudo apt-get install make

Запускаем cpan:
Код:
sudo cpan

и в его консоли выполняем:
Код:
install Geo::IP::PurePerl


Возвращаемся в директорию веб-части:
Код:
cd /var/www/html/hlstat/

и удаляем папку updater
Код:
rm -r updater


Далее в браузере открываем ссылку http://ip_сервера/hlstat/hlstats.php?mode=admin
Логинимся, используя логин admin и пароль 123456

Первым делом создаем нового пользователя, после чего удаляем пользователя admin.

Открываем конфигурационный файл игрового сервера и добавляем строки:
Код:
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
mp_logdetail 3
logaddress_delall
logaddress_add ip_сайта:27500


Теперь в админке веб-интерфейса добавляем сервер, отключаем отображение GoogleMap (если у Вас нет платного API), настраиваем статистику под себя (Гугл переводчик в помощь)

************************************************************
Позже дополню статью, так как осветил не все, что хотел. Но вышеупомянутого вполне достаточно, чтобы запустить сервер на VDS.

Если заметите ошибку, что-то не получится или возникнут вопросы, пишите - постараюсь ответить

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/