Настройка Выделенного Сервера

Материал из ARK: Survival Evolved Wiki
Перейти к: навигация, поиск
Note.png Эту статью необходимо переписать в соответствии с принятыми стандартами качества.
Пожалуйста, помогите улучшить эту статью. Более подробную информацию можно найти на странице обсуждения.

Эту статью необходимо переписать в соответствии с принятыми стандартами качества..
Пожалуйста, помогите улучшить эту статью. Более подробную информацию можно найти на странице обсуждения.

На этой странице вы найдете информацию о установке и некоторых настроек для сервера ARK: SE.

Скрипты по запуску сервера на вашем железе вы найдете в разделе Dedicated Server Scripts.

Требование к ОС[править | править код]

Ваша ОС (операционная система) должна быть 64-битной (ShooterGameServer это 64-битный исполняемый файл и не будет работать на 32 битных Linux и Windows). Сервер был протестирован на Ubuntu 14.04[1] а так же поддерживается любая ОС Windows с предустановленным софтом, который вы найдете в _CommonRedist (DirectX и vcredist 2010-13).

Системные требования[править | править код]

Для запуска сервера требуется не менее 6ГБ ОЗУ. Потребление ОЗУ зависит от количества подключенных игроков. А так же зависит от настроек сервера и установленных модов.

В Windows пустой сервер ARK: SE использует от 4.5 ГБ, Linux от 4GB ОЗУ.

Сеть[править | править код]

Сервер прослушивает входящие соединения через порты, перечисленные ниже. Убедитесь, что ваша сетевая конфигурация разрешает входящие соединения с этими портами и направляет их на хост, на котором будет работать ваш выделенный сервер.

Порт Назначение
UDP 27015 Query порт для запросов Steam browser
UDP 7777 Основной игровой порт
UDP 7778 Порт для "сырых" сокетов UDP (Всегда больше на +1 чем основной)
TCP 27020 RCON порт, для удаленного администрирования (опционально)

Примечание: указаны порты по умолчанию, администратор сервера может указать любые порты.

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

Например:

Кластеры Основной порт "Сырой" UDP порт Query порт RCON порт
Сервер в кластере #1 7777 7778 27015 27020
Сервер в кластере #2 7779 7780 27016 27021
Сервер в кластере #3 7781 7782 27017 27022
Сервер в кластере #4 9999 10000 37015 37016

Примечание: Query порт не может быть указан в диапазоне 27020 и 27050 из-за того, что Steam использует эти порты.

Программное обеспечение[править | править код]

Windows[править | править код]

Microsoft Visual C++ 2013 - 2015 Redistributable (находится в папке _CommonRedist/vcredist).

DirectX (находится в папке _CommonRedist/DirectX).

Linux[править | править код]

64 битному Linux серверу необходимы 32 битные компоненты для установки и запуска steamcmd.

sudo apt-get install lib32gcc1

Выделенному серверу ARK: SE требуется glibc 2.14 или выше. В Ubuntu 14.04 (или новее) и Debian 8 (Jessie) эти компоненты установлены, а в старых версиях, например, Debian 7 (Wheezy), нет. Чтобы установить необходимую версию glibc на Debian 7 (Wheezy):

  1. Добавьте экспериментальные репозитории в /etc/apt/sources.list:
    # Экспериментальные/нестабильные (sid) репозитории
    deb http://ftp.debian.org/debian experimental main
    deb http://ftp.debian.org/debian sid main
  2. Обновите список доступных пакетов и установите экспериментальную библиотеку glibc, выполнив команду в консоли(добавьте в начало sudo если нет root привилегий):
    apt-get update
    apt-get -t experimental install libc6-dev

Примечание: данная процедура не обновит систему до Debian Unstable (sid); только glibc и все его зависимости(возможно это сломает все, лучше использовать новые ОС).

Для более старых дистрибутивов, которые не поддерживают glibc 2.14, почитайте документации к дистрибутиву или обратитесь за помощью на форумах.

Лимит открытых файлов[править | править код]

