Установка серверов HL (Linux): различия между версиями
Nikita (обсуждение | вклад) |
Nikita (обсуждение | вклад) |
||
(не показаны 22 промежуточные версии 5 участников) | |||
Строка 1: | Строка 1: | ||
+ | Здесь представлена информация об установке серверов старым способом через [[HLDSUpdateTool]]. | ||
+ | Получение актуальной версии сервера таким способом невозможно. Советуем воспользоваться [[Установка серверов через SteamCMD (Linux)|установкой сервера через SteamCMD]] | ||
+ | |||
== Общее о серверах == | == Общее о серверах == | ||
Строка 4: | Строка 7: | ||
Операционной системой будет Ubuntu/Debian | Операционной системой будет Ubuntu/Debian | ||
− | |||
− | |||
Скачивать готовые сервера не советую по следующим причинам:<ul> | Скачивать готовые сервера не советую по следующим причинам:<ul> | ||
<li>Они могут содержать уязвимости из-за которыми могут | <li>Они могут содержать уязвимости из-за которыми могут | ||
Строка 19: | Строка 20: | ||
<br> | <br> | ||
Собрать свой сервер не на много труднее чем скачать готовый, вдобавок с ним будет меньше проблем в будущем. | Собрать свой сервер не на много труднее чем скачать готовый, вдобавок с ним будет меньше проблем в будущем. | ||
− | + | ||
− | |||
− | |||
== Требования == | == Требования == | ||
− | + | ||
− | + | '''Процессор:''' 1000 МГц и больше | |
− | + | ||
− | + | '''Оперативная память:''' 128 Мб и больше | |
− | + | ||
− | + | '''Место на жестком диске:''' 1.5 Гб и больше | |
+ | |||
+ | |||
Если система 64 битная то нужна библиотека поддержки 32 битных приложений<br> | Если система 64 битная то нужна библиотека поддержки 32 битных приложений<br> | ||
Ее можно установить введя команду<br> | Ее можно установить введя команду<br> | ||
− | |||
− | |||
− | |||
− | + | <pre>aptitude install lib32gcc1</pre> | |
+ | == Установка сервера == | ||
Для установки сервера понадобятся права суперпользователя. | Для установки сервера понадобятся права суперпользователя. | ||
− | |||
Подключаемся по SSH. | Подключаемся по SSH. | ||
Если подключились не под пользователем root то выполняем следующую команду | Если подключились не под пользователем root то выполняем следующую команду | ||
− | |||
− | |||
<pre>sudo -s</pre> | <pre>sudo -s</pre> | ||
− | |||
Создаем директорию на сервере где будет находится наш HLDS | Создаем директорию на сервере где будет находится наш HLDS | ||
− | + | <pre>mkdir /opt/hldir</pre> | |
− | |||
Безопасность сервера превыше всего. Ни в коем случае не нужно запускать наш будущий сервер через root. Нужно создать нового пользователя и дать ему ничтожные права, т.к. серверу HLDS много не нужно, в основном это запись логов, и чтение файлов. | Безопасность сервера превыше всего. Ни в коем случае не нужно запускать наш будущий сервер через root. Нужно создать нового пользователя и дать ему ничтожные права, т.к. серверу HLDS много не нужно, в основном это запись логов, и чтение файлов. | ||
− | |||
Добавляем новую группу к которой будет принадлежать пользователь. | Добавляем новую группу к которой будет принадлежать пользователь. | ||
− | + | <pre>addgroup --system hldm</pre> | |
− | |||
− | |||
− | |||
− | |||
где hldm - имя будущей группы. От имени ничего не зависит, можно дать любое на свое усмотрение. | где hldm - имя будущей группы. От имени ничего не зависит, можно дать любое на свое усмотрение. | ||
Добавляем пользователя hldm | Добавляем пользователя hldm | ||
− | + | <pre>adduser --system --home /opt/hldir --shell /bin/sh --ingroup hldm --disabled-password --disabled-login hldm</pre> | |
− | |||
− | |||
− | |||
где | где | ||
--home /opt/hldir - домашняя директория с игрой | --home /opt/hldir - домашняя директория с игрой | ||
− | |||
--ingroup hldm - группа к которой принадлежит пользовель | --ingroup hldm - группа к которой принадлежит пользовель | ||
− | |||
--disabled-login hldm - имя нашего пользователя | --disabled-login hldm - имя нашего пользователя | ||
− | |||
Переходим в нашу директорию чтобы скачать неободимые файлы в нее | Переходим в нашу директорию чтобы скачать неободимые файлы в нее | ||
+ | <pre>cd /opt/hldir</pre> | ||
− | + | Скачиваем с сайта стима необходимый инструмент для автоматического создания сервера. | |
− | + | <pre>wget http://storefront.steampowered.com/download/hldsupdatetool.bin</pre> | |
− | + | При отсутсвии утилиты wget, устанавливаем её: | |
+ | apt-get install wget | ||
Теперь даем необходимые для запуска права нашему файлу | Теперь даем необходимые для запуска права нашему файлу | ||
− | + | <pre>chmod +x ./hldsupdatetool.bin</pre> | |
− | |||
+x означает добро на выполнение файла | +x означает добро на выполнение файла | ||
− | |||
-x файл выполнятся не будет | -x файл выполнятся не будет | ||
Запускаем наш инструмент: | Запускаем наш инструмент: | ||
− | + | <pre>su hldm -c './hldsupdatetool.bin'</pre> | |
− | |||
− | |||
Можно также воспользоваться командой, если предыдущая не удалась, в этом случае программа будет выполняться от суперпользователя | Можно также воспользоваться командой, если предыдущая не удалась, в этом случае программа будет выполняться от суперпользователя | ||
− | + | <pre>./hldsupdatetool.bin</pre> | |
После запуска мы увидим лицензионное соглашение. Вводим YES что соглашаемся и жмем ENTER. | После запуска мы увидим лицензионное соглашение. Вводим YES что соглашаемся и жмем ENTER. | ||
− | |||
В папке с игрой появится еще несколько файлов. На нужен файл steam для создания сервера. Даем ему нужные права. | В папке с игрой появится еще несколько файлов. На нужен файл steam для создания сервера. Даем ему нужные права. | ||
− | + | <pre>chmod +x ./steam</pre> | |
− | |||
И запускаем | И запускаем | ||
− | + | <pre>su hldm -c './steam'</pre> | |
− | |||
Видим примерно следующее сообщение | Видим примерно следующее сообщение | ||
− | + | <pre>Checking bootstrapper version ... | |
− | |||
− | |||
Getting version 45 of Steam HLDS Update Tool | Getting version 45 of Steam HLDS Update Tool | ||
− | |||
Downloading. . . . . . . . . . . . | Downloading. . . . . . . . . . . . | ||
− | + | Steam Linux Client updated, please retry the command</pre> | |
− | Steam Linux Client updated, please retry the command | ||
− | |||
Повторяем команду | Повторяем команду | ||
− | + | <pre>su hldm -c './steam'</pre> | |
Видим теперь примерно следующее: | Видим теперь примерно следующее: | ||
− | + | <pre>Checking bootstrapper version ... | |
− | |||
Getting version 45 of Steam HLDS Update Tool | Getting version 45 of Steam HLDS Update Tool | ||
− | |||
Downloading. . . . . . . . . . . .Steam Linux Client updated, please retry the command | Downloading. . . . . . . . . . . .Steam Linux Client updated, please retry the command | ||
− | |||
CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals. | CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals. | ||
− | |||
CAsyncIOManager: 21 single object sleeps, 0 multi object sleeps | CAsyncIOManager: 21 single object sleeps, 0 multi object sleeps | ||
− | + | CAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps</pre> | |
− | CAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps | ||
− | |||
Ну все, самое сложное в настройке сервера Half-Life завершилось. Теперь осталось скачать сам сервер и запустить. | Ну все, самое сложное в настройке сервера Half-Life завершилось. Теперь осталось скачать сам сервер и запустить. | ||
− | |||
Выполняем следующую команду | Выполняем следующую команду | ||
− | + | <pre>su hldm -c './steam -command update -game valve -dir .'</pre> | |
Или | Или | ||
− | + | <pre>./steam -command update -game valve -dir .</pre> | |
− | |||
− | |||
Где dir . | Где dir . | ||
+ | точка - это директория где и сам steam если вы хотите установить в другую папку то нужно указать ее, например dir team, dir gungame и тп. | ||
− | |||
Для тех кто устанавливает не Half-Life а Counter-Strike или другую игру | Для тех кто устанавливает не Half-Life а Counter-Strike или другую игру | ||
− | |||
В параметре -game нужно указать не valve а cstrike | В параметре -game нужно указать не valve а cstrike | ||
Теперь будут скачиваться все необходимые файлы для работы сервера. Как быстро это завершится зависит от интернет соединения. | Теперь будут скачиваться все необходимые файлы для работы сервера. Как быстро это завершится зависит от интернет соединения. | ||
− | |||
− | |||
После установки создаем необходимые для нормальной работы сервера папки | После установки создаем необходимые для нормальной работы сервера папки | ||
− | + | <pre>mkdir -p valve/SAVE | |
− | |||
mkdir -p platform | mkdir -p platform | ||
− | + | mkdir -p platform/SAVE</pre> | |
− | mkdir -p platform/SAVE | ||
− | |||
Даем права на запуск сервера | Даем права на запуск сервера | ||
− | + | <pre>chmod +x ./hlds_run</pre> | |
− | chmod +x ./hlds_run | ||
− | |||
− | |||
Запускаем наш сервер | Запускаем наш сервер | ||
− | + | <pre><nowiki>su hldm -c './hlds_run -game valve +ip (ip нашего сервера) +port 27015 +maxplayers 32 +map crossfire'</nowiki></pre> | |
Обязательно запускайте из-под пользователя hldm, если отсуствуют необходимые права, например запись в папку logs то даем. | Обязательно запускайте из-под пользователя hldm, если отсуствуют необходимые права, например запись в папку logs то даем. | ||
Строка 190: | Строка 145: | ||
Если вы все правильно сделали, то должно появится примерно следующее: | Если вы все правильно сделали, то должно появится примерно следующее: | ||
− | + | <pre>Auto detecting CPU | |
− | |||
Using Pentium II Optimised binary. | Using Pentium II Optimised binary. | ||
− | |||
Auto-restarting the server on crash | Auto-restarting the server on crash | ||
− | |||
Console initialized. | Console initialized. | ||
− | |||
Protocol version 48 | Protocol version 48 | ||
− | |||
Exe version 1.1.2.6/Stdio (cstrike) | Exe version 1.1.2.6/Stdio (cstrike) | ||
− | |||
Exe build: 16:56:12 Mar 8 2010 (4883) | Exe build: 16:56:12 Mar 8 2010 (4883) | ||
− | |||
STEAM Auth Server | STEAM Auth Server | ||
− | |||
Server IP address .... | Server IP address .... | ||
+ | couldn't exec listip.cfg | ||
+ | couldn't exec banned.cfg | ||
+ | Connection to Steam servers successful. | ||
+ | VAC secure mode is activated. | ||
+ | </pre> | ||
− | + | == Тонкая настройка сервера == | |
+ | Делаем сервер под себя | ||
− | + | Устанавливаем [[Metamod]] | |
− | + | Устанавливаем [http://www.amxmodx.org/ amxxmod] | |
− | + | Если сервер нужен не Steam то надо установить dproto | |
+ | Не забудьте настроить конфигурационный файл server.cfg | ||
− | + | После всего этого можно добавить amx плагинов на сервер | |
− | + | == Ошибки == | |
− | |||
Если появляются ошибки, то попробуйте проверить следующее: | Если появляются ошибки, то попробуйте проверить следующее: | ||
+ | Параметры запуска сервера, например +port 27015, попробуйте другой порт, может 27015 занят. | ||
+ | |||
+ | Ошибка: | ||
+ | |||
+ | <pre>[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway. | ||
+ | Unable to determine CPU Frequency. Try defining CPU_MHZ. | ||
+ | Segmentation fault</pre> | ||
− | + | Исправляем: | |
+ | <pre>export CPU_MHZ=2000</pre> | ||
+ | === Скрипты запуска === | ||
+ | Создаем скрипты, которые мы будем использовать для запуска сервера: | ||
+ | touch /opt/hldir/startHL | ||
+ | touch /opt/hldir/startHL.inet | ||
+ | Первый файл используется для автоподнятия сервера при падении, второй - для непосредственного запуска сервера. | ||
+ | echo '#!/bin/sh' >> /opt/hldir/startHL | ||
+ | echo '/opt/hldir/startHL.inet >/dev/null 2>&1&' >> /opt/hldir/startHL | ||
− | + | echo '#!/bin/sh' >> /opt/hldir/startHL.inet | |
+ | echo 'cd /opt/hldir/server' >> /opt/hldir/startHL.inet | ||
+ | echo './hlds_run +log on +maxplayers 16 +map crossfire +port 27015' >> /opt/hldir/startHL.inet | ||
− | + | Устанавливаем флаг исполнения: | |
+ | chmod +x /opt/hldir/startHL | ||
+ | chmod +x /opt/hldir/startHL.inet | ||
+ | === Тестовый запуск === | ||
+ | Для тестового запуска используйте файл startHL.inet. | ||
+ | ./startHL.inet | ||
+ | При этом сервер должен запуститься и у вас будет доступ к его консоли. Можете исполнить команду <code>status</code>, и убедиться, что он работает. | ||
− | + | Для остановки сервера используйте команду <code>exit</code>. | |
− | + | == Эксплуатация и поддержка работы сервера == | |
+ | Для поддержании работы сервера нам потребуется специальная утилита - '''screen'''. Подключаемся под root. | ||
+ | Проверяем наличие screen на ОС: | ||
+ | screen --help | ||
+ | Если выйдет ''unknown command'', то устанавлиавем эту утилиту: | ||
+ | apt-get install screen | ||
− | + | Теперь подключаемся под пользователем для нашего сервера: hldm. | |
+ | Запускаем screen: | ||
+ | screen | ||
+ | Запускаем сервер: | ||
+ | ./startHL.inet | ||
+ | Проверяем работоспособность сервера: | ||
+ | status | ||
− | + | Теперь можно выполнить logout, и наш сервер будет работать. | |
+ | Для просмотра текущего состояния сервера, снова подключаемся как hldm. | ||
+ | Выполняем: ''screen -ls'' | ||
− | + | Выйдет список сохраненных сеансов: | |
+ | There are screens on: | ||
+ | 1985.pts-0.vds77038 (06/19/2012 04:00:35 AM) (Detached) | ||
+ | 1 Sockets in /var/run/screen/S-hlserver. | ||
+ | Один из них - наш сервер. | ||
+ | Открываем сохраненную сессию: | ||
+ | screen -r 1985.pts-0.vds77038 | ||
− | + | И вот, у мы в консоли нашего сервера. | |
+ | Можно просто закрыть терминал и сервер продолжит работать. Для получения доступа к консоли сервера повторим процедуру описанную выше. | ||
− | + | == Ссылки == | |
− | + | * [http://metamod-p.sourceforge.net/ Страница Metamod-P На SourceForge] | |
− | + | * [http://amxmodx.org/ Официальный сайт AMX Mod X] | |
+ | * [http://metamod.org/ Официальный сайт MetaMod] | ||
+ | * [http://www.amxmod.net/ Официальный сайт AMX Mod] | ||
− | + | * [http://amxmodx.org/forums Форумы AMX Mod X] | |
+ | * [http://aghl.ru/forum/viewforum.php?f=19 Русское сообщество по скриптингу - AGHL] | ||
+ | * [http://gordonfreeman.hldm.org/ Плагины для Half-Life от GordonFreeman] |
Текущая версия на 12:05, 22 февраля 2013
Здесь представлена информация об установке серверов старым способом через HLDSUpdateTool. Получение актуальной версии сервера таким способом невозможно. Советуем воспользоваться установкой сервера через SteamCMD
Содержание
Общее о серверах
Операционной системой будет Ubuntu/Debian
Скачивать готовые сервера не советую по следующим причинам:
- Они могут содержать уязвимости из-за которыми могут воспользоваться недобросовестные игроки, что может привести к плачевным последствиям
- Готовые сервера собирают под свой вкус, который может не совпадать с вашим. В нем могут содержаться различные, ненужные, плагины, настройки и тп.
- Скачанные сервера содержат множество ошибок. Обычно спустя некоторое время начинают появляться ошибки типа "VALVE validation rejected"
- Да и вообще не известно что могут внедрить в готовый сервер.
Собрать свой сервер не на много труднее чем скачать готовый, вдобавок с ним будет меньше проблем в будущем.
Требования
Процессор: 1000 МГц и больше
Оперативная память: 128 Мб и больше
Место на жестком диске: 1.5 Гб и больше
Если система 64 битная то нужна библиотека поддержки 32 битных приложений
Ее можно установить введя команду
aptitude install lib32gcc1
Установка сервера
Для установки сервера понадобятся права суперпользователя.
Подключаемся по SSH. Если подключились не под пользователем root то выполняем следующую команду
sudo -s
Создаем директорию на сервере где будет находится наш HLDS
mkdir /opt/hldir
Безопасность сервера превыше всего. Ни в коем случае не нужно запускать наш будущий сервер через root. Нужно создать нового пользователя и дать ему ничтожные права, т.к. серверу HLDS много не нужно, в основном это запись логов, и чтение файлов.
Добавляем новую группу к которой будет принадлежать пользователь.
addgroup --system hldm
где hldm - имя будущей группы. От имени ничего не зависит, можно дать любое на свое усмотрение.
Добавляем пользователя hldm
adduser --system --home /opt/hldir --shell /bin/sh --ingroup hldm --disabled-password --disabled-login hldm
где --home /opt/hldir - домашняя директория с игрой --ingroup hldm - группа к которой принадлежит пользовель --disabled-login hldm - имя нашего пользователя
Переходим в нашу директорию чтобы скачать неободимые файлы в нее
cd /opt/hldir
Скачиваем с сайта стима необходимый инструмент для автоматического создания сервера.
wget http://storefront.steampowered.com/download/hldsupdatetool.bin
При отсутсвии утилиты wget, устанавливаем её:
apt-get install wget
Теперь даем необходимые для запуска права нашему файлу
chmod +x ./hldsupdatetool.bin
+x означает добро на выполнение файла -x файл выполнятся не будет
Запускаем наш инструмент:
su hldm -c './hldsupdatetool.bin'
Можно также воспользоваться командой, если предыдущая не удалась, в этом случае программа будет выполняться от суперпользователя
./hldsupdatetool.bin
После запуска мы увидим лицензионное соглашение. Вводим YES что соглашаемся и жмем ENTER.
В папке с игрой появится еще несколько файлов. На нужен файл steam для создания сервера. Даем ему нужные права.
chmod +x ./steam
И запускаем
su hldm -c './steam'
Видим примерно следующее сообщение
Checking bootstrapper version ... Getting version 45 of Steam HLDS Update Tool Downloading. . . . . . . . . . . . Steam Linux Client updated, please retry the command
Повторяем команду
su hldm -c './steam'
Видим теперь примерно следующее:
Checking bootstrapper version ... Getting version 45 of Steam HLDS Update Tool Downloading. . . . . . . . . . . .Steam Linux Client updated, please retry the command CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals. CAsyncIOManager: 21 single object sleeps, 0 multi object sleeps CAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps
Ну все, самое сложное в настройке сервера Half-Life завершилось. Теперь осталось скачать сам сервер и запустить.
Выполняем следующую команду
su hldm -c './steam -command update -game valve -dir .'
Или
./steam -command update -game valve -dir .
Где dir . точка - это директория где и сам steam если вы хотите установить в другую папку то нужно указать ее, например dir team, dir gungame и тп.
Для тех кто устанавливает не Half-Life а Counter-Strike или другую игру
В параметре -game нужно указать не valve а cstrike
Теперь будут скачиваться все необходимые файлы для работы сервера. Как быстро это завершится зависит от интернет соединения. После установки создаем необходимые для нормальной работы сервера папки
mkdir -p valve/SAVE mkdir -p platform mkdir -p platform/SAVE
Даем права на запуск сервера
chmod +x ./hlds_run
Запускаем наш сервер
su hldm -c './hlds_run -game valve +ip (ip нашего сервера) +port 27015 +maxplayers 32 +map crossfire'
Обязательно запускайте из-под пользователя hldm, если отсуствуют необходимые права, например запись в папку logs то даем.
Запускать сервер из-под пользователя root крайне не рекомендуется.
Если вы все правильно сделали, то должно появится примерно следующее:
Auto detecting CPU Using Pentium II Optimised binary. Auto-restarting the server on crash Console initialized. Protocol version 48 Exe version 1.1.2.6/Stdio (cstrike) Exe build: 16:56:12 Mar 8 2010 (4883) STEAM Auth Server Server IP address .... couldn't exec listip.cfg couldn't exec banned.cfg Connection to Steam servers successful. VAC secure mode is activated.
Тонкая настройка сервера
Делаем сервер под себя
Устанавливаем Metamod
Устанавливаем amxxmod
Если сервер нужен не Steam то надо установить dproto
Не забудьте настроить конфигурационный файл server.cfg
После всего этого можно добавить amx плагинов на сервер
Ошибки
Если появляются ошибки, то попробуйте проверить следующее: Параметры запуска сервера, например +port 27015, попробуйте другой порт, может 27015 занят.
Ошибка:
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway. Unable to determine CPU Frequency. Try defining CPU_MHZ. Segmentation fault
Исправляем:
export CPU_MHZ=2000
Скрипты запуска
Создаем скрипты, которые мы будем использовать для запуска сервера:
touch /opt/hldir/startHL touch /opt/hldir/startHL.inet
Первый файл используется для автоподнятия сервера при падении, второй - для непосредственного запуска сервера.
echo '#!/bin/sh' >> /opt/hldir/startHL echo '/opt/hldir/startHL.inet >/dev/null 2>&1&' >> /opt/hldir/startHL
echo '#!/bin/sh' >> /opt/hldir/startHL.inet echo 'cd /opt/hldir/server' >> /opt/hldir/startHL.inet echo './hlds_run +log on +maxplayers 16 +map crossfire +port 27015' >> /opt/hldir/startHL.inet
Устанавливаем флаг исполнения:
chmod +x /opt/hldir/startHL chmod +x /opt/hldir/startHL.inet
Тестовый запуск
Для тестового запуска используйте файл startHL.inet.
./startHL.inet
При этом сервер должен запуститься и у вас будет доступ к его консоли. Можете исполнить команду status
, и убедиться, что он работает.
Для остановки сервера используйте команду exit
.
Эксплуатация и поддержка работы сервера
Для поддержании работы сервера нам потребуется специальная утилита - screen. Подключаемся под root. Проверяем наличие screen на ОС:
screen --help
Если выйдет unknown command, то устанавлиавем эту утилиту:
apt-get install screen
Теперь подключаемся под пользователем для нашего сервера: hldm. Запускаем screen:
screen
Запускаем сервер:
./startHL.inet
Проверяем работоспособность сервера:
status
Теперь можно выполнить logout, и наш сервер будет работать. Для просмотра текущего состояния сервера, снова подключаемся как hldm. Выполняем: screen -ls
Выйдет список сохраненных сеансов:
There are screens on: 1985.pts-0.vds77038 (06/19/2012 04:00:35 AM) (Detached) 1 Sockets in /var/run/screen/S-hlserver.
Один из них - наш сервер. Открываем сохраненную сессию:
screen -r 1985.pts-0.vds77038
И вот, у мы в консоли нашего сервера. Можно просто закрыть терминал и сервер продолжит работать. Для получения доступа к консоли сервера повторим процедуру описанную выше.