Update README.md

This commit is contained in:
Dmitriy
2022-08-13 20:12:36 +03:00
committed by GitHub
parent cd4d431a66
commit afd7001ccf

141
README.md
View File

@@ -1,29 +1,28 @@
# Продвинутое создание сервера
`> Данная статья будет немного переписана и вам станет проще ее изучать :)`
# Продвинутое создание сервера Minecraft на основе LinuxOS
`> Данная статья была переписана и вы можете столкнуться с проблемами ориентирования в тексте.`
![image](https://user-images.githubusercontent.com/77334306/146064955-f7458d87-38c0-40dd-8634-e27dc2a150b5.png)
![image](https://user-images.githubusercontent.com/77334306/146064668-abc41204-a41e-40f8-a098-6a5a992ad5be.png)
![image](https://user-images.githubusercontent.com/77334306/146064892-06b3d01d-02fe-48cb-8618-08536de0ad3f.png)
![image](https://user-images.githubusercontent.com/77334306/146582420-c57493a7-decf-49a8-b248-e29add8f8afe.png)
![image](https://user-images.githubusercontent.com/77334306/146582380-00aee364-fe49-4a47-bd7c-fdbf1a10412a.png)
![image](https://user-images.githubusercontent.com/77334306/146998663-f98e5ea0-cf90-4f39-a34a-1f20a2afe4d0.png)
### Создайте свой личный Minecraft Проект с использованием продвинутой и удобной информации`
```
Версия документа v2.0
Версия документа v3.0
* Приоритет обновления данного репозитория был повышен, вы можете получать дополнительную информацию *
* Намного чаще. Данная статья создана для удобства в управлении вашим Проектом в Minecraft + самой системой Linux *
* Намного чаще. Данная статья создана для удобства в управлении вашим Проектом в Minecraft под управлением LinuxOS *
* На системах Арч линукс нет команды apt. Учтите этот факт при настройке вашей UNIX подобной системы *
Некоторые рекомендации из пунктов могут работать некорректно на некоторых системах
За подробной поддержкой обращайтесь в мой дискорд - https://discord.gg/7XkGYJbtZg
Для полноценной настройки рекомендую использовать Adoptium OpenJDK LTS Java
Для полноценной настройки рекомендую использовать Adoptium Java
< ! > ПОЖАЛУЙСТА ЧИТАЙТЕ ВНИМАТЕЛЬНО И НЕ ПРЕДЪЯВЛЯЙТЕ ПРЕТЕНЗИЙ АВТОРУ СТАТЬИ < ! >
```
@@ -36,28 +35,23 @@
[PurPur](https://purpurmc.org/) __| Server Software |__
[Pufferfish](https://ci.pufferfish.host/) __| Server Software |__
[Petal](https://github.com/Bloom-host/Petal) __| Server Software |__
[Velocity Website](https://velocitypowered.com/) [Velocity From PaperMC](https://papermc.io/downloads#Velocity) __| Proxy Software |__
# Настройка выделенных и виртуальных серверов
### Базовые компоненты, архивация файлов, настройка безопасности
# Настройка вашего Linux сервера
### Основное
- Базовые компоненты для вашего сервера
- Все команды выполняются от ~ root пользователя, либо через sudo
- Некоторые команды выполняются от ~ root пользователя, либо через sudo
### Обновление пакетов машины
```
sudo apt update
sudo apt upgrade
# Установить сразу все с авто соглашением
sudo apt update -y && sudo apt upgrade -y
```
### Специально для Linux (CentOS 8)
### Специально для CentOS 8 (Не поддерживается автором статьи)
```
yum
@@ -77,51 +71,41 @@ 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) (Можно управлять портами)
sudo apt install neofetch - Утилита для красивого отображения вашей ОС и некоторых параметров
sudo apt install fontconfig - Данный пакет шрифтов может потребоваться для некоторых плагинов*
apt install neofetch - Утилита для красивого отображения вашей ОС и некоторых параметров
# Удобная установка всех полезных пакетов в одну строку + FIREWALLD (Работает с IPTables)
sudo apt install htop screen zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools firewalld -y
apt install fontconfig - Данный пакет шрифтов может потребоваться для некоторых плагинов*
# Удобная установка всех полезных пакетов через 1 команду
sudo apt install htop screen zip unzip iptables nload neofetch fontconfig smartmontools firewalld -y
# Удобная установка всех полезных пакетов в одну строку + UFW (Работает с IPTables)
sudo apt install htop screen zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools ufw -y
```
- Обычно предустановлена на Ubuntu, но в нашем случае Debian ОС. Выполняет команды от имени root
```
apt install sudo
```
- Если потребуется подтвердить установку, то подтвердите отправив консоли Y (y), (-y syntax)
### Может решить вашу проблему с портами на Oracle Cloud - откройте порт UDP/TCP 25565
```
sudo apt install firewalld
# Использование с 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 # <- Обычно он всегда требует перезагрузки для того, чтобы новые правила вступили в силу.
sudo firewall-cmd --reload
# < ! > Обратите особое внимание во избежание утраты доступа к вашей Linux машине < ! >
# По умолчанию FIREWALLD и UFW утилиты закрывают все порты, конечно в них имеются исключения для 22/tcp порта,
# Однако в любом случае рекомендуется вручную открыть OpenSSH порт.
# Использование в UFW и FIREWALLD:
# Важно! В конфиге server.properties нужно указывать IP: 0.0.0.0
# Если у вас Bungeecord / Velocity, укажите в конфиге Bungeecord / Velocity IP: 0.0.0.0:25565
# sudo ufw allow 22/tcp comment "Порт для использования удалённого подключения к данной машине по SSH протоколу"
# sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
# sudo firewall-cmd --reload # <- Обычно он всегда требует перезагрузки для того, чтобы новые правила вступили в силу.
# Обратите внимание, что firewalld по умолчанию закрывает все* порты
# Обратите внимание, что ufw по умолчанию закрывает все** порты ( < ! > Может быть опасно < ! > )
* - Под словом все имеется 25565 и т.д. Порт 22 к примеру НЕ БУДЕТ закрыт!
** - Данная встроенная FireWall утилита по умолчаю может блокировать даже SSH/SFTP порт, рекомендуем сразу открыть его
через команда $ sudo ufw allow 22/tcp
```
### Установка Java на вашу серверную машину
- Вы научитесь легко и просто устанавливать и удалять Java с вашего сервера
@@ -140,64 +124,73 @@ sudo firewall-cmd --reload
# -d | --diff, --delete — Проверить начилие архивов, удалить файл из архива
```
- Пример перемещения файлов по системе Linux (Не выполняйте эти команды просто так!)
- Пример перемещения файлов по системе Linux
```
# < ! > НЕ ОБЯЗАТЕЛЬНЫЕ КОМАНДЫ < ! >
mv /home/others/Test /others2
# Также вы можете использовать флаг* -v чтобы увидеть подроную информацию о процессе
# ~ — тильда, дает понять системе, что это корневой каталог root (~)
# Т.е ~/others2 и т.д
mv -v ~/home/others/Test ~/others2
# Вы можете также использовать приставку sudo к команде mv
# Теперь вы знакомы с командой для перемещения файлов, но рекомендуется еще раз закрепить материал
# Попробуйте данные команды на каком-то пустом сервере, либо можете установить WSL2 на вашу систему
# Рекомендуемый дистрибутив ОС — Ubuntu,Debian
# Рекомендуемый дистрибутив ОС для создания Проектов (Серверов) — Ubuntu, Debian
```
### Начало процесса установки Java на ваш виртуальный/выделенный сервер
- Установка и распаковка архива при помощи "tar" — встроенный архиватор в Linux
### Начало процесса установки Java на ваш Linux сервер
- Установка и распаковка архива при помощи "tar" — встроенная утилита упаковки/распаковки архива с файлами в Linux
```
# Архив уже должен быть установлен / перемещен в выбранную вами директорию
# Чтобы установить архив, вы можете использовать в качестве передачи файлов SFTP приложение
# WinSCP, либо же скачать сразу из консоли - wget <url>
# Команду писать без <>
# Вы также можете использовать - curl
# Если в вашей системе данная утилита отсутствует, то вы можете установить её самостоятельно
# sudo apt install curl
# Пример использования:
# curl https://api.papermc.io/v2/projects/paper/versions/1.19.2/builds/125/downloads/paper-1.19.2-125.jar -o paper.jar
# Теперь давайте его распакуем — после распаковки появится папка с нашей Java
# Выполните команду:
tar xf ИМЯ.tar.gz
# Обычно все пакеты имеют расширение .tar.gz
# Но мы ведь как раз используем "tar" ;)
tar -xvf archive.tar.gz
# Например архив с Java называется:
OpenJDK16U-jdk_x64_linux_hotspot_16.0.1_9.tar.gz
Скачиваем к примеру Adoptium JDK Java 18 под amd64 платформу (Ubuntu, Debian, Arch)
# < ! > Название может быть иное, пожалуйста узнайте это < ! >
# Данная команда скачает и установит вам Java JDK 18 от Adoptium, вам нужно лишь только ввести её в терминал
cd /opt && sudo wget https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2%2B9/OpenJDK18U-jdk_x64_linux_hotspot_18.0.2_9.tar.gz && sudo tar -xvf OpenJDK18U-jdk_x64_linux_hotspot_18.0.2_9.tar.gz && ln -svf /opt/jdk-18.0.2+9/bin/java /usr/bin/java && java -version
# Для распаковки архива потребувется ввести всего одну команду:
# < ! > Название архива может быть иное < ! >
# Информацию об установке Java ниже можете не применять при вводе команды выше.
# Для распаковки архива потребувется ввести всего одну команду (Уже применена в примерной установке выше):
tar xf OpenJDK16U-jdk_x64_linux_hotspot_16.0.1_9.tar.gz
tar -xvf OpenJDK18U-jdk_x64_linux_hotspot_18.0.2_9.tar.gz
# На момент создания статьи последняя Java, которую лично я проверял у себя на Проектах
# Выполните данные команды для скачивания архива:
cd ДИРЕКТОРИЯ
sudo wget ССЫЛКА
# Из примера выше
## curl https://api.papermc.io/v2/projects/paper/versions/1.19.2/builds/125/downloads/paper-1.19.2-125.jar -o paper.jar
... Далее команды распаковки и все действия выше
# В нашем случае это не PaperMC, а Java, поэтому:
sudo wget https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2%2B9/OpenJDK18U-jdk_x64_linux_hotspot_18.0.2_9.tar.gz
# ССЫЛКУ брать отсюда - https://adoptium.net/releases.html
# Также можно использовать утилиту CURL, заместо WGET
sudo curl ссылка -o выходной_файл.расширение
# Если все сделано верно, то вы успешно распаковали Java в директорию
# Все версии Java доступны по этой ссылке: https://github.com/orgs/adoptium/repositories
# Если вы сделали всё правильно, то теперь вы получите информацию о вашей Java при вводе данной команды:
java -version
```
### Создание "Линка" для нашего файла Java в папке с самой Java
@@ -208,13 +201,12 @@ sudo wget ССЫЛКА
# Но у нас ведь нет интерфейса, поэтому будем использовать команду "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 — /opt/jdk-18.0.2+9/bin/java
ln -svf /opt/jdk-18.0.2+9/bin/java /usr/bin/java
# Если вы все сделали правильно, то вы успешно установили Java на вашу машину
```
@@ -250,11 +242,10 @@ java -version
```
# Открываем приложение основной терминал системы (Terminal, Powershell, Konsole (Manjaro) . . .)
ssh-keygen
ssh-keygen # По умолчанию генерирует 2048 Битный ключ
ssh-keygen -b 4096 # Генерация более надежного ключа
ssh-keygen -b 8192 # Генерация ключа с повышенным битным шифрованием
ssh-keygen -b 4096 # Генерация ключа с мощностью 4096 Бит (Лучше чем 2048)
ssh-keygen -b 8192 # Генерация ключа с мощностью 8192 Бит (Лучше чем 4096)
# Далее внимательно читаем логи, вы уже почти создали пару ключей на вашем ПК ~/users/ВашЮзер/.ssh