AstGuide.png

О Мини-Проекте AdvancedServerCreation

Плановые изменения по работе с Linux OS

  • Конфигурации для Minecraft ( Folia by PaperMC ) от VuTuV и DIDIRUS
  • Продвинутые конфигурации AntiXray под каждый мир ( PaperMC ) от VuTuV
  • Информация по настройке TCP Shield (рекомендуется) / Neo Protect (Возможно будет выложено в свободный доступ)
  • Удобные скрипты на Shell для работы с вашими серверами и скринами (screen) (Возможно будет выложено в свободный доступ)

Дополнительная информация о данном README.md

Версия документа v3.2 от 08.04.2023

Данная статья рассчитана на настройку под Ubuntu (рекомендуется) / Debian.
В случае если у вас Arch Linux или другие UNIX подобные системы - Ознакомьтесь с репозиторием необходимых пакетов.
Если необходимые пакеты отсутствуют, то попробуйте найти их в AUR/Snap/Flatpak, в случае с AUR изучайте билд скрипт для вашей же безопасности.

Некоторые функции могут не работать конкретно на вашей системе. В этом случае не нужно винить автора статьи.
За подробной поддержкой обращайтесь в мой дискорд Astralium Org. - https://discord.gg/7XkGYJbtZg

Основные ссылки на контент

Получить Adoptium Temurin | Нажмите, чтобы скачать Java |

Получить Fabric | Нажмите, чтобы скачать Fabric |

Получить Paper/Folia/Velocity | Нажмите, чтобы скачать PaperMC Software |

Настройка вашего Linux сервера

Основное

  • Основные рекомендуемые компоненты для вашей системы Linux. В основном все команды выполняются от root пользователя или с помощью sudo (Если sudo отсутствует на вашей системе, то установите его через apt / pamac / pacman)

Обновление пакетов машины


Для Ubuntu/Debian sudo apt update -y && sudo apt upgrade -y
Для Arch Linux sudo pamac update --no-confirm && sudo pamac upgrade --no-confirm

Специально для CentOS 8 (Не поддерживается автором статьи)

yum

yum update

yum upgrade

dnf

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

dnf install htop

dnf install screen

Полезные утилиты для вашего сервера

htop  -  Утилита для мониторинга всех запущенных процессов (Подобно top, но красивее)
screen  -  Важная утилита для создания сессий на вашей серверной машине
zip unzip  -  Утилита для архивации/деархивации файлов в .zip (рекомендую tar)
iptables  -  Полезная утилита для настройки IPv4 и IPv6 флагов (Firewall) (рекомендую)
ufw  -  Управление Firewall'ом IPTables, только проще (рекомендую)
firewalld  -  Управление Firewall'ом IPTables, только проще (рекомендую)
iptraf-ng  -  Мониторинг сети (рекомендую)
nload  -  Мониторинг сети (рекомендую)
vnstat  -  Мониторинг сети (рекомендую)
smartmontools  -  Позволяет протестировать оборудование системы
dnsutils  -  Управление DNS (Может потребоваться для некоторых утилит)
neofetch  -  Утилита для красивого отображения вашей ОС и некоторых параметров
fontconfig - Данный пакет шрифтов может потребоваться для некоторых утилит*

# Удобная установка всех полезных пакетов в одну строку + FIREWALLD (Работает с IPTables)
sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools firewalld -y

# Удобная установка всех полезных пакетов в одну строку + UFW (Работает с IPTables)
sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools ufw -y

# Удобная установка всех полезных пакетов в одну строку только с IPTables
sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools -y

Oracle Cloud установка под Minecraft

# Использование с UFW утилитой
sudo ufw enable # <- По умолчанию он выключен, поэтому его следует включить.
sudo ufw allow 25565 comment "Данный порт открыт по UDP/TCP протоколам для всех входящих соединений"
sudo ufw reload # <- На всякий случай.

# Использование с FIREWALLD утилитой
sudo apt install firewalld # <- Установка пакета не требуется, если вы установили его в начале этой статьи.
sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
sudo firewall-cmd --permanent --zone=public --add-port=25565/udp
sudo firewall-cmd --reload # <- Обычно он всегда требует перезагрузки для того, чтобы новые правила вступили в силу.

