Cześć, Habr! A właściwie oszuści, którzy szukają, jak uruchomić server minecraft do zabawy z przyjaciółmi.
Artykuł jest skierowany do osób nietechnicznych, bez umiejętności administracji systemami, w skrócie, nie do głównej publiczności Habra. W artykule znajduje się krok po kroku instrukcja tworzenia serwera minecraft z dedykowanym IP, dostosowana do osób, które są daleko od IT. Jeśli to nie o Tobie – lepiej przejdź dalej.
Czym jest serwer?
Zatem, czym jest serwer? Jeśli opierać się na pojęciu "serwer" jako składniku oprogramowania, to serwer to program, który może przyjmować, przetwarzać i przekazywać dane otrzymywane od użytkowników (klientów), którzy są podłączeni do tego serwera. Na przykładzie strony internetowej – strona znajduje się na pewnym serwerze WWW, do którego dostęp uzyskujesz przez przeglądarkę. W naszym przypadku – serwer minecraft generuje świat, do którego łączą się gracze (klienci), którzy mogą chodzić, łamać bloki itd. Za połączenie graczy i wszelkie ich działania odpowiada serwer minecraft.
Oczywiście, że serwer musi być uruchomiony na komputerze (maszynie). Można uruchomić serwer na swoim domowym komputerze, ale w takim przypadku:
- Narażasz bezpieczeństwo swojego komputera, otwierając na nim porty
- Serwer obciąży Twój komputer, co może utrudniać jego pracę
- Nie możesz utrzymać domowego komputera w trybie pracy 24/7: czasami go wyłączasz, czasami Twój komputer traci połączenie z internetem itd.
- Aby uzyskać dostęp do swojego serwera z zewnątrz, musisz odnosić się do komputera poprzez adresem IP, który u "domowych" dostawców internetowych jest dynamiczny, co oznacza, że może się zmieniać co 2-3 dni z powodów niezależnych od Ciebie.
Jak rozwiązamy te problemy?
Rozwiązaniem wszystkich wymienionych problemów jest wykorzystanie maszyny wirtualnej z ze statycznym, czyli niezmiennym adresem IP.
Złożona terminologia? Zajmijmy się tym.
Odwołajmy się do Wikipedii.
Maszyna wirtualna (VM, od ang. virtual machine) – system programowy i/lub sprzętowy, emulujący sprzęt danej platformy...Jeśli wyjaśniać w bardzo prostych słowach – to komputer w komputerze. Można na nim również zainstalować system operacyjny i pracować z nim jak z normalnym komputerem.
Gdzie to zdobyć?
Odpowiedź jest prosta — . To platforma, która oferuje wiele różnych usług chmurowych, przydatnych dla wszystkich, którzy pracują w sieci, i nie tylko. Do stworzenia serwera Minecraft idealnie nada się jeden z produktów AWS — Amazon EC2 — chmurowa maszyna wirtualna, która jest dostępna 24/7. AWS oferuje minimalną maszynę wirtualną (10GB SSD, 1GB RAM) bezpłatnie przez rok, a także daje możliwość przypisania bezpłatnego statycznego adresu IP do stałego dostępu do Twojej VM (maszyny wirtualnej) pod tym samym adresem.
Tworzymy i konfiguruje VM
Przejdź na stronę i zarejestruj się. Następnie przejdź do konsoli zarządzania.

W konsoli wśród usług znajdź EC2 i przejdź do niej.
Ważne jest, aby wybrać centrum danych, mówiąc prościej, miejsce, gdzie znajdują się serwery Amazon. Należy wybierać w zależności od swojego położenia, ponieważ prędkość komunikacji w internecie jest różna, i powinno się wybrać centrum danych, z którym komunikacja z twojego miasta będzie najszybsza.

Aby wybrać centrum danych, polecam skorzystanie z serwisu , który mierzy prędkość przesyłania pakietów do innych miast.
W moim przypadku (miasto Moskwa) pasowało mi irlandzkie centrum danych.
Nadeszła pora, aby stworzyć maszynę wirtualną. Aby to zrobić, przejdź na zakładkę Launch instance

Zaczniemy konfigurować VM.
1) Wybierzemy obraz systemu operacyjnego. Do uruchamiania serwerów bardzo wygodny jest Linux, będziemy używać dystrybucji CentOS7
Należy zauważyć, że na twojej maszynie wirtualnej nie będzie środowiska graficznego, dostęp do maszyny będzie realizowany za pomocą konsoli. Umożliwia ona zarządzanie VM za pomocą poleceń, a nie myszki. Nie obawiaj się tego: nie powinno cię to zatrzymać w tej chwili ani zniechęcać do pomysłu uruchomienia własnego serwera Minecraft, twierdząc, że jest to "zbyt skomplikowane". Praca z maszyną przez konsolę nie jest trudna — wkrótce sam się o tym przekonasz.

