Dedicated server half life 2 linux

Open Fortress: Linux Dedicated Server Setup


What? No Linux guide? No worries, I’ve got you covered.This guide assumes you have some knowledge with Linux and server hosting, but if you don’t, it’s fine too.If you have any issues, ask on the official Open Fortress discord server!

    On 64-bit Ubuntu / Debian based distros run:

⁠ ⁠ * Use dnf instead of yum on Fedora/RHEL.

On Arch Linux run:

1. Install SteamCMD for Linux

For consistency’s sake, we’ll be working in a directory named ofserver in the home folder of a user named steam. You can folllow exactly what we do here or rename commands and paths accordingly to your setup.

Create a new directory named ofserver in your user’s home directory and go into it

mkdir ofserver && cd ofserver

Next, download the linux SteamCMD Tar archive and unpack it

You can now run steamcmd with

And exit it with

2. Install TF2 and Source SDK 2013

For automation and ease of use’s sake, we’ll be using auto-update scripts to ease the updating process.

While still in the /ofserver/ directory, create a file named fullupdate.txt with the following contents:

And now to install the necessary Team Fortress 2 files and Source SDK 2013 MP files using that newly created script, run that script in steamcmd once with the following command:

This will install the necessary files in directories named /Team Fortress 2 Dedicated Server/ and /sdk/ within the /ofserver/ directory.

3. Install Open Fortress

Go into the folder named /sdk/ from the previous step, and run this one-liner:

Go into the /sdk/ directory and from there go into the /bin/ directory.
And paste & run these commands:

And go to the /sdk/open_fortress/bin directory and run this command:

This will create necessary file links for files that don’t exist but should be there.

And you’re done! How to start the server

And that’s all. Wasn’t so hard, was it?
Now, how to run a server.

Create a script to run your server in the /ofserver/sdk/ directory, name it something like Here’s a sample server run script.

Make it executable with

Change the launch parameters of the script (whatever is after “./srcds_run”) to your heart’s content. Remember to keep -console -game open_fortress, though.

Run the newly created script (prefferably in a screen – read below) to start the server.

It’s recommended to run the server in a screen session. Screen is a utility that allows you to run things in “virtual” consoles, so that you can easily attach or detach them, allowing you to run the server without having a terminal open all the time.

To start a new screen session, just type

Your new screen session will be automatically “attached”.
To detach from the screen session, press CTRL+A and then D. Detach before closing a terminal, otherwise your server will die.
To reattach a screen session, type

To kill a screen session, just press CTRL+D while in the screen.

Auto updating

Since Open Fortress is in rapid development and updates are made every day, it’s important to keep your gameserver updated, otherwise players who update their local copies will eventually encounter problems or won’t be able to play on your server at all.

To update TF2 and and SDK 2013 automatically, place the following in your launch parameters in /ofserver/sdk/

For Open Fortress content however you’ll need something more.
Here’s a script that will update just Open Fortress in the setup from this guide. Place it in the /ofserver/ directory and name it and make it executable (with chmod +x)

Now, this script won’t run itself, so run

Pick your editor of choice (if it prompts you) and at the end of the file place the following:

This will check every day at 5AM for an update and restart the server.

Server settings, configuration

Whatever comes out of the box doesn’t have to be your server forever! Open Fortress and the Source engine have a LOT of server settings that can change how your server works, what gamemodes it runs etc.

To change them, create a file named server.cfg if it doesn’t exist in the

/ofserver/sdk/open_fortress/cfg/ directory and edit it with your custom Convars (Console Variables), which control the server’s functionality.
A few notable Convars:

More Open Fortress specific settings have already been documented in the Windows guide, starting on page 16 in This Document []

There are also launch parameters, settings that only can be applied on server start. They are the settings with dashes (-) or pluses (+) visible after
In your file. Change any launch parameters over there.
Launch parameters with pluses (+) instead of dashes (-) are console commands that will be executed on server start but can also be run while the server is running. Parameters with minuses cannot.
Most popular launch parameters:


    I cannot connect to my server, and the server is invisible in the game browser.
    There are so many possible causes for this, ranging from Source engine BS, ISP BS and bad router BS that it’s best you ask for help on the official Open Fortress discord.

I can connect to my server, but the server is invisible in the game browser.
Try the following in server console:

in console, replacing the map with your map and IP of course.
If the issue is still not fixed, contact the OF Discord