# < ! > Обратите особое внимание во избежание утраты доступа к вашей Linux машине < ! >
# По умолчанию FIREWALLD и UFW утилиты закрывают все порты, конечно в них имеются исключения для 22/tcp порта,
# Однако в любом случае рекомендуется вручную открыть OpenSSH порт.
# Использование в UFW и FIREWALLD:

# sudo ufw allow 22/tcp comment "Порт для использования удалённого подключения к данной машине по SSH протоколу"
# sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
# sudo firewall-cmd --reload # <- Обычно он всегда требует перезагрузки для того, чтобы новые правила вступили в силу.

Установка Java на вашу серверную машину

  • Вы научитесь легко и просто устанавливать и удалять Java с вашего сервера
  • Для начала зайдите в SFTP клиент и перейдите в раздел ~/opt (Можно любой, но этот в качестве основы)
  • В Linux изначально придумана команда для упаковки архивов и распаковки архивов
  • Использовать команду tar можно с использованием следующих параметров:
-c | --create — создать архив
-a | --auto-compress — дополнительно сжать архив с компрессором который автоматически определить по расширению архива.
-r | --append — добавить файлы в конец существующего архива
-x | --extract, --get — извлечь файлы из архива
-f | --file — указать имя архива
-t | --list — отобразить список файлов и папок в архиве
-v | --verbose — выводить список обработанных файлов
-u | --update — Обновить архив новыми файлами
-d | --diff, --delete — Проверить начилие архивов, удалить файл из архива
  • Пример перемещения файлов по системе Linux
# < ! > НЕ ОБЯЗАТЕЛЬНЫЕ КОМАНДЫ < ! >

mv /home/others/Test /others2

# Также вы можете использовать флаг* -v чтобы увидеть подроную информацию о процессе
# ~ — тильда, дает понять системе, что это корневой каталог root (~)
# Пример: Вы юзер test, то при вводе cd, вы попадете в каталог /home/test/
# Т.е ~/others2 и т.д

mv -v ~/home/others/Test ~/others2

# Вы можете также использовать приставку sudo к команде mv

# Теперь вы знакомы с командой для перемещения файлов, но рекомендуется еще раз закрепить материал
# Попробуйте данные команды на каком-то пустом сервере, либо можете установить WSL2 на вашу систему
# Рекомендуемый дистрибутив ОС для создания Проектов (Серверов) — Ubuntu, Debian

Начало процесса установки Java на ваш Linux сервер

  • Установка и распаковка архива при помощи "tar" — встроенная утилита упаковки/распаковки архива с файлами в Linux
# Архив уже должен быть установлен / перемещен в выбранную вами директорию
# Чтобы установить архив, вы можете использовать в качестве передачи файлов SFTP приложение
# WinSCP, либо же скачать сразу из консоли - wget <url>
# Команду писать без <>
# Вы также можете использовать - curl
# Если в вашей системе данная утилита отсутствует, то вы можете установить её самостоятельно

sudo apt install curl

# Пример использования:
curl https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/499/downloads/paper-1.19.4-499.jar -o paper.jar

# Теперь давайте его распакуем — после распаковки появится папка с нашей Java
# Выполните команду:

tar -xvf archive.tar.gz

# Например архив с Java называется:
Скачиваем к примеру Adoptium JDK Java 18 под amd64 платформу (Ubuntu, Debian, Arch)

# Быстрая установка Adoptium Temurin Java Development Kit 17
cd /opt && sudo wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz && tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz && ln -svf /opt/jdk-17.0.6+10/bin/java /usr/bin/java && java -version

# < ! > Название архива может быть иное < ! >
# Информацию об установке Java ниже можете не применять при вводе команды выше.
# Для распаковки архива потребувется ввести всего одну команду (Уже применена в примерной установке выше):

tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz

# Выполните данные команды для скачивания архива:

sudo wget TARGET_URL

# Из примера выше
curl https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/499/downloads/paper-1.19.4-499.jar -o paper.jar

# В нашем случае это не PaperMC, а Java, поэтому:
sudo wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz

# Также можно использовать утилиту CURL, заместо WGET
sudo curl ссылка -o выходной_файл.расширение

# Все версии Java доступны по этой ссылке: https://github.com/orgs/adoptium/repositories

# Если вы сделали всё правильно, то теперь вы получите информацию о вашей Java при вводе данной команды:
java -version

Создание "Линка" для нашего файла Java в папке с самой Java

  • Вы можете подробно изучить про команду ln и ее параметры