Примечание: Пропустите этот пункт, если вы используете systemd (описание найдете в разделе #Automatic Startup), лимит регулируется в конфиге systemd.

Что бы настроить лимит на открытые файлы, следуйте инструкциям:

  1. Добавьте строку в /etc/sysctl.conf:
    fs.file-max=100000

    затем выполните следующую команду, чтобы применить изменения(добавьте в начало sudo, если нет root привилегий)

    $ sysctl -p /etc/sysctl.conf
  2. Добавьте строки в /etc/security/limits.conf:
    *               soft    nofile          1000000
    *               hard    nofile          1000000
  3. Добавьте строку в /etc/pam.d/common-session:
    session required pam_limits.so

Внимание: без этих настроек игровой сервер может не запуститься. Если сервер запускается, но сильно нагружает процессор без использования как минимум 5,5 ГБ ОЗУ, сервер не смог открыть все необходимые ему файлы, и необходимо применить указанные выше изменение.

Tuned

это демон, который отслеживает использование системных компонентов и динамически настраивает системные параметры, в настоящее время только на RHEL7, CentOS7.x и Fedora.

Примечание: вам нужно настроить «пропускную способность». В противном случае все изменения в /etc/security/limits.conf будут игнорироваться!

SteamCMD[править | править код]

Выделенный сервер ARK: SE доступен на Windows и Linux. SteamCMD используется для загрузки сервера. Посетите страницу SteamCMD для уточнения детальной информации. Далее описываемые действия являются краткими инструкциями.

Установка сервера[править | править код]

  1. Скачайте и установить SteamCMD на ваш сервер
  2. Создайте папку для размещения файлов сервера. Требуется около 15+ ГБ дискового пространства.
  3. Запустите SteamCMD на своем сервере и используйте его для загрузки файлов сервера. (Удалите <> и замените их двойными кавычками, например, force_install_dir "C:\Program Files (x86)\Ark Server")
  4. Используйте идентификатор 376030 для ARK: Survival Evolved и 445400 для ARK: Survival of The Fittest
    Steam> login anonymous
    Steam> force_install_dir <install_dir>
    Steam> app_update 376030 validate
    Steam> exit


  5. или, запустите строку в командной строке(или создайте скрипт):
    steamcmd +login anonymous +force_install_dir <install_dir> +app_update 376030 +quit


    Замените <install_dir> на ранее созданную папку. Пример: Linux, /home/steam/servers/ark Windows, c:\arkserver.

  6. Создайте скрипт для запуска сервера с нужными вам опциями и настройками. Для удобства поместите его в ту же папку, куда были загружены файлы сервера. В Windows это командный файл .bat; в Linux это сценарий оболочки bash .sh. Примеры приведены ниже. Для обеих платформ параметры сервера указаны с одинаковым базовым синтаксисом. Для Windows, создайте start_server.bat: и разместите его в ВАША_ПАПКА_С_СЕРВЕРОМ/ShooterGame/Binaries/Win64/
    start ShooterGameServer.exe TheIsland?listen?SessionName=server_name?ServerPassword=join_password?ServerAdminPassword=admin_password?Port=port?QueryPort=query_port?MaxPlayers=max_players
    exit
    

    Для Linux, создайте server_start.sh: и разместите в ВАША_ПАПКА_С_СЕРВЕРОМ/ShooterGame/Binaries/Linux/

    #! /bin/bash
    ./ShooterGameServer TheIsland?listen?SessionName=server_name?ServerPassword=join_password?ServerAdminPassword=admin_password -server -log
    

    В Linux, после создания скрипта, сделайте его запускаемым:

    $ chmod +x server_start.sh

    В скриптах <server_name> это название сервера, отредактируйте по своему желанию, <join_password> укажите пароль для подключения к серверу и <admin_password> пароль для получения прав администратора сервера. Если для подключения к серверу пароль не требуется, удалите параметр?ServerPassword=.

  7. Скрипты готовы, можете запускать сервер! (Примечание: это лишь базовая информация, ознакомившись со всем параметрами запуска, вы можете творить "магию"! :) )

Установка бета версий[править | править код]

Иногда вы можете поучаствовать в тестировании бета версий.

Добавьте параметр -beta после app_update, например:

