Zdravo, Habr! Tačnije, prevaranti koji traže kako da podignu Minecraft server za igranje sa prijateljima.
Članak je namenjen neprogramerima, ne sistemskim administratorima, u suštini, ne glavnoj publici Habra. U članku se nalazi korak-po-korak uputstvo za kreiranje Minecraft servera sa statičkim IP adresom, prilagođeno ljudima daleko od IT-a. Ako to nije o vama — bolje je da preskočite članak.
Šta je server?
Dakle, šta je server? Ako se oslonimo na pojam "server" kao komponentu softvera, server predstavlja program koji može da prima, obrađuje i prenosi podatke primljene od korisnika (klijenata) koji su povezani na taj server. Na primeru sajta — sajt se nalazi na nekom veb serveru, kojem pristupate preko pregledača. U našem slučaju — Minecraft server generiše svet kojem se priključuju igrači (klijenti), koji mogu da hodaju, ruše blokove itd. Za povezivanje igrača i sve njihove akcije odgovara Minecraft server.
Očigledno je da server mora biti pokrenut na računaru (mašini). Možete podići server na svom kućnom računaru, ali u tom slučaju:
- Stavljate u opasnost bezbednost vlastitog računara otvaranjem portova na njemu.
- Server će opterećivati vaš računar, što može ometati rad na njemu.
- Ne možete održavati kućni računar u radnom stanju 24/7: ponekad ga isključujete, ponekad vaš računar gubi vezu sa internetom itd.
- Za pristup vašem serveru iz spoljnog sveta moraćete da se obraćate računaru putem IP adresom, koji kod "kućnih" internet provajdera predstavlja dinamički, to jest može se menjati svaka 2-3 dana iz razloga koji ne zavise od vas.
I kako ćemo rešiti te probleme?
Rešenje svih navedenih problema predstavlja korišćenje virtuelne mašine z statičkom, to jest nepromenljivom IP adresom.
Teška terminologija? Hajde da razjasnimo.
Obratimo se Vikipediji.
Virtuelna mašina (VM, od eng. virtual machine) — softverski i/ili hardverski sistem koji emulira hardversku opremu neke platforme...Ako kažemo vrlo jednostavno — to je računar u računaru. Na njega se takođe može instalirati operativni sistem i raditi na njemu kao na običnom računaru.
Gde ćemo je nabaviti?
Odgovor je jednostavan — To je platforma, ki ponuja številne oblačne storitve, koristne za vse, ki delajo na spletu in ne samo. Za ustvarjanje minecraft strežnika bo odlično deloval en od izdelkov AWS — Amazon EC2 — oblačna virtualna mašina, ki je na voljo 24/7. AWS ponuja minimalno virtualno mašino (10GB SSD, 1GB RAM) brezplačno za eno leto, prav tako pa omogoča dodelitev brezplačne statične IP-naslova za stalni dostop do vaše VM (virtualne mašine) na istem naslovu.
Ustvarjamo in nastavljamo VM
Pojdite na spletno stran in se registrirajte. Nato pojdite v upravljalsko konzolo.

V konzoli med storitvami poiščite EC2 in preklopite nanj.
Pomembno je izbrati podatkovni center, enostavno rečeno, mesto, kjer se nahajajo strežniki Amazona. Izbira je odvisna od vaše lokacije, saj se hitrost komunikacije v internetu razlikuje, zato je smiselno izbrati podatkovni center, s katerim bo povezava iz vašega mesta čim hitrejša.

Za izbiro podatkovnega centra priporočam uporabo storitve , ki meri hitrost prenosa paketov z drugimi mesti.
V mojem primeru (Moskva) mi je ustrezal irski podatkovni center.
Zdaj je čas za ustvarjanje virtualne mašine. Za to pojdite na zavihek Launch instance

Začnimo s konfiguracijo VM.
1) Izberite sliko operacijskega sistema. Za dvigovanje strežnikov je zelo primeren Linux, uporabljali bomo distribucijo CentOS7
Pomembno je omeniti, da na vaši virtualni mašini ne bo grafičnega okolja, dostop do mašine bo možen prek konzole. Ta omogoča upravljanje VM s pomočjo ukazov, ne miške. Ne obupujte: to ne bi smelo ustaviti vas zdaj ali odvrniti od ideje postaviti svoj minecraft strežnik, ker je to "preveč zapleteno". Delo z napravo prek konzole ni težavno — kmalu se boste o tem prepričali.