# Линки — тоже самое что ярлык, те кто когда либо имели систему Windows / MacOS 
# Могут знать про создание ярлыка при помощи клика ПКМ по файлу
# Но у нас ведь нет интерфейса, поэтому будем использовать команду "ln"
# *Кстати можно делать линки также через WinSCP — Клиент SFTP, FTP . . .
# Создаем ярлык (линк) для нашего исполняемого файла

# Выполните команду:
# Заместо ... пишем название папки с Java — /opt/.../bin/java
ln -svf /opt/.../bin/java /usr/bin/java

# Если вы все сделали правильно, то вы успешно установили Java на вашу машину
# Проверить активную Java
java -version

# Если вам вывело информацию о версии (Обычно это 2-3 строки), то все успешно.
# Иначе, проверяйте под какую архитектуру вы скачали JDK архив.

Удаление Java с нашего сервера

  • Мы не будем использова бесполнезные команды по типу: sudo apt remove *java*
# Для начала перейдем в корень сервера ~
# Далее переходим по пути ~/usr/bin
# Используем удобный вам способ для поиска файлов — мне было удобно через WinSCP Клиент
# Находим файл "Java" — он должен быть единственный в данной директории!
# Спокойно без боязни удаляем его — Готово вы удалили активную Java с вашего сервера, однако
# Она все еще существует как папку и архив по пути ~/opt
# Можно сделать это через команды

cd /usr/bin && sudo rm java

# Проверить наличие активной Java, можно введя команду

java -version

# При успехе, у вас должно вывести ошибку.

Настройка безопасного входа на сервер - Linux

  • В качестве альтернативы простым паролям, мы будем использовать Rsa_Keys с форматом шифрования SHA
# Открываем приложение основной терминал системы (Kosnole, Yakuake или любой другой.)

ssh-keygen # По умолчанию генерирует 2048 Битный ключ

ssh-keygen -b 4096 # Генерация ключа с мощностью 4096 Бит (Лучше чем 2048)
ssh-keygen -b 8192 # Генерация ключа с мощностью 8192 Бит (Лучше чем 4096)

# Далее внимательно читаем логи, вы уже почти создали пару ключей на вашем ПК ~/users/ВашЮзер/.ssh
# Чтобы передать ключ на наш сервер, воспользуемся данной командой (Вам потребуется войти с использованием "старого" пароля)
# Однако, мы всегда можем делать это вручную, но можно и через команду ниже:

cat ~/.ssh/id_rsa.pub | ssh USER@IP "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

# < ! > Подсказка для всех < ! >
# Если вы не хотите использовать такой способ авторизации, то установите очень сильный, надежный, ультра мега крутоооой пароль :)
# Самое главное не палите своего юзера, ведь только тогда вас не будут брутить, 
# Т.к попросту не будут знать пользователя для старта брутфорса. 
# В таком случае рекомендую использовать Firewall.
# Давайте все же перейдем к нашим RSA ключикам.
# Вы можете вручную просто вписать информацию из публичного RSA ключа в '~/.ssh/authorized_keys'
# На своем устройстве получите информацию из файлы id_rsa.pub, например cat id_rsa.pub
# Впишите данную информацию из файла id_rsa.pub в файл authorized_keys вашего юзера Linux '~/.ssh/authorized_keys'
# При использовании данного способа, пожалуйста соблюдайте бдительность, чтобы ничего не сломать в вашей системе

# Останется ввести только и вы примените изменения из подсказки выше:
sudo systemctl restart ssh


# ... USER@IP ...
# Подставьте ваши данные заместо шаблона
# USER — Логин, ваш пользователь на серверной машине
# IP — Ваш IP от серверной машины


# ВНИМАНИЕ! Мы начинаем отключать парольную аутентификацию на сервере, будьте аккуратны
# *Автор не несет ответвенности, если вы вдруг сломаете вход на вашу серверную машину,
# Обязательно создавайте бэкапы ваших игровых серверов*


# Перед этим убедитесь, что у вас установлены пакеты:

apt install sudo
apt install nano или apt install vim

# sudo — Нужно использовать если у вас основной user != root
# nano — Удобный редактор текста в терминате
# vim — Редактор немного посложнее, но если освоитесь - будет очень удобно его использовать

# Как сохранить файл через nano
# CTRL + X , Y (yes), ENTER

