Вот я набрался опыта (может и небольшого) в создании сервера на Линуксе и теперь расскажу вам, как это делать.
Сам процесс установки ОС я не буду говорить, ищите сами, но скажу: в этом нет ничего сложного, просто будет слегка непривычно. Но все же не каждому дано работать с Линуксом. если Вы сомневаетесь, что сможете работать с этой ОС, то можете на виндовс установить
Мы будем рассматривать пример Ubuntu. Напоминаю, что Debian является "основателем" этой оси, и существенной разницы между ними нет. Лично я использую Ubuntu 9.10.
Итак, начнём!
Установка платформы сервера и запуск
Практически все это время мы будем работать с командной строкой Линукса.
Открываем "Терминал" ("Приложения" - "Стандартные" - "Терминал").
Сначала создадим папку, например hlds, где будет наш сервер (обычно ее создают в домашней папке пользователя (в Линуксе другая структура папок)) и заодно перейдём в нее:
1) mkdir /home/datex/hlds/
2) cd /home/datex/hlds/
2) cd /home/datex/hlds/
mkdir - make directory (создать папку)
cd - change directory (сменить локацию - тобиш перейти в указанную папку)
datex - имя пользователя
Имейте ввиду, что в Линуксе имеет значение регистр, по-этому советую всегда использовать маленькие буквы в названии файлов и папок, дабы не запутаться.
теперь необходимо скачать Linux HLDSUpdateTool:
wget https://storefront.steampowered.com/download/hldsupdatetool.bin
wget - "достать из WWW"
Если Вы сделали правильно, то увидите в консоли следующее:
--08:57:14-- https://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]
=> `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
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% .\valve\server.cfg
98.12% .\valve\skill.cfg
98.12% .\valve\spraypaint.wad
98.12% .\valve\steam.inf
98.12% .\valve\steam_appid.txt
98.12% .\valve\valve.rc
98.14% .\valve\valvecomm.lst
100.00% .\valve\xeno.wad
Connection Reset
real 114m3.697s
user 0m4.230s
sys 0m1.300s
Updating Installation
-----------------------------------
98.10% .\valve\server.cfg
98.12% .\valve\skill.cfg
98.12% .\valve\spraypaint.wad
98.12% .\valve\steam.inf
98.12% .\valve\steam_appid.txt
98.12% .\valve\valve.rc
98.14% .\valve\valvecomm.lst
100.00% .\valve\xeno.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
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.
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
#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
Далее, чтоб не выполнять множество команд, для запуска сервера через командную строку, можно создать еще один скрипт в папке /home/datex/:
#!/bin/bash
cd /home/datex/hlds_cs/
./start.sh
screen -r csserv
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 https://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
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 https://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 https://sunet.dl.sourceforge.net/project/amxmodx/Counter-Strikedon/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
2) tar -xzvf ./amxmodx-1.8.1-base.tar.gz -C ./cstrike/
3) rm ./amxmodx-1.8.1-base.tar.gz && wget https://sunet.dl.sourceforge.net/project/amxmodx/Counter-Strikedon/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
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, то почему бы не воспользоваться этим шансом?
Вы уже научились способу быстрой
Заходим в папку /var/ftp/ и создаём там такую же структуру файлов и папок, как указано в той статье.
Теперь попробуем проверить. Надо зайти через браузер и Ввести в браузере ftp://ваш_внешний_айпи, а там, думаю, Вы сами поймёте.
Если у Вас получилось, то в server.cfg вводим:
sv_allowdownload 1
sv_downloadurl ftp://внешний_айпи:21
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 за просветление.
Источники использованы:
https://www.loewa.ru/statia/49-hldsserver.html
https://ubuntueasy.com/servery/bystraja-ustanovka-ftp-servera
https://c-s.net.ua/forum/topic11712.html
Автор: DaTeX
Убедительная просьба: при копировании статьи, указывайте автора, ведь что в этом плохого есть? Уважайте чужой труд, и тогда Вас будут уважать!
Желаю удачи!