From afd7001ccfac3476699d3a19846e7a50ac3d7802 Mon Sep 17 00:00:00 2001 From: Dmitriy <77334306+DIDIRUS4@users.noreply.github.com> Date: Sat, 13 Aug 2022 20:12:36 +0300 Subject: [PATCH] Update README.md --- README.md | 141 +++++++++++++++++++++++++----------------------------- 1 file changed, 66 insertions(+), 75 deletions(-) diff --git a/README.md b/README.md index 0dfe217..a01f153 100644 --- a/README.md +++ b/README.md @@ -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 # Команду писать без <> +# Вы также можете использовать - 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