# Как сохранить файл через vim
# После открытия файла
# vim file.txt
# Для ввода информации нажмите I (i), у вас появтся надпись снизу слева --INSERT-- или --ВСТАВКА--
# После чего заносите любую информацию в файл и нажимаете:
# CTRL C, далее пишите :wq
# :wq запишет и закроет файл.
# :q! просто закроет файл.
# Подробнее в документации к vim или nano.

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

sudo nano /etc/ssh/sshd_config

# Вам нужно найти или написать данную строчку:

PasswordAuthentication no

# После сохраняем файл (Мы используем nano в качестве редактора текстовых файлов)
# Далее нам необходимо перезагрузить SSH клиент
# < ! > Советуем проверить доступ к SSH < ! >
# Вернитесь в PowerShell и введите

ssh USER@IP

ssh USER@IP -i ./ключ

# Если вы пытаетесь зайти через GNU Linux, то используйте команду ниже

sudo ssh USER@IP -i ключ

# ... USER@IP
# Подставьте ваши данные заместо шаблона
# USER — Логин, ваш пользователь на серверной машине
# IP — Ваш IP от серверной машины

# Далее если все хорошо, перезагружаем ssh

sudo systemctl restart ssh

# Готово, теперь зайти на вашу серверную машину через пароли не получится, используем только ключи авторизации (rsa)

# Для удобства входа через пароли можете использовать пакет данных sshpass

Различные команды и бенчмарки, которые возможно вам понадобятся

  • В основном подойдет для мониторинга и наблюдения за жизнедеятельностью вашей серверной машины
# Информация по системе

# Скорость интернета на вашем сервере (Установка + автозапуск)
sudo apt install speedtest-cli && speedtest-cli

# Через бенчмарк
sudo wget -qO- bench.sh | bash 

# Информация о системе (Установка + автозапуск)
sudo apt install neofetch && neofetch

# Встроенные Linux команды (Примеры)
lscpu
lspci
uname -a

IPTables (UFW/FIREWALLD) - Закрытие порта SSH, SFTP (22) + ICMP DROP

  • На самом деле не рекомендую делать такое с динамическим IP, иначе вы рискуете потерять доступ к вашей серверной машине
# Быстродействие (Без закрытия SSH порта):
# sudo apt install ufw && sudo ufw allow 22/tcp && sudo nano /etc/ufw/before.rules
# Для before.rules:

# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

# ИЗМЕНИТЬ НА СЛЕДУЮЩЕЕ ЗНАЧЕНИЯ ufw-before-input
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

# Сохраняем конфигурацию через наш nano редактор (CTRL X + Y + ENTER)
# Перезагружаем UFW

sudo ufw reload

# Теперь все пинги блокируются извне

# Ниже представлена информация из документации v2.0 (Прошлая)

# Базовые настройки IPTables | Запрет пинга на ваш дедик | Запрет входа с других айпи по SSH (только ваш)

iptables -A INPUT -s IP/32 -p icmp -j DROP

# Или через FirewallD

sudo firewall-cmd --add-icmp-block=echo-request --permanent

# Разрешить свой айпи для входа через SSH,SFTP - ПУНКТ ДЕЛАТЬ ПЕРВЫМ ИЗ ВСЕХ!

iptables -A INPUT -p tcp --dport 22 -s YourIP -j ACCEPT

# Дропнуть порт 22 (aka SSH, SFTP). < ! > ДЕЛАТЬ ПОСЛЕ РАЗРЕШЕНИЯ < ! >

iptables -A INPUT -p tcp --dport 22 -j DROP

# Установка

apt-get install iptables-persistent
# Можно обойтись без этого и просто настроить восстановление правил IPTables через crontab :)

# Правила iptables необходимо создать, затем выполнить следующую команду

service iptables-persistent start

# Поскольку утилита является демоном — прекратить ее работу нельзя, однако можно очистить список правил

service iptables-persistent flush

# Обновить правила, если persistent уже был установлен

dpkg-reconfigure iptables-persistent

IPTables - Закрытие портов на нескольких серверных машинах

  • Здесь вы подробно узнаете как легко и быстро закрыть порты
# Представим что у нас есть два сервера VDS / VPS
# Первый сервер под маркой X - Это у нас будет Proxy сервер (Фильтр различных ботов, пакетов (TCP))
# Второй сервер под маркой Y - Это у нас будет Survival сервер (Основное выживание)
# На сервере X пропишите следующие команды в данном порядке, как они даны (Свреху вниз)

