Как установить игровой сервер SAMP на VDS

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск

SAMP на VDS Linux

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка Wine

Установка Wine

1. Обновите систему:

sudo apt update

2. Установите Wine:

sudo apt install -y wine

3. Проверьте версию Wine:

wine --version

Настройка Wine

1. Настройте Wine для 32-битных приложений:

export WINEARCH=win32
winecfg

2. Установите необходимые компоненты:

wine msiexec /i vcredist_x86.exe

3. Создание пользователя для SAMP

Создание пользователя

1. Создайте пользователя для SAMP:

sudo useradd -m -s /bin/bash samp

2. Установите пароль:

sudo passwd samp

3. Создайте директорию для сервера:

sudo mkdir -p /opt/samp
sudo chown samp:samp /opt/samp

4. Переключитесь на пользователя samp:

sudo su - samp

4. Установка SAMP сервера

Скачивание SAMP

1. Перейдите в директорию сервера:

cd /opt/samp

2. Скачайте SAMP сервер:

wget https://files.sa-mp.com/samp037svr_R2-2-1.tar.gz

3. Распакуйте архив:

tar -xzf samp037svr_R2-2-1.tar.gz

4. Переместите файлы:

mv samp03/* .
rmdir samp03

Настройка сервера

1. Отредактируйте server.cfg:

nano server.cfg

2. Настройте основные параметры:

echo "server.cfg" > server.cfg
echo "echo Executing SA-MP 0.3.7 Server" >> server.cfg
echo "lanmode 0" >> server.cfg
echo "rcon_password your_rcon_password" >> server.cfg
echo "maxplayers 50" >> server.cfg
echo "port 7777" >> server.cfg
echo "hostname SA-MP 0.3.7 Server" >> server.cfg
echo "gamemode0 grandlarc 1" >> server.cfg
echo "filterscripts gl_actions gl_property gl_realtime gl_mapicon gl_filemanager gl_property gl_realtime gl_mapicon gl_filemanager" >> server.cfg
echo "plugins crashdetect.so streamer.so sscanf.so" >> server.cfg
echo "announce 1" >> server.cfg
echo "query 1" >> server.cfg
echo "weburl www.sa-mp.com" >> server.cfg
echo "onfoot_rate 40" >> server.cfg
echo "incar_rate 40" >> server.cfg
echo "weapon_rate 40" >> server.cfg
echo "stream_distance 300.0" >> server.cfg
echo "stream_rate 1000" >> server.cfg
echo "maxnpc 0" >> server.cfg
echo "logtime 1" >> server.cfg
echo "language English" >> server.cfg

5. Установка плагинов

Скачивание плагинов

1. Создайте директорию для плагинов:

mkdir -p plugins

2. Скачайте необходимые плагины:

wget https://github.com/Zeex/samp-plugin-crashdetect/releases/latest/download/crashdetect.so -O plugins/crashdetect.so
wget https://github.com/samp-incognito/samp-streamer-plugin/releases/latest/download/streamer.so -O plugins/streamer.so
wget https://github.com/Y-Less/sscanf/releases/latest/download/sscanf.so -O plugins/sscanf.so

3. Установите права на плагины:

chmod +x plugins/*.so

6. Создание скрипта запуска

Создание скрипта

1. Создайте скрипт запуска:

nano start.sh

2. Добавьте содержимое:

\#!/bin/bash

\# Настройка Wine
export WINEARCH=win32
export WINEPREFIX=/opt/samp/.wine

\# Запуск SAMP сервера
wine samp-server.exe

3. Сделайте скрипт исполняемым:

chmod +x start.sh

Альтернативный скрипт с мониторингом

1. Создайте улучшенный скрипт:

nano start-monitored.sh

2. Добавьте содержимое:

\#!/bin/bash

\# Настройка Wine
export WINEARCH=win32
export WINEPREFIX=/opt/samp/.wine

\# Функция для перезапуска сервера
restart_server() {
    echo "Restarting SAMP server..."
    pkill -f samp-server.exe
    sleep 5
    wine samp-server.exe &
    echo "SAMP server restarted"
}

\# Запуск сервера
wine samp-server.exe &

\# Мониторинг процесса
while true; do
    if ! pgrep -f samp-server.exe > /dev/null; then
        echo "SAMP server crashed, restarting..."
        restart_server
    fi
    sleep 30
done

3. Сделайте скрипт исполняемым:

chmod +x start-monitored.sh

7. Настройка systemd сервиса

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

1. Создайте systemd сервис:

sudo nano /etc/systemd/system/samp.service

2. Добавьте содержимое:

[Unit]
Description=SA-MP Server
After=network.target

[Service]
Type=simple
User=samp
Group=samp
WorkingDirectory=/opt/samp
Environment=WINEARCH=win32
Environment=WINEPREFIX=/opt/samp/.wine
ExecStart=/opt/samp/start.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

3. Перезагрузите systemd:

sudo systemctl daemon-reload

4. Включите и запустите сервис:

sudo systemctl enable samp
sudo systemctl start samp

Управление сервисом

1. Запуск сервера:

sudo systemctl start samp

2. Остановка сервера:

sudo systemctl stop samp

3. Перезапуск сервера:

sudo systemctl restart samp

4. Проверка статуса:

sudo systemctl status samp

5. Просмотр логов:

sudo journalctl -u samp -f

8. Настройка файрвола

Настройка UFW

1. Разрешите порт SAMP:

sudo ufw allow 7777/udp

2. Проверьте статус:

sudo ufw status

Настройка iptables

1. Разрешите порт через iptables:

sudo iptables -A INPUT -p udp --dport 7777 -j ACCEPT

2. Сохраните правила:

sudo iptables-save > /etc/iptables/rules.v4

9. Управление сервером

RCON команды

1. Подключение к RCON:

telnet localhost 7777

2. Основные команды:

rcon_password your_rcon_password
say Hello players!
kick 0
ban 192.168.1.100
gmx

Мониторинг игроков

1. Проверка подключенных игроков:

netstat -an | grep :7777

2. Просмотр логов сервера:

tail -f /opt/samp/server_log.txt

10. Резервное копирование

Создание скрипта бэкапа

1. Создайте скрипт резервного копирования:

sudo nano /usr/local/bin/samp-backup.sh

2. Добавьте содержимое:

\#!/bin/bash

BACKUP_DIR="/backup/samp"
SERVER_DIR="/opt/samp"
DATE=$(date +%Y%m%d_%H%M%S)

\# Остановка сервера
sudo systemctl stop samp

\# Создание архива
tar -czf $BACKUP_DIR/samp_backup_$DATE.tar.gz -C $SERVER_DIR .

\# Запуск сервера
sudo systemctl start samp

\# Удаление старых бэкапов (старше 7 дней)
find $BACKUP_DIR -name "samp_backup_*.tar.gz" -mtime +7 -delete

echo "Backup completed: samp_backup_$DATE.tar.gz"

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/samp-backup.sh

4. Создайте директорию для бэкапов:

sudo mkdir -p /backup/samp

Настройка автоматического бэкапа

1. Добавьте задачу в crontab:

sudo crontab -e

2. Добавьте строку для ежедневного бэкапа:

0 3 * * * /usr/local/bin/samp-backup.sh

11. Устранение неполадок

Частые проблемы

1. Сервер не запускается:

  • Проверьте Wine:
    wine --version
  • Проверьте права доступа:
    ls -la /opt/samp
  • Проверьте логи:
    sudo journalctl -u samp

2. Игроки не могут подключиться:

  • Проверьте файрвол:
    sudo ufw status
  • Проверьте порт:
    sudo netstat -ulnp | grep :7777
  • Проверьте настройки server.cfg

3. Высокое использование CPU:

  • Уменьшите количество игроков
  • Оптимизируйте скрипты
  • Проверьте плагины

Диагностика

1. Проверьте статус сервиса:

sudo systemctl status samp

2. Проверьте использование ресурсов:

htop
free -h

3. Проверьте логи сервера:

tail -f /opt/samp/server_log.txt

12. Дополнительные настройки

Установка веб-панели

1. Установите Apache и PHP:

sudo apt install -y apache2 php php-mysql

2. Скачайте SA-MP Admin Panel:

wget https://github.com/your-repo/samp-admin-panel.zip

3. Распакуйте в веб-директорию:

sudo unzip samp-admin-panel.zip -d /var/www/html/

Настройка мониторинга

1. Создайте скрипт мониторинга:

sudo nano /usr/local/bin/samp-monitor.sh

2. Добавьте содержимое:

\#!/bin/bash

\# Проверка статуса сервера
if systemctl is-active --quiet samp; then
    echo "SAMP server is running"
    
    # Проверка подключений
    CONNECTIONS=$(netstat -an | grep :7777 | wc -l)
    echo "Active connections: $CONNECTIONS"
    
else
    echo "SAMP server is not running"
    # Отправка уведомления
    echo "SAMP server is down" | mail -s "SAMP Alert" admin@example.com
fi

3. Добавьте в crontab:

*/5 * * * * /usr/local/bin/samp-monitor.sh

Заключение

SAMP сервер успешно установлен и настроен на VDS! Теперь вы можете играть со своими друзьями в San Andreas Multiplayer.

Для размещения ваших SAMP серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой SAMP и оптимизацией производительности вашего сервера!