You've already forked AstralDocs
v1.5
Первый релиз документации на Github
This commit is contained in:
386
README.md
386
README.md
@@ -1,2 +1,384 @@
|
||||
# AdvancedServerCreation
|
||||
Create your Own Minecraft Network with basic/advanced features
|
||||
# Продвинутое создание сервера
|
||||
### Создайте свой личный Minecraft Проект с использованием провинутой и удобной информации`
|
||||
|
||||
```
|
||||
Версия документа v1.5
|
||||
|
||||
* Это не последние изменения данного документа, вскоре здесь будет появляться новая информация *
|
||||
|
||||
Некоторые рекомендации из пунктов могут работать некорректно на некоторых системах
|
||||
За подробной поддержкой обращайтесь в мой дискорд - https://discord.gg/7XkGYJbtZg
|
||||
|
||||
Для полноценной настройки рекомендую использовать Adoptium OpenJDK 17 LTS Java
|
||||
|
||||
< ! > ПОЖАЛУЙСТА ЧИТАЙТЕ ВНИМАТЕЛЬНО И НЕ ПРЕДЪЯВЛЯЙТЕ ПРЕТЕНЗИЙ РАЗРАБОТЧИКУ < ! >
|
||||
```
|
||||
|
||||
# Настройка выделенных и виртуальных серверов
|
||||
### Базовые компоненты, архивация файлов, настройка безопасности
|
||||
|
||||
- Базовые компоненты для вашего сервера
|
||||
- Все команды выполняются от ~ root пользователя, либо через sudo
|
||||
|
||||
### Обновление пакетов машины
|
||||
```
|
||||
sudo apt update
|
||||
|
||||
sudo apt upgrade
|
||||
```
|
||||
### Специально для Linux (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
|
||||
```
|
||||
|
||||
### Полезные утилиты для вашего сервера
|
||||
```
|
||||
sudo apt install htop - Утилита для мониторинга всех запущенных процессов (Подобно top, но красивее)
|
||||
|
||||
sudo apt install screen - Важная утилита для создания сессий на вашей серверной машине
|
||||
|
||||
sudo apt install zip unzip - Утилита для архивации файлов в .zip
|
||||
|
||||
sudo apt install iptables - Полезная утилита для настройки IPv4 и IPv6 флагов (Firewall) (Можно управлять портами)
|
||||
|
||||
apt install neofetch - Утилита для красивого отображения вашей ОС и некоторых параметров
|
||||
```
|
||||
- Обычно предустановлена на Ubuntu, но в нашем случае Debian ОС. Выполняет команды от имени root
|
||||
|
||||
```
|
||||
apt install sudo
|
||||
```
|
||||
|
||||
- Если потребуется подтвердить установку, то подтвердите отправив консоли Y (y)
|
||||
|
||||
|
||||
|
||||
### Специально для Oracle Cloud - откройте порт UDP/TCP 25565
|
||||
```
|
||||
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
|
||||
|
||||
# Важно! В конфиге server.properties нужно указывать IP: 0.0.0.0
|
||||
# Если у вас Bungeecord / Velocity, укажите в конфиге Bungeecord / Velocity IP: 0.0.0.0:25565
|
||||
```
|
||||
### Установка 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 (~)
|
||||
# Т.е ~/others2 и т.д
|
||||
|
||||
mv -v ~/home/others/Test ~/others2
|
||||
|
||||
|
||||
|
||||
# Вы можете также использовать приставку sudo к команде mv
|
||||
|
||||
# Теперь вы знакомы с командой для перемещения файлов, но рекомендуется еще раз закрепить материал
|
||||
# Попробуйте данные команды на каком-то пустом сервере, либо можете установить WSL2 на вашу систему
|
||||
# Рекомендуемый дистрибутив ОС — Ubuntu,Debian
|
||||
```
|
||||
|
||||
### Начало процесса установки Java на ваш сервер
|
||||
- Установка и распаковка архива при помощи "tar" — встроенный архиватор в Linux
|
||||
```
|
||||
# Архив уже должен быть установлен / перемещен в выбранную вами директорию
|
||||
# Чтобы установить архив, вы можете использовать в качестве передачи файлов SFTP приложение
|
||||
# WinSCP, либо же скачать сразу из консоли - wget <url>
|
||||
# Команду писать без <>
|
||||
|
||||
# Теперь давайте его распакуем — после распаковки появится папка с нашей Java
|
||||
# Выполните команду:
|
||||
|
||||
tar xf ИМЯ.tar.gz
|
||||
|
||||
# Обычно все пакеты имеют расширение .tar.gz
|
||||
# Но мы ведь как раз используем "tar" ;)
|
||||
|
||||
# Например архив с Java называется:
|
||||
OpenJDK16U-jdk_x64_linux_hotspot_16.0.1_9.tar.gz
|
||||
|
||||
# < ! > Название может быть иное, пожалуйста узнайте это < ! >
|
||||
|
||||
# Для распаковки архива потребувется ввести всего одну команду:
|
||||
|
||||
tar xf OpenJDK16U-jdk_x64_linux_hotspot_16.0.1_9.tar.gz
|
||||
|
||||
# На момент создания статьи последняя Java, которую лично я проверял у себя на Проектах
|
||||
# Выполните данные команды для скачивания архива:
|
||||
|
||||
cd ДИРЕКТОРИЯ
|
||||
|
||||
sudo wget ССЫЛКА
|
||||
|
||||
... Далее команды распаковки и все действия выше
|
||||
|
||||
# ССЫЛКУ брать отсюда - https://adoptium.net/releases.html
|
||||
|
||||
# Если все сделано верно, то вы успешно распаковали Java в директорию
|
||||
```
|
||||
|
||||
### Создание "Линка" для нашего файла Java в папке с самой Java
|
||||
- Вы можете подробно изучить про команду ln и ее параметры
|
||||
```
|
||||
# Линки — тоже самое что ярлык, те кто когда либо имели систему Windows / MacOS
|
||||
# Могут знать про создание ярлыка при помощи клика ПКМ по файлу
|
||||
# Но у нас ведь нет интерфейса, поэтому будем использовать команду "ln"
|
||||
# *Кстати можно делать линки также через WinSCP — Клиент SFTP, FTP . . .
|
||||
# Создаем ярлык (линк) для нашего исполняемого файла
|
||||
# Выполните команду:
|
||||
|
||||
ln -svf /opt/.../bin/java /usr/bin/java
|
||||
|
||||
# Заместо ... пишем название папки с Java — /opt/jdk-16.0.1+9/bin/java
|
||||
|
||||
ln -svf /opt/jdk-16.0.1+9/bin/java /usr/bin/java
|
||||
|
||||
# Если вы все сделали правильно, то вы успешно установили Java на вашу машину
|
||||
```
|
||||
|
||||
### Удаление Java с нашего сервера
|
||||
- Многие скажут, что есть команда sudo apt remove *java* и т.д, но это самый простой способ — можно также и через команды
|
||||
```
|
||||
# Для начала перейдем в корень сервера ~
|
||||
# Далее переходим по пути ~/usr/bin
|
||||
# Используем удобный вам способ для поиска файлов — мне было удобно через WinSCP Клиент
|
||||
# Находим файл "Java" — он должен быть единственный в данной директории!
|
||||
# Спокойно без боязни удаляем его — Готово вы удалили активную Java с вашего сервера, однако
|
||||
# Она все еще существует как папку и архив по пути ~/opt
|
||||
# Можно сделать это через команды
|
||||
|
||||
cd usr
|
||||
|
||||
cd bin
|
||||
|
||||
sudo rm java
|
||||
|
||||
# Проверить наличие активной Java, можно введя команду
|
||||
|
||||
java -version
|
||||
|
||||
# При успехе, у вас должно написаться, что Java не найдена
|
||||
```
|
||||
|
||||
### Настройка безопасного входа на сервер - Linux
|
||||
- В качестве альтернативы простым паролям, мы будем использовать rsa_keys шифрование SHA
|
||||
|
||||
- Генерация и установка ключей на сервер
|
||||
```
|
||||
# Для Windows:
|
||||
# Открываем приложение PowerShell, либо другое из того, что у вас может быть
|
||||
|
||||
ssh-keygen
|
||||
|
||||
ssh-keygen -b 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"
|
||||
|
||||
# ... USER@IP ...
|
||||
# Подставьте ваши данные заместо шаблона
|
||||
# USER — Логин, ваш пользователь на серверной машине
|
||||
# IP — Ваш IP от серверной машины
|
||||
|
||||
|
||||
# ВНИМАНИЕ! Мы начинаем отключать парольную аутентификацию на сервере, будьте аккуратны
|
||||
# *Автор не несет ответвенности, если вы вдруг сломаете вход на вашу серверную машину,
|
||||
# Обязательно создавайте бэкапы ваших игровых серверов*
|
||||
|
||||
|
||||
# Перед этим убедитесь, что у вас установлены пакеты:
|
||||
|
||||
apt install sudo
|
||||
|
||||
apt install nano
|
||||
|
||||
# sudo — Нужно использовать если у вас основной user != root
|
||||
# nano — Удобный редактор текста через SSH
|
||||
|
||||
# Как сохранить файл через nano
|
||||
|
||||
# CTRL + X , Y (yes), ENTER
|
||||
|
||||
# Готово, теперь вы умеете сохранять файлы, но все таки перейдем к отключению парольной авторизации
|
||||
# Вводим команду:
|
||||
|
||||
sudo nano /etc/ssh/sshd_config
|
||||
|
||||
# Вам нужно найти или написать данную строчку:
|
||||
|
||||
PasswordAuthentication no
|
||||
|
||||
# После сохраняем файл (Мы используем nano в качестве редактора текстовых файлов)
|
||||
# Далее нам необходимо перезагрузить SSH клиент
|
||||
# < ! > Советуем проверить доступ к SSH < ! >
|
||||
# Вернитесь в PowerShell и введите
|
||||
|
||||
ssh USER@IP
|
||||
|
||||
ssh USER@IP -i ./ключ
|
||||
|
||||
# ... USER@IP
|
||||
# Подставьте ваши данные заместо шаблона
|
||||
# USER — Логин, ваш пользователь на серверной машине
|
||||
# IP — Ваш IP от серверной машины
|
||||
|
||||
# Далее если все хорошо, перезагружаем ssh
|
||||
|
||||
sudo systemctl restart ssh
|
||||
|
||||
# Готово, теперь зайти на вашу серверную машину через пароли не получится, используем только ключи авторизации (rsa)
|
||||
```
|
||||
|
||||
### Различные команды и бенчи, которые возможно вам понадобятся
|
||||
- В основном подойдет для мониторинга и наблюдения за жизнедеятельностью вашей серверной машины
|
||||
```
|
||||
# Информация по системе
|
||||
|
||||
# Через бенчмарк
|
||||
|
||||
sudo wget -qO- bench.sh | bash
|
||||
|
||||
# Через неофетч (Удобнее чем 1-ый вариант, однако данный вариант не сможет показать скорость)
|
||||
|
||||
apt install neofetch
|
||||
|
||||
neofetch
|
||||
```
|
||||
|
||||
### IPTables - Закрытие порта SSH, SFTP (22)
|
||||
- На самом деле не рекомендую делать такое с динамическим IP, иначе вы рискуете потерять доступ к вашей серверной машине
|
||||
```
|
||||
# Базовые настройки IPTables | Запрет пинга на ваш дедик | Запрет входа с других айпи по SSH (только ваш)
|
||||
|
||||
iptables -A INPUT -s IP/32 -p icmp -j DROP
|
||||
|
||||
# Разрешить свой айпи для входа через 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 необходимо создать, затем выполнить следующую команду
|
||||
|
||||
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
|
||||
```
|
||||
# Установка
|
||||
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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user