iptables -A INPUT -s <IP Y> -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -j ACCEPT

# На сервере Y пропишите следующие команды в данном порядке, как они даны (Сверху вниз)

iptables -A INPUT -p tcp -s <IP X> --dport <PORT Y (Survival)> -j ACCEPT
iptables -A INPUT -p tcp --dport <PORT Y (Survival)> -j DROP

# После манипуляций на каждом VDS / VPS нужно ввести данную команду

apt install iptables-persistent

# Если у вас он уже был установлен, то просто обновите правила используя команду

dpkg-reconfigure iptables-persistent


# Если хотите можете также ознакомиться со списком ваших правил iptables на каждой из виртуальных машин

iptables --list

# Узнать номера всех правил

iptables -L --line-numbers

# Удалять правила можно следующим способом

iptables -D INPUT ЧИСЛО

"WinRar" - Известный архиватор, но для Linux (Лучше использовать tar)

# Установка
apt install zip unzip

# Там где нужно будет создать архив - у меня это папку /home
cd home

# Архивирование папки/файла | Можно находиться в любом пути (Вы указываете конкретно путь до папки/файла , который нужно заархивировать)
zip -r NAME.zip /home/BungeeCord

# Для примера в моем случае
# /home - дирректория папки с сервером
# /BungeeCord - сама папка с банджей, можно любую например: Survival, Anarchy, SkyBlock.

zip -r surv.zip /home/Survival

# Если имеется SkyBlock папка с сервером, то введите эту команду
# Указывать можно любой сервер, также вы можете например хранить сервер по пути /servers/BungeeCord
# Не обязательно использовать /home раздел для серверов!

zip -r sb.zip /home/SkyBlock

# Либо используйте встроенный tar

SQL DataBase

# Установка MySQL
sudo apt install mysql-server

# Установка MariaDB (Лучше чем MySQL, является его форком)
sudo apt install mariadb-server

# Вход в саму БД
sudo mysql

# Создать БД
CREATE DATABASE IF NOT EXISTS DATABASE_NAME;

# Удалить БД
DROP DATABASE IF EXISTS DATABASE_NAME;

# Список БД
SHOW DATABASES;

# Создать юзера
CREATE USER IF NOT EXISTS 'DATABASE_USER'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'DATABASE_USER_NEW_PASSWORD';

# Создать юзера для MariaDB
CREATE USER IF NOT EXISTS 'DATABASE_USER'@'localhost' IDENTIFIED BY 'DATABASE_USER_NEW_PASSWORD';

# Изменить пароль юзеру
ALTER USER 'DATABASE_USER'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'DATABASE_USER_NEW_PASSWORD';

# Изменить пароль юзеру для MariaDB
ALTER USER 'DATABASE_USER'@'localhost' IDENTIFIED BY 'DATABASE_USER_NEW_PASSWORD';

# Удалить юзера
DROP USER IF EXISTS 'DATABASE_USER'@'localhost';

# Список юзеров
SELECT user, host FROM mysql.user;

# Выдать права юзеру на определенную БД
GRANT ALL PRIVILEGES ON database_name.table_name TO 'DATABASE_USER'@'localhost';

# Выдать все права юзеру на все БД
GRANT ALL PRIVILEGES ON *.* TO 'DATABASE_USER'@'localhost';

# Список всех прав юзера БД
SHOW GRANTS FOR 'DATABASE_USER'@'localhost';

# Сделать дамп всей БД
mysqldump -uDATABASE_USER -pDATABASE_USER_PASSWORD --all-databases > DATABASE_CUSTOM_DUMP_NAME.sql

# Сделать дамп определенной БД
mysqldump -uDATABASE_USER -pDATABASE_USER_PASSWORD DATABASE_NAME > DATABASE_CUSTOM_DUMP_NAME.sql

# Если вы хотите скопировать ваш дамп БД в другое место
cp /var/lib/mysql/DATABASE_CUSTOM_DAMP_NAME.sql /home/testuser/

Отключение пароля для $ sudo {cmd}

# Для начала создайте файл (Делать от sudo или root пользователя)
# sudo visudo -f /etc/sudoers.d/sudowpass
sudo nano /etc/sudoers.d/sudowpass

# В файл sudowpass нужно вписать следующее:

YourUserHere ALL=(ALL) NOPASSWD:ALL

# Или сделаем проще с автоопределением вашего юзера (Делать с правами рута) - $USER ALL=(ALL) NOPASSWD:ALL