Steam> app_update 376030 -beta branchname validate

А так же запустите сервер с параметром -branchname.

Brachname это пример, название бета версии может быть другим.

Перенаправление портов и брандмауэр[править | править код]

Чтобы ваш сервер был виден в списках серверов Ark, так и в списках Steam, сделайте следующее:

Windows[править | править код]

  1. Если вы используете Windows 10, нажмите на пуск в левом нижнем углу и введите «Брандмауэр».
  2. После открытия брандмауэра нажмите «Дополнительные параметры» на левой панели.
  3. Нажмите «Правила для входящих подключений» на левой панели, затем нажмите «Создать правило ...» на правой панели.
  4. Когда откроется "Мастер создания правила для нового входящего подключения", выберите «Порт», затем «Далее».
  5. Теперь "Мастер создания правила" попросит вас, указать тип TCP или UDP порт. Выберите TCP. Затем убедитесь, что выбран «Определенные локальные порты», а затем укажите порт, который вы планируете открыть. (по умолчанию 27020 для RCON).
  6. Выберите «Разрешить подключение» и продолжите работу с мастером.
  7. Далее убедитесь что установлены все галочки на профилях.
  8. Введите имя правила (обязательно) и описание (необязательно).
  9. Повторите эти шаги, но теперь вместо TCP укажите UDP. Обязательно откройте порты для Steam Query - порт запроса (по умолчанию 27015) и игровой порт (по умолчанию 7777).
  10. Теперь у вас должно быть 3 ваших правила в разделе «Правила входящих подключений».
  11. Закройте окно дополнительных параметров брандмауэра и снова откройте брандмауэр Windows.
  12. Нажмите «Разрешение взаимодействия с приложениями или компонентами брандмауэра». Прокрутите вниз до ShooterGame. Убедитесь, что во всех приложениях с именем ShooterGame установлены флажки Личное и Публичное.
  13. Все готово, если порты не открылись, вернись и начните сначала.

OS X[править | править код]

Данные отсутствуют.

Linux[править | править код]

В большинстве Linux дистрибутивах брандмауэром является iptables. Для настройки правил будем использовать удобную утилиту UFW.

Все команды выполняем от root или с приставкой sudo. These open ports 7777 7778 and 27015 for UDP and optionally 27020 for TCP. You may want to adjust the list of ports you need by editing the "for port in..." line.

UFW[править | править код]

This script will open the ports in a way that will persist across reboots. UFW is the firewall on Ubuntu

 #!/bin/sh
 if [[ $EUID -ne 0 ]]; then
     echo "This must be run as root"
     exit 1
 fi
 for port in 7777 7778 27015; do
     ufw allow $port/udp
 done
 #Uncomment the next if you want to open the default rcon port
 #ufw allow 27020/tcp

FirewallD[править | править код]

This script will open the ports in a way that will persist across reboots. FirewallD is the firewall on RHEL7, CentOS7.x, and Fedora.

 #!/bin/sh
 if [[ $EUID -ne 0 ]]; then
     echo "This must be run as root"
     exit 1
 fi
 for port in 7777 7778 27015; do
     firewall-cmd --permanent --add-port $port/udp
 done
 #Uncomment the next if you want to open the default rcon port
 #firewall-cmd --permanent --add-port 27020/tcp
 firewall-cmd --reload

iptables[править | править код]

Keep in mind that this is only a temporary solution, and should only be used if neither of the other scripts apply for your system. To make it safe for reboots see the documentation of your distribution, how to add firewall ports to the existing configuration files - or how to add scripts to the boot process.

 #!/bin/sh
 if [[ $EUID -ne 0 ]]; then
     echo "This must be run as root"
     exit 1
 fi
 for port in 7777 7778 27015; do
   iptables -t filter -I INPUT -p udp --dport $port -j ACCEPT
 done
 #Uncomment the next if you want to open the default rcon port
 #iptables -t filter -I INPUT -p tcp --dport 27020 -j ACCEPT

Port Forwarding[править | править код]

There are many websites with tutorials on port forwarding. It is highly suggested you visit portforward.com, which offers tutorials for the majority of routers.