2) Zdaj določimo tehnično konfiguracijo VM. Za brezplačno uporabo Amazon ponuja konfiguracijo t2.micro, kar je premalo za popoln velik minecraft strežnik, vendar je dovolj za igranje s prijatelji.

3) Preostale nastavitve pustimo privzeto, vendar se ustavimo na zavihku Configure Security groups.

Tukaj moramo nastaviti dostop do vrat za minecraft strežnik.
Če razložimo preprosto: vrata so nenegativna številka, ki označuje, kam so namenjeni dohodni podatki iz zunanjega sveta. Na VM-ju se lahko nahaja več različnih storitev in strežnikov, zato vsi dohodni podatkovni paketi hranijo v svoji glavi vrata (številko) naslovnika (storitev, strežnik) znotraj VM.
Za minecraft strežnike je de facto standard uporaba vrata 25565. Dodali bomo pravilo, ki določa, da je dostop do vašega VM-ja prek teh vrat dovoljen.


Preidite na okno za dokončanje ustvarjanja VM-ja s klikom na gumb Review and Launch
Nastavitev para ključev SSH za VM
Torej, povezava z napravo bo potekala prek protokola SSH.
Protokol SSH deluje na naslednji način: ustvari se par ključev (javni in zasebni), na VM-ju se hrani javni ključ, na računalniku osebe, ki se povezuje z VM-jem (odjemalec) pa zasebni. Med povezovanjem VM preveri, ali ima odjemalec ustrezen zasebni ključ.
Kliknite na dugme Launch. Pred vami se bo pojavilo naslednje okno:

Vnesite ime para ključev (za vašo priročnost) in kliknite Prenesite par ključev. Naložiti bi morali .pem datoteko, ki vsebuje vaš zasebni ključ. Kliknite gumb Zaženi instance. Pravkar ste ustvarili virtualno napravo, na kateri bo postavljen strežnik.
Pridobitev statičnega IP-ja
Zdaj moramo pridobiti in privezati statični IP k naši VM. Za to v meniju poiščite zavihek Elastični IP-ji in preidite na njega. Na zavihku pritisnite gumb Dodeli elastic IP naslov in pridobite statični IP.

Zdaj je potrebno pridobljen IP-naslov povezati z našo VM. Za to izberemo VM iz seznama in v meniju Akcije izberemo Poveži IP naslov

Nato bomo povezali VM z našim IP-naslovom

Gotovo!
Stopite na VM
Zdaj, ko je VM nastavljen in je IP-naslov povezan, se bomo povezali z njo in namestili naš minecraft strežnik.
Za povezovanje z VM preko SSH uporabite program . Takoj namestite PuTTYgen s te strani
Po namestitvi PuTTY-ja ga odprite. Zdaj je potrebno nastaviti povezovanje.

- V zavihku Session izberite tip povezovanja SSH, vrata 22. Dajte ime povezavi. Ime gostitelja za povezavo prek SSH je vrstica tipa:
ime_uporabnika@javna_dns.
Uporabniško ime v AWS za CentOS privzeto je centos. Vaš javni DNS lahko najdete tukaj:

Moj rezultat je bila vrstica centos@ec2-54-246-186-12.eu-west-1.compute.amazonaws.com
- V zavihku SSH -> Avtorizacija določite vaš zasebni SSH-ključ. Shranjen je v datoteki
.pem, ki smo ga prenesli prej. Toda PuTTY ne zna delati s datotekami.pem, potrebuje format.ppk. Za pretvorbo bomo uporabili PuTTYgen. . Pridobljena datoteka.ppkShranjeno bomo in tukaj navedli:

- Povezujemo se z VM, tako da odprete povezavo s tipko Open.
Čestitam! Pravkar smo se povezali s konzolo vaše VM. Še preostane, da na njej zaženemo naš strežnik.
Namestitev in nastavitev minecraft strežnika
Začnimo z nastavitvijo našega strežnika. Najprej je potrebno namestiti nekaj paketov na našo VM.
sudo yum install -y wget mc iptables iptables-services java screenRazjasnimo, za kaj je vsak od paketov.
- wget — pripomoček za prenos datotek v linuxu. S pomočjo njega bomo prenesli datoteke strežnika.
- mc — konzolni besedilni urejevalnik. Odlikuje se s preprostostjo in enostavno uporabo za neizkušenega uporabnika.
- iptables — pripomoček za upravljanje in nastavitev požarnega zidu, s pomočjo katerega bomo odprli vrata za strežnik na naši VM.
- java — minecraft deluje na Javi, zato je ta potrebna za delovanje strežnika
- screen — upravitelj oken za linux. Omogočil bo podvajanje naše konzole za zagon strežnika. Gre za to, da mora biti strežnik zagnan skozi konzolo; če se odklopite od svoje VM, se bo postopek strežnika ustavil. Zato ga bomo zagnali v ločenem oknu konzole.
Sedaj nastavimo požarni zid.
Požarni zid (firewall) — programski ali programsko-strojni element računalniške mreže, ki izvaja nadzor in filtriranje omrežnega prometa, ki ga obdeluje, v skladu z določenimi pravili. (Wikipedia)
Poenostavljeno: predstavljajte si mesto-trdnjavo. Neprestano ga napadajo od zunaj, pri tem pa v mestu poteka običajno življenje. Za dostop v mesto imajo steno trdnjave vrata, pri katerih stojijo stražarji in preverjajo na seznamu, ali lahko teh človeka spustijo v trdnjavo. Vloga stene in vrat v računalniških omrežjih je požarni zid.
sudo mcedit /etc/sysconfig/iptablesPravkar smo ustvarili datoteko s konfiguracijo požarnega zidu. Napolnimo jo z običajnimi podatki konfiguracije, vključujoč pravilo za vrata 25565, ki so standardna vrata za minecraft strežnik.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25565 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMITZapremo datoteko s pritiskom na tipko F10, shranjujemo spremembe.

Sedaj zagnjimo požarni zid in omogočimo njegov avtoložitev:
sudo systemctl enable iptables
sudo systemctl restart iptablesDatoteke strežnika bomo shranili v posebno mapo, ustvarili jo bomo, prešli vanjo in prenesli datoteke strežnika. Za to uporabimo wget
mkdir minecraft
cd minecraft
wgetPotrebno je najti direktno povezavo za prenos .jar datoteke strežnika. Na primer, povezava do datoteke strežnika različice 1.15.2:
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jarOglejte si vsebino mape s pomočjo ukaza ls, prepričajte se, da so datoteke prenesene.

Zaženimo datoteko strežnika. Sedaj strežnik ne bo deloval: ustvaril bo vse potrebne datoteke za delovanje in opozoril, da se niste strinjali s pogoji licenčne pogodbe EULA. Sprejmite pogoje, tako da odprete datoteko eula.txt
sudo mcedit eula.txtPotrdite svoje soglasje s spremembo vnosa na:
eula=trueOdprite datoteko server.properties: to je konfiguracijska datoteka vašega strežnika.
V njem je nujno potrebno spremeniti naslednje:
online-mode=falseOstale nastavitve so po vaši želji.
Zagon strežnika
Prišel je čas, da zaženete strežnik. Kot sem že rekel, strežnik se zažene neposredno iz konzole, vendar če zapremo osnovno konzolo — se postopek strežnika ustavi. Zato ustvarimo še eno konzolo:
screenV tej konzoli zagnite strežnik:
sudo java -Xms512M -Xmx1024M -jar .jar --noguiStrežnik se zažene približno 45 sekund, ne prekinjajte procesa. Ko bo strežnik inicializiran in zagnan, boste videli nekaj takega:

Čestitam! Pravkar ste postavili in zagnali svoj Minecraft strežnik. Zdaj je pomembno, da pravilno zapustite drugo konzolo, da bo ta nadaljevala z delovanjem zagnanega strežnika. Za to pritisnite Ctrl+A, nato D. Morali bi se vrniti v osnovno konzolo in videti sporočilo tipa [odklopljeno z 1551.pts-0.ip-172-31-37-146]. Če se boste morali vrniti v konzolo, v kateri je zagnan strežnik, uporabite screen -r
Zdaj se lahko odmaknete od svoje VM. Vaš strežnik bo dostopen po statični IP-naslovu, ki smo ga prej pridobili, na vratih 25565.

To pomeni, da bo naslov za dostop do strežnika :25565.
Zaključek
S to akcijo boste zlahka postavili brezplačni minecraft strežnik z dodeljenim IP. Članek je napisan na razumljiv način in je namenjen neizkušenim uporabnikom. Zato bi bilo zanimivo slišati komentarje strokovnjakov, saj lahko pri poenostavljanju materiala pride do dejanskih napak v terminologiji.
Izvor: habr.com