touch /etc/sudoers.d/sudowpass && echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/sudowpass && cat /etc/sudoers.d/sudowpass

Передача файлов по SSH через scp

scp USER@IP:/путь_для_файлааругой_сервер названиеайликааашем_сервере

# Использовать scp с кастомным портом SSH
# Для примера передадим файл test.dat на наш сервер Linux
scp -P 999 root@127.0.0.1:/home/path/to/path/test.dat /home/path/to/but/here/test.dat

# У вас запросит пароль, если вы используете ключи, то добавьте -i

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

# Замените '$name' вашим новым кастомным юзером
adduser $name

# Выдача прав на sudoers для нового юзера
# usermod -aG sudo $name
adduser $name sudo

# Забрать группу sudoers у $name
deluser $name sudo

Настройка языковых пакетов на Linux

sudo dpkg-reconfigure locales
# Выберите сначала Англ раскладку UTF=8
# После выберите пунктом выше C.UTF-8 и нажмите Ok
# Вы можете настроить языковые пакеты для себя.

Раздел главных настроек нашего серверного ядра

Защита вашего сервера

  • Не используйте плагины с левых сайтов! Хотя я и использую плагины из других источников, однако я имею определенные знания для поиска дыр в них, поэтому использую в итоге плагины с чистым кодом. Вам определенно не рекомендую как новичкам (Возможно здесь имеются тоже люди, которые разбираются в этом, но всё таки статья ориентирована на начинающую категорию пользователей.
Если вы хотите сохранить безопасность вашего сервера и ваших игроков,
то лучше всего скачайте оригинальные плагины,
а если нужно купить, то лучше купите их.
  • Закрывайте все ненужные порты, а нужные открывайте!
Это конечно не критично, но лучше всего закрыть все порты. 
После установки UFW / FIREWALLD они автоматически закрываются, 
кроме 22*, однако мы рекомендуем вручную открыть SSH/SFTP порт.

Оптимизация сервера

  • Пожалуйста не используйте плагины на оптимизацию, в большинстве случаев они грузят сервер сильнее
> CleagLagg Plugin - Да, данный плагин может быть полезен для версий 1.12.2 и ниже, но для новых версий он вызывает
куда больше нагрузки, нежели помогает ( PaperMC давно имеет функционал данного плагина* )
Отключение или ограничение вагонеток, арморстендов через данный плагин не спасет вас от крашей.

> Стаккеры мобов в одного моба (Много подобных плагинов) - Даже от них нет особого смысла. 
Пейпер давно позволяет нормально оптимизировать мобов, а если мы используем форки по типу фуги или пурпура, 
то возможностей куда больше для оптимизации вашего игрового сервера

> АвтоОчистка лута на земле - Изучите файлики paper.yml / spigot.yml, но пожалуйста не используйте для этого плагины по типу ClearLagg

> Платный плагин / Самопис от себя или студий - Данное ПО не является аргументом для вашей производительности, 
лучше придерживаться уже известных плагинов, а по вашему желанию вы можете их дополнить, т.к большинство из них OpenSource

> Рекомендация: Используйте современное ПО, например PaperMC/Folia, никогда не ставьте бемполезные плагины на стак мобов и прочее.

О создании игрового сервера в Minecraft

Рекомендуемое ПО для запуска сервера

  • Если вы планируете разрабатывать модовый сервер, то определенно рекомендую Fabric

Моды можно найти здесь или здесь

  • Если вы планируете разрабатывать обычный сервер, то определенно рекомендую PaperMC

Рекомендуемое ПО Для разработки Proxy сервера Velocity с сайта PaperMC

VDS/DEDICATED или PANEL HOSTING?

  • Автор данного поста не поддерживает панельные хосты из-за их серьезных ограничений. Если вы хотите создать качественный Проект, то пожалуйста присмотритесь к использованию выделенных или виртуальных серверов с полным доступом.

Об авторе

Какое ПО используется для разработок игровых проектов (Сервер-сайд)

Какое ПО используется для разработок игровых клиентов (Клиент-сайд)

  • Я пользуюсь этим ПО: Fabric

Какое ПО используется для подключения к серверу по SSH, SFTP

Description
AstralDocs — Набор Markdown файлов с полезнымо писанием в сфере IT. Доступны полезные гайды по Minecraft
Readme 128 KiB
Languages
Markdown 100%