What ports work depends on you. Try forwarding 27015 as the port, and 27016 as the query port. 27015, 27016, and 7777 are the most common ports that work.

You MUST forward both TCP and UDP for your server to show up on any lists. You can make sure your ports are open by using the tool from portforward.com, that is, after you

Enter the ports that you have forwarded in the start_server.bat file you should have created earlier. For example,

start ShooterGameServer.exe TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password>?Port=7777?QueryPort=27015?MaxPlayers=<max_players></max_players>

Good luck, port forwarding is not very easy.

Finding Your Server in Lists[править | править код]

You can access your server via the Steam servers list or the Ark unofficial list. Just search for you name in the Ark list, or find your IP address in the Steam server list. It is best to add your servers IP:PORT to your Steam favourites and joining using the 'favourites' tab ingame. The ingame list has a limit on the servers it will show at one time. There is no guarantee your server will appear in the unofficial lists all the time.

Good luck!

Automatic Startup[править | править код]

Windows (via Scheduled Task)[править | править код]

You can configure a scheduled task to automatically run a batch file and start the dedicated server when the system boots.

  1. Open 'Task Scheduler'
  2. Create Basic Task
  3. The 'Create Basic Task Wizard' will appear, name the task whatever you want
  4. Set the Trigger to 'When the computer starts'
  5. Set the Action to 'Start a program'.
  6. You will need to browse to the program/script you wish to start (which is your .BAT batch file that starts your server).
  7. Depending on how your batch file works, you may need to set the "Start in (optional)" path, so the working directory of your batch file is correct. (If your batch file simply contains the "start ShooterGame ..." command, then you should set the "Start in (optional)" path of your scheduled task to the directory that contains the batch file)
  8. Before you create the scheduled task, click the checkbox to "open properties window" after it's created
  9. In the General Tab under the Security Options frame, you probably want to choose "Run whether user is logged on or not"
  10. I personally checked "run with highest privileges" just in case. This might not be necessary.

Linux (via systemd)[править | править код]

NOTE: systemd is not available for Ubuntu 14.04