[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
This doesn’t cause a crash. Safe to ignore.

“Warning: /home/steam/ofserver/sdk/core is truncated: expected core file size”, followed by a crash.
Your gameinfo.txt is broken. Use the vanilla one, or if you’re using different folder name for TF2, edit properly. Ask in discord for help.

dlopen failed trying to load: /home/ubuntu/.steam/sdk32/
This should be safe to ignore and shouldn’t crash, but if you feel better not seeing the error, link over the binary to that path.

(if sdk32 doesn’t exist in .steam, create it)


Установка серверов через SteamCMD (Linux)



В сравнении со старым HLDSUpdateTool типом установки серверов SteamCMD мне показался более удобным. Во многом упрощен режим установки, благодаря этому менее опытные пользователи смогут быстрее установить сервер Half-Life или Counter-Strike.

Для создания серверов Half-Life и Counter-Strike в SteamCMD нужно проделать одни и те же действия.


Системные требования для создания сервера Half-Life 1 и Counter-Strike 1.6

Процессор: 1000 МГц и больше

Оперативная память: 128 Мб и больше

Место на жестком диске: 1.5 Гб и больше

Если система 64 битная то нужна библиотека поддержки 32 битных приложений
Ее можно установить введя команду

Создание сервера

Скачиваем архив с утилитой SteamCMD

Удаляем архив, т.к. он нам больше не понадобится:

Запускаем sh файл

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

Теперь нужно войти в аккаунт Steam

Если у Вас включен SteamGuard, то на электронную почту придет сообщение с кодом подтверждения, его нужно ввести.

Для скачивания серверов можно не входить в свой аккаунт Steam, а воспользоваться анонимом.

После этого указываем директорию, в которую нужно устанавливать сервер.

где hl — папка в которой будет находится сервер

Приступаем к установке самого сервера

где 90 — steam_app_id нашей игры, в данном случае это Half-Life Dedicated Server


Инсталяция сервера под Linux

Добро пожаловать в руководство по установке выделенного сервера Linux. Здесь вы найдете подробную информацию о запуске Source Dedicated Server под Linux. Мы полагаем, что у вас уже имеется достаточно знаний для работы с операционной системой Linux.

После запуска /hldsupdatetool.bin программа попросит вас согласиться с условиями лицензионного соглашения, просто напишите «yes» для продолжения работы.

1. Начнем с HLDSUpdatetool

Прежде всего нам понадобится небольшая програмка от Valve — HLDSUpdatetool.

Скачиваем ее, сохраняем в какую-нибудь временную директорию на сервере (например srcds_l); запускаем со следующими параметрами:

mkdir srcds_l
cd srcds_l
chmod +x hldsupdatetool.bin

Будет скачана новая версия HLDSUpdateTool. По завершению процесса вы вернетесь в консоль управления.

2. Скачиваем сервер

Теперь мы можем начать скачку файлов. Этот процесс может занять до нескольких часов в зависимости от скорости интрнет-соединения вашего сервера.

./steam -command update -game «Counter-Strike Source» -dir.

Если вы хотите установить сервер Half-Life 2 Deathmatch, используйте «hl2mp» для выбора игры. Можете пойти сделать себе чашечку кофе.

3. Запуск сервера

Сначала отредактируйте (или создайте) srcds_l/cstrike/cfg/server.cfg так как вам нужно.

Теперь мы готовы к запуску сервера. Наберите в консоли:

./srcds_run -console -game cstrike +map de_dust -maxplayers 16 -autoupdate

нажмите «Enter» (используйте «-game hl2mp» для сервера HL2DM). Ваш srcds запущен.

Xtras. Запускаем сервер с помощью скриптов

Мы создадим скрипт, который позволит запускать srcds в фоновом режиме. Создайте файл под названием «» с таким текстом внутри:

echo «Starting Cs:Source Server»
sleep 1
screen -A -m -d -S css-server ./srcds_run -console -game cstrike +map de_dust +maxplayers 16 -autoupdate

Сохраните файл и задайте chmod для запуска:

Для старта своего сервера просто запустите «». Ваш сервер запустится в фоновом режиме, для того, чтобы вернуть вывод на экран напишите:

Если вы захотите вернуть сервер в фоновый режим, нажмите ctrl+a+d.


Установка серверов HL (Linux)

Здесь представлена информация об установке серверов старым способом через HLDSUpdateTool. Получение актуальной версии сервера таким способом невозможно. Советуем воспользоваться установкой сервера через SteamCMD


Общее о серверах

Операционной системой будет Ubuntu/Debian

Скачивать готовые сервера не советую по следующим причинам:

  • Они могут содержать уязвимости из-за которыми могут воспользоваться недобросовестные игроки, что может привести к плачевным последствиям
  • Готовые сервера собирают под свой вкус, который может не совпадать с вашим. В нем могут содержаться различные, ненужные, плагины, настройки и тп.
  • Скачанные сервера содержат множество ошибок. Обычно спустя некоторое время начинают появляться ошибки типа «VALVE validation rejected»
  • Да и вообще не известно что могут внедрить в готовый сервер.

Собрать свой сервер не на много труднее чем скачать готовый, вдобавок с ним будет меньше проблем в будущем.


Процессор: 1000 МГц и больше

Оперативная память: 128 Мб и больше

Место на жестком диске: 1.5 Гб и больше

Если система 64 битная то нужна библиотека поддержки 32 битных приложений
Ее можно установить введя команду

Установка сервера

Для установки сервера понадобятся права суперпользователя.

Подключаемся по SSH. Если подключились не под пользователем root то выполняем следующую команду

Создаем директорию на сервере где будет находится наш HLDS

Безопасность сервера превыше всего. Ни в коем случае не нужно запускать наш будущий сервер через root. Нужно создать нового пользователя и дать ему ничтожные права, т.к. серверу HLDS много не нужно, в основном это запись логов, и чтение файлов.

Добавляем новую группу к которой будет принадлежать пользователь.

где hldm — имя будущей группы. От имени ничего не зависит, можно дать любое на свое усмотрение.

Добавляем пользователя hldm

где —home /opt/hldir — домашняя директория с игрой —ingroup hldm — группа к которой принадлежит пользовель —disabled-login hldm — имя нашего пользователя

Переходим в нашу директорию чтобы скачать неободимые файлы в нее

Скачиваем с сайта стима необходимый инструмент для автоматического создания сервера.

При отсутсвии утилиты wget, устанавливаем её:

Теперь даем необходимые для запуска права нашему файлу

+x означает добро на выполнение файла -x файл выполнятся не будет

Запускаем наш инструмент:

Можно также воспользоваться командой, если предыдущая не удалась, в этом случае программа будет выполняться от суперпользователя

После запуска мы увидим лицензионное соглашение. Вводим YES что соглашаемся и жмем ENTER.

В папке с игрой появится еще несколько файлов. На нужен файл steam для создания сервера. Даем ему нужные права.

Видим примерно следующее сообщение

Видим теперь примерно следующее:

Ну все, самое сложное в настройке сервера Half-Life завершилось. Теперь осталось скачать сам сервер и запустить.

Выполняем следующую команду

Где dir . точка — это директория где и сам steam если вы хотите установить в другую папку то нужно указать ее, например dir team, dir gungame и тп.

Для тех кто устанавливает не Half-Life а Counter-Strike или другую игру В параметре -game нужно указать не valve а cstrike

Теперь будут скачиваться все необходимые файлы для работы сервера. Как быстро это завершится зависит от интернет соединения. После установки создаем необходимые для нормальной работы сервера папки

Даем права на запуск сервера

Запускаем наш сервер

Обязательно запускайте из-под пользователя hldm, если отсуствуют необходимые права, например запись в папку logs то даем.

Запускать сервер из-под пользователя root крайне не рекомендуется.

Если вы все правильно сделали, то должно появится примерно следующее:

Тонкая настройка сервера

Делаем сервер под себя

Если сервер нужен не Steam то надо установить dproto

Не забудьте настроить конфигурационный файл server.cfg

После всего этого можно добавить amx плагинов на сервер


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

Скрипты запуска

Создаем скрипты, которые мы будем использовать для запуска сервера:

Первый файл используется для автоподнятия сервера при падении, второй — для непосредственного запуска сервера.

Устанавливаем флаг исполнения:

Тестовый запуск

Для тестового запуска используйте файл startHL.inet.

При этом сервер должен запуститься и у вас будет доступ к его консоли. Можете исполнить команду status , и убедиться, что он работает.

Для остановки сервера используйте команду exit .

Эксплуатация и поддержка работы сервера

Для поддержании работы сервера нам потребуется специальная утилита — screen. Подключаемся под root. Проверяем наличие screen на ОС:

Если выйдет unknown command, то устанавлиавем эту утилиту:

Теперь подключаемся под пользователем для нашего сервера: hldm. Запускаем screen:

Проверяем работоспособность сервера:

Теперь можно выполнить logout, и наш сервер будет работать. Для просмотра текущего состояния сервера, снова подключаемся как hldm. Выполняем: screen -ls

Выйдет список сохраненных сеансов:

Один из них — наш сервер. Открываем сохраненную сессию:

И вот, у мы в консоли нашего сервера. Можно просто закрыть терминал и сервер продолжит работать. Для получения доступа к консоли сервера повторим процедуру описанную выше.


Читайте также:  Linux set current directory
Поделиться с друзьями