2) Teraz zdefiniujemy konfigurację techniczną VM. Do bezpłatnego użycia Amazon oferuje konfigurację t2.micro, co jest trochę za mało dla pełnoprawnego dużego serwera Minecraft, ale wystarczy do gry z przyjaciółmi.

3) Pozostałe opcje ustawienia pozostawiamy domyślne, ale zatrzymujemy się na zakładce Configure Security groups.

Tutaj musimy skonfigurować dostęp do portów dla serwera Minecraft.
Mówiąc prosto, port to liczba nieujemna, która wskazuje, do kogo skierowane są przychodzące dane z zewnętrznego świata. Na VM może znajdować się wiele różnych usług i serwerów, dlatego wszystkie przychodzące pakiety danych zawierają w swoim nagłówku port (numer) odbiorcy (usługi, serwera) wewnątrz VM.
Dla serwerów Minecraft de facto standardem jest użycie portu 25565. Dodajemy regułę określającą, że dostęp do naszej VM przez ten port jest dozwolony.


Przechodzimy do okna końcowego tworzenia VM, klikając przycisk Review and Launch
Konfiguracja pary kluczy SSH dla VM
Zatem połączenie z maszyną będzie odbywać się za pomocą protokołu SSH.
Protokół SSH działa w następujący sposób: generowana jest para kluczy (otwarty i prywatny), na VM przechowywany jest klucz publiczny, a na komputerze osoby łączącej się z VM (klienta) — klucz prywatny. Podczas połączenia VM sprawdza, czy klient ma odpowiedni klucz prywatny.
Naciśnij przycisk Launch. Przed tobą pojawi się następujące okno:

Wprowadź nazwę pary kluczy (dla twojej wygody) i kliknij Download key pair. Powinien zostać pobrany .pem plik zawierający twój klucz prywatny. Kliknij przycisk Launch instances. Właśnie stworzyłeś wirtualną maszynę, na której uruchomisz serwer.
Zdobywanie statycznego IP
Teraz musimy zdobyć i przypisać statyczne IP do naszej VM. W tym celu w menu znajdujemy zakładkę Elastic IPs i przechodzimy do niej. Na zakładce klikamy przycisk Allocate Elastic IP address i otrzymujemy statyczne IP.

Teraz otrzymany adres IP musimy przypisać do naszej VM. W tym celu wybieramy ją z listy i w menu Actions wybieramy Associate IP address

Następnie przypiszemy VM do naszego adresu IP.

Gotowe!
Logujemy się do VM
Teraz, gdy VM jest skonfigurowana, a adres IP przypisany, połączymy się z nią i zainstalujemy nasz serwer Minecraft.
Aby połączyć się z VM przez SSH, skorzystamy z programu . Od razu zainstaluj PuTTYgen z tej samej strony
Po zainstalowaniu PuTTY otwórz go. Teraz trzeba skonfigurować połączenie.

- Na zakładce Sesja wybierz typ połączenia SSH, port 22. Podaj nazwę połączenia. Nazwa hosta do połączenia przez SSH ma formę:
nazwa_użytkownika@publiczny_dns.
Domyślna nazwa użytkownika w AWS dla CentOS to — centos. Twój publiczny DNS możesz zobaczyć tutaj:

Uzyskałem ciąg centos@ec2-54-246-186-12.eu-west-1.compute.amazonaws.com
- Na zakładce SSH -> Auth wskaź swój prywatny klucz SSH. Jest przechowywany w pliku
.pem, który wcześniej pobraliśmy. Ale PuTTY nie obsługuje plików.pem, potrzebny jest format.ppk. Do konwersji skorzystamy z PuTTYgen. . Otrzymany plik.ppkZapisujemy i wskazujemy tutaj:

