Natural Selection 2

Natural Selection 2

Not enough ratings
NS2 server на Linux
By LolkaBot ☭
Поднимаем игровой сервер Natural Selection 2 на Linux
   
Award
Favorite
Favorited
Unfavorite
Преамбула
Тема не нова. Немного погуглив так и не нашел внятного мануала. Где то ошибки, где то не точности и тп. Посему решил немного обобщить все это безобразие.
и так к делу
Расматривать установку игрового сервера NS2 будем на примере Debian/Ubuntu.
Установку, настройку, патчи ядра и прочие вкусности работы с операционой системой мы в этой статье рассматривать не будем. На эту тему написано 100500 достойных мануалов.
И, ах, да, вы знаете, что такое ssh, консоль & etc.

1. Рекомендовал бы создать пользователя от его имени и будет работать наш сервер. Так секьюрней =)
sudo useradd имя_пользователя
Опция -d используется для указания домашней папки пользователя, опция -m укажет на то что папку нужно создать немедленно:
sudo useradd -d /home/имя_пользователя -m /home/имя_пользователя имя_пользователя
Можно использовать опцию -p для указания пароля, но безопаснее будет воспользоваться командой passwd:
sudo passwd имя_пользователя
Теперь у нас есть пользователь и далее будем работать от его имени.

2. Теперь скачиваем SteamCMD и распаковываем
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz && tar -xvzf steamcmd_linux.tar.gz
Для файла steamcmd.sh нужно установить права на выпонение и запустить.
chmod +x steamcmd.sh
./steamcmd.sh
После чего нужно зарегестрироваться в стим ( ввести логин и пароль).
Указать папку в которой будет жить наш сервер
force_install_dir ns2server
И выкачать сам сервер, займет какое то время.
app_update 4940 validate

3. Пока скачивается сервер игры, делаем простенький скрипт запуска сервера:
#!/bin/bash echo -n "Killing any previous servers: " killall server_linux32 sleep 2 echo -n "Starting NS2 Server: " cd /home/наш-юзер/ns2server screen -A -m -d -S ns2 ./server_linux32 -name "имя-сервера" -webadmin -webdomain 0.0.0.0 -webuser admin -webpassword 12345 -webport 8888 -map ns2_biodome -ip 0.0.0.0 -port 27015 -limit 16 -logdir /home/наш-юзер/ns2server/logs -config_path /home/наш-юзер/ns2server/config cd /home/наш-юзер/ns2server echo "Attaching to server console... " screen -x ns2
Что делает скрипт ?! Убивает процесс server_linux32 (это наш сервер) если он был запущен до этого, ждет и после чего стартует наш игровой сервер с заданными параметрами.
Кладем наш скриптик в папку с сервером, в нашем случае это ns2server и разрешаем его выполнять.

4. Наслаждаемся новым сервером =)
Вот вобщем то и всё, один из самых простых способов.
Конечно же, скрипт можно усложнить и избавить себя от лишних манипуляций.
Так же стоит обратить внимание на папку с логами сервера, их будет пладиться много, логично организовать ротацию логов... Что то типо раз в три дня архиввируем, кидаем куда ни буть в хранилище и через месяц удаляем. А ще бы неплохо бы что бы сервер скидывал нам критичную инфу в jabber =)
Но об этом в другой раз =))
и так к делу часть 2
Вариант второй.
На Github`e есть скриптик установки, обновления и управления сервером NS2.
https://github.com/dgibbs64/linuxgameservers/blob/master/NaturalSelection2/ns2server

Ход действий как обычно:
  • Создать пользователя
  • Разрешить выполнение скрипта

Несколько замечаний по настройке скрипта, его нужно немного отредактировать:
Меняем логин и пароль для стима.
# Steam login steamuser="username" steampass="password"

Настройка ирового сервера:
# Start vars servername="NS2 Server" defaultmap="ns2_summit" port="27015" webdomain="127.0.0.1" webadminuser="admin" webadminpass="password" webadminport="8080" maxplayers="18" password=""

После чего устанавливаем сервер игры NS2
./ns2server install

Как пользоваться скриптом:

Старт сервера ./ns2server start Стоп сервера ./ns2server stop Рестарт сервера ./ns2server restart Обновление сервера ./ns2server update
При первом запуске сервера возможен "провал" скорее всего это вызванно отсутствием терминального мультиплексора, данный скрипт использует его в работе, по этому его нужно установить:
(su) sudo apt-get install tmux
Скрипт прост и понятен ответив на пару вопросов вы получите готовый игровой сервер.
Более подробно можно прочитать на сайте автора: http://danielgibbs.co.uk/scripts/ns2server
6 Comments
Sytch Jul 15, 2014 @ 8:59am 
tmux полностью заменяет скрин и добавляет много полезных фишек. Не вижу смысла использовать скрин где-либо, кроме как в легаси-скриптах.
LolkaBot ☭  [author] Jul 15, 2014 @ 8:51am 
screen для одного скрипта, а tmux для другова скрипта. угу пропустил запуск ))
Sytch Jun 29, 2014 @ 11:21am 
Ну и screen и tmux — совершенно разные программы, и в скрипте использован именно screen.
Sytch Jun 29, 2014 @ 11:20am 
>Для файла steamcmd.sh нужно установить права на выпонение и запустить.
Собственно, запуск пропущен, только установка x-бита есть.
Cr0n Mar 10, 2014 @ 1:34pm 
хм
archimed.shaman Mar 7, 2014 @ 8:53am 
У меня под линуксом _клиент_ только недавно более-менее стал работать без падений :) И то, если стим запущен с LANG=C