As an alternative to using a script to launch the dedicated server manually, hosts running systemd can be configured to automatically start the dedicated server when the system boots. When using this method to manage the server, using GameUserSettings.ini to specify its settings is highly recommended. Refer to Admin Game Commands for more information.

  1. Create a file named /etc/systemd/system/ark-dedicated.service with the following contents:
    [Unit]
    Description=ARK: Survival Evolved dedicated server
    Wants=network-online.target
    After=syslog.target network.target nss-lookup.target network-online.target
    
    [Service]
    ExecStartPre=/home/steam/steamcmd +login anonymous +force_install_dir /home/steam/servers/ark +app_update 376030 +quit
    ExecStart=/home/steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=<session_name> -server -log
    WorkingDirectory=/home/steam/servers/ark/ShooterGame/Binaries/Linux
    LimitNOFILE=100000
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s INT $MAINPID
    User=steam
    Group=steam
    
    [Install]
    WantedBy=multi-user.target

    The ExecStart line specifies the command to run in order to start the service. It uses the same syntax as the startup examples shown above (in #Server Installation), with all the same arguments, but here it's important to adjust it to reflect the location of your ARK dedicated server on the host. Use the full path to the server executable, as shown above.

    Be sure to replace <SESSION_NAME> with the desired session name for your server as well.

    Finally, adjust the User and Group settings for your host. Without these two options in ark-dedicated.service, the dedicated server will be run as the root user. This is unsafe, as any vulnerability in the dedicated server could result in an attacker gaining remote superuser access on the host.

    It's recommended to run the dedicated server in an unprivileged account used solely for this purpose. In the example above, the user account "steam" is used. It's a member of the "steam" group, which is generally created along with the account.

    WorkingDirectory option is required to fix some issues. (For example not having WorkingDirectory set will fail to download mods (if using with -automanagedmods))

  2. To install systemd:
    apt-get install systemd systemd-sysv

    You will need to reboot after installation to initialize systemd.

    Activate the new service so it starts automatically when the host boots by running the following command via sudo or a root shell:

    # systemctl enable ark-dedicated

    After running this command, the dedicated server will automatically start when the host does. The command doesn't start the server immediately, so to launch the dedicated server after enabling it, run:

    # systemctl start ark-dedicated

After following these steps, your server should be up and running, and be automatically managed by the host on startup and shutdown.

Post-Setup Management[править | править код]

The server can be stopped by running:

# systemctl stop ark-dedicated

and its current status can be viewed (whether it's running or not) by running:

# systemctl status ark-dedicated

Note: If you need to update the ark-dedicated.service file (to change the dedicated server's startup options or to adjust its path), run the following command to ensure your changes are applied:

# systemctl daemon-reload

Updating[править | править код]

To update the server when a new version is released, repeat the same SteamCMD commands shown in the previous section. Be sure to use the correct set of commands for your platform. Refer to SteamCMD's documentation for details on automating this process.

If you use the systemd startup file you can easily integrate the update-mechanism to be run before every start of the game.

SteamCMD provides additional tools to make installation and updates easier and more seamless.

Console Commands[править | править код]

While running the game, the command console can be accessed with either the [~] (tilde) or [TAB] keys (depending on game version, default configuration and your keyboard layout). Once in the console, to activate administrator commands, enter:

enablecheats <admin_password></admin_password>

Replace <admin_password> with the server's administrator password.

Refer to Admin Game Commands for a list of available commands.

If the console can't be opened in-game, exit the game, open the game's DefaultInput.ini file (located in your Steam library in the folder named steamapps\common\ARK\ShooterGame\Config) with a text editor and locate the line (near the bottom of the file) that reads:

;+ConsoleKeys=Tab

Remove the semicolon (;), changing the line to read:

+ConsoleKeys=Tab

Save the file and launch the game. The console should be accessible.

Backing Up Server Data[править | править код]

To make a backup of the server data, simply copy the folder named ShooterGame/Saved (and his content) to the desired backup location. This folder contains all tribe, player and world data for the server. Performing a backup is recommended before updating a server to a new release.

Troubleshooting[править | править код]

Server Loses Characters or World Data Upon Restart[править | править код]

If your server isn't retaining characters or world data when it's restarted, it may not have full access to the folder where it's installed.

The first time the server is run, it should create a folder named ShooterGame/Saved containing various configuration and save files. If the server has run at least once but hasn't created this folder, it may not have been able to create new folders and files there. Verify that the folder where the server is installed is readable and writable by the user account that actually runs the server. (For Windows servers, check the status of User Account Control)

The server software, by default, is set-up to automatically save world data every 15 minutes. If your server crashes before the first 15 minutes are up, you will not have any data saved.

Linux Server Exhibits High CPU Usage and Low Memory Usage (Below 1GB)[править | править код]

This can occur when the server can't open all the files it needs due to an insufficient open files limit on the host. Refer to the Linux section above and follow the procedure to increase the host's open files limit.

Tool - ARK Server Organiser[править | править код]

You can also use this tool to manage your server when it is installed: http://steamcommunity.com/sharedfiles/filedetails/?id=951274291

ARKSO (v2.1).png
ARKSO NM.png

This freeware give an interface for your ARK Dedicated Server. It works with SteamCMD.

Extra :

  • AutoUpdate: You can choose to update and restart the server everyday to keep your server up to date. You just have to check the checkbox and to choose the update time.    
  • Hide Server Window: Allow you to hide the black screen of the server (Screenshot n°4). You can also close the app, it will send it in notification area and the server will still run. This function need to be set before launching the server.
  • Get Public Server Address IP: You can now have the full address quicly and easily to share it with friends for example.
  • NotifyIcon Settings: Allow you to Turn ON or Turn OFF Server from NotifyIcon without any visual form. You can also have access to 'Get IP Address' function.
  • Portable Application: Quick start, low size, no installation required.
  • Night Mode: Cool for night using. It doesn't hurt your eyes anymore.
  • Anti-hibernation: Your machine will not sleep or hibernate when server is running.
  • Server Backup: You can save your server's data.
  • SteamCMD packed-in: You can install SteamCMD with ARKSO

Notes[править | править код]


References[править | править код]

External Links[править | править код]