- Łączymy się z VM, otwierając połączenie przyciskiem Otwórz.
Gratulacje! Właśnie połączyliśmy się z konsolą twojego VM. Teraz musimy uruchomić nasz serwer.
Instalacja i konfiguracja serwera minecraft
Zaczniemy konfigurować nasz serwer. Na początek, musimy zainstalować kilka pakietów na naszej VM.
sudo yum install -y wget mc iptables iptables-services java screenWyjaśnijmy, do czego służy każdy z pakietów.
- . Wersje ICU są nieistotne. — narzędzie do pobierania plików w systemie linux. Dzięki niemu pobierzemy pliki serwera.
- mc — konsolowy edytor tekstowy. Wyróżnia się prostotą i wygodą w użyciu dla niewprawnego użytkownika.
- iptables — narzędzie do zarządzania i konfigurowania firewall'a, dzięki któremu otworzymy port dla serwera na naszej VM.
- java — Minecraft działa na javie, dlatego jest niezbędna do prawidłowego działania serwera.
- screen — menedżer okien dla linuxa. Pozwoli nam to zduplikować naszą konsolę do uruchomienia serwera. Faktem jest, że serwer musi być uruchomiony przez konsolę, gdyż jeśli rozłączysz się z VM, proces serwera zostanie zatrzymany. Dlatego uruchomimy go w osobnym oknie konsoli.
Teraz skonfigurujemy firewall.
Firewall — utwór oprogramowania lub sprzętu komputerowego, który kontroluje i filtruje przechodzący przez niego ruch sieciowy zgodnie z określonymi zasadami. (Wikipedia)
Mówiąc prostym językiem: wyobraź sobie miasto-twierdza. Jest ono ciągle atakowane z zewnątrz, podczas gdy w mieście toczy się zwyczajne życie. Aby uzyskać dostęp do miasta, w murze twierdzy są wrota, przy których stoją strażnicy i sprawdzają listy, czy można puścić tę osobę do twierdzy. Rolę murów i wrót w sieciach komputerowych pełni firewall.
sudo mcedit /etc/sysconfig/iptablesWłaśnie stworzyliśmy plik konfiguracyjny firewalla. Wypełnijmy go standardowymi danymi konfiguracyjnymi, dodając regułę dla portu 25565, który jest standardowym portem dla serwera minecraft.
*filtr
:WEJŚCIE AKCEPTUJ [0:0]
:PRZEWODNIK AKCEPTUJ [0:0]
:WYJŚCIE AKCEPTUJ [0:0]
-A WEJŚCIE -m state --state RELATED,ESTABLISHED -j AKCEPTUJ
-A WEJŚCIE -p icmp -j AKCEPTUJ
-A WEJŚCIE -p tcp -m state --state NEW -m tcp --dport 25565 -j AKCEPTUJ
-A WEJŚCIE -i lo -j AKCEPTUJ
-A WEJŚCIE -p tcp -m state --state NEW -m tcp --dport 22 -j AKCEPTUJ
-A WEJŚCIE -j ODRZUĆ --reject-with icmp-host-prohibited
-A PRZEWODNIK -j ODRZUĆ --reject-with icmp-host-prohibited
KONIECZamknij plik, naciskając F10, zapisując zmiany.

Teraz uruchomimy firewall i włączymy go do autostartu:
sudo systemctl enable iptables
sudo systemctl restart iptablesPliki serwera przechowamy w osobnym folderze, stworzymy go, przejdziemy do niego i pobierzemy pliki serwera. Do tego celu należy użyć . Wersje ICU są nieistotne.
mkdir minecraft
cd minecraft
wgetNależy znaleźć bezpośredni link do pobrania .jar pliku serwera. Na przykład, link do pliku serwera wersji 1.15.2:
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jarSprawdź zawartość folderu za pomocą polecenia ls, upewnij się, że pliki zostały pobrane.

Uruchomimy plik serwera. Teraz serwer nie będzie działać: utworzy wszystkie konieczne pliki do pracy, a także zgłosi błąd, że nie zgodziłeś się na warunki licencji EULA. Zaakceptuj warunki, otwierając plik eula.txt
sudo mcedit eula.txtPotwierdź swoje zgody, zmieniając wpis na:
eula=trueOtwórz plik server.properties: to jest plik konfiguracyjny twojego serwera.
Należy wprowadzić następującą zmianę:
online-mode=falsePozostałe ustawienia — według własnego uznania.
Uruchamianie serwera
Nadszedł czas, aby uruchomić serwer. Jak już wspomniałem, serwer uruchamia się bezpośrednio z konsoli, ale jeśli zamkniemy główną konsolę — proces serwera zostanie zatrzymany. Dlatego stwórzmy kolejną konsolę:
screenW tej konsoli uruchomimy serwer:
sudo java -Xms512M -Xmx1024M -jar .jar --noguiSerwer uruchamia się przez około 45 sekund, nie przerywaj procesu. Gdy serwer zostanie zainicjowany i uruchomiony, zobaczysz coś w rodzaju:

Gratulacje! Właśnie uruchomiłeś swój serwer minecraft. Teraz ważne jest, aby prawidłowo wyjść z drugiej konsoli, aby mogła pracować z działającym serwerem. W tym celu naciśnij Ctrl+A, następnie D. Powinieneś znaleźć się w głównej konsoli i zobaczyć komunikat typu [odłączony od 1551.pts-0.ip-172-31-37-146]. Jeśli zajdzie potrzeba powrotu do konsoli, w której działa serwer, użyj screen -r
Teraz możesz odłączyć się od swojej VM. Twój serwer będzie dostępny pod statycznym adresem IP, który otrzymaliśmy wcześniej, na porcie 25565.

Adres do logowania na serwer będzie <twój_statyczny_IP>:25565.
Podsumowanie
Zgodnie z tą instrukcją bez trudu stworzysz darmowy serwer Minecraft z dedykowanym IP. Artykuł został napisany maksymalnie prostym językiem i jest skierowany do osób bez specjalistycznej wiedzy. W związku z tym, chętnie usłyszymy komentarze od ekspertów, ponieważ podczas upraszczania materiału można przypadkowo wprowadzić błędy w terminologii.
Źródło: habr.com
