Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Hej Habr! Pli precize, friponoj, kiuj serĉas kiel agordi minecraft-servilon por ludi kun amikoj.

La artikolo estas destinita por neprogramistoj, ne-sistemaj administrantoj, ĝenerale, ne por la ĉefa publiko de Habr. La artikolo enhavas paŝon post paŝo instrukciojn por krei Mincraft-servilon kun dediĉita IP, adaptita por homoj, kiuj estas malproksime de IT. Se ĉi tio ne temas pri vi, estas pli bone preterlasi la artikolon.

Kio estas servilo?

Kio do estas servilo? Se ni fidas je la koncepto de "servilo" kiel programaro, tiam la servilo estas programo, kiu povas ricevi, procesi kaj transdoni datumojn ricevitajn de uzantoj (klientoj), kiuj estas konektitaj al ĉi tiu servilo. Sur la ekzemplo de retejo - la retejo situas sur iu retservilo, kiun vi aliras per retumilo. En nia kazo, la minecraft-servilo generas mondon al kiu ludantoj (klientoj) konektas, kiuj povas marŝi, rompi blokojn ktp. La minecraft-servilo respondecas pri konekti ludantojn kaj iujn el iliaj agoj.

Evidente, la servilo devas funkcii en la komputilo (maŝino). Vi povas levi la servilon sur via hejma komputilo, sed ĉi-kaze:

  • Vi kompromitas la sekurecon de via propra komputilo malfermante havenojn sur ĝi
  • La servilo ŝarĝos vian komputilon, kio povas malhelpi vian laboron kun ĝi
  • Vi ne povas teni vian hejman komputilon funkcianta 24/7: foje vi malŝaltas ĝin, foje via komputilo perdas sian retkonekton, ktp.
  • Por aliri vian servilon de la ekstera mondo, vi devos aliri vian komputilon uzante IP-adreso, kio por "hejmaj" retprovizantoj estas dinamika, tio estas, ĝi povas ŝanĝiĝi ĉiujn 2-3 tagojn pro kialoj ekster via kontrolo.

Kaj kiel ni solvas ĉi tiujn problemojn?

La solvo al ĉiuj ĉi tiuj problemoj estas uzi virtuala maŝino el statika, tio estas, neŝanĝebla IP-adreso.

Malfacila terminologio? Ni eltrovu ĝin.
Ni turnu nin al Vikipedio.

Виртуальная машина (VM, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы...

Por meti ĝin en tre malglata lingvo, ĝi estas komputilo ene de komputilo. Vi ankaŭ povas instali operaciumon sur ĝi kaj labori kun ĝi kiel kun regula komputilo.

Kien ni prenos ĝin?

La respondo estas simpla - AWS. Ĉi tio estas platformo, kiu provizas multajn malsamajn nubajn servojn, kiuj estas utilaj por ĉiuj, kiuj laboras kun la reto kaj ne nur. Por krei Mincraft-servilon, unu el la AWS-produktoj estas perfekta - Amazon EC2 - nuba virtuala maŝino disponebla 24/7. AWS ofertas minimuman virtualan maŝinon (10GB SSD, 1GB RAM) senpage dum unu jaro, krome, ĝi ebligas ligi senpagan dediĉitan (senmovan) IP-adreson por konstanta aliro al via VM (virtuala maŝino) ĉe la sama adreso.

Krei kaj agordi VM

Iru al la retejo AWS kaj registriĝu. Poste iru al la administra konzolo.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

En la konzolo, inter la servoj, trovu EC2 kaj iru al ĝi.

Gravas elekti datuman centron, alivorte, la loko kie troviĝas la amazonaj serviloj. Vi devus elekti depende de via loko, ĉar la rapido de komunikado en Interreto estas malsama, kaj vi devus elekti datumcentron kun kiu komunikado de via urbo estos kiel eble plej rapida.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Por elekti datumcentron, mi rekomendas uzi la servon Mirinda Reto, kiu mezuras la rapidecon je kiu pakoj estas senditaj al aliaj urboj.
En mia kazo (Moskvo), mi estis kontaktita de irlanda datumcentro.

Estas tempo krei virtualan maŝinon. Por fari tion, iru al la langeto Lanĉa instanco

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Ni komencu agordi la VM.

1) Elektu la bildon de la operaciumo. Por levi servilojn, linukso estas tre oportuna, ni uzos la distribuan ilaron CentOS7

Oni devas rimarki, ke ne estos grafika medio sur via virtuala maŝino, la maŝino estos alirebla per la konzolo. Ĝi implikas kontroli la VM per komandoj, ne komputila muso. Ne timu ĝin: ĝi ne devus haltigi vin nun aŭ rezigni pri la ideo komenci vian propran Mincraft-servilon ĉar ĝi estas "tro komplika". Labori kun la maŝino per la konzolo estas facila - vi baldaŭ vidos mem.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

2) Nun ni difinu la teknikan agordon de la VM. Por senpaga uzo, Amazon ofertas agordon t2.micro, ne sufiĉas por plenrajta granda minecraft-servilo, sed sufiĉas por ludi kun amikoj.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

3) La resto de la agordoj estas lasitaj defaŭlte., Sed ni haltas sur la langeto Agordu sekurecajn grupojn.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Ĉi tie ni devas agordi havenan aliron por la minecraft-servilo.

En simplaj terminoj, haveno estas nenegativa nombro, kiu indikas, al kiu estas adresitaj envenantaj datumoj de la ekstera mondo. Povas ekzisti multaj malsamaj servoj kaj serviloj sur VM, do ĉiuj envenantaj datumpakaĵoj stokas en sia kaplinio la havenon (nombro) de la celloko (servo, servilo) ene de la VM.

Por minecraft-serviloj, la fakta normo estas uzi la havenon 25565. Ni aldonu regulon indikante, ke aliro al via VM per ĉi tiu haveno estas permesita.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Iru al la fenestro por kompletigi la kreadon de la VM alklakante la butonon Revizio kaj Lanĉo

Agordi SSH-ŝlosilparon por la VM

Do, la konekto al la maŝino estos farita per la SSH-protokolo.

La SSH-protokolo funkcias jene: ŝlosilparo estas generita (publika kaj privata), la publika ŝlosilo estas stokita sur la VM, kaj la privata ŝlosilo estas stokita sur la komputilo de la persono konektanta al la VM (kliento). Konektante, la VM kontrolas, ke la kliento havas validan privatan ŝlosilon.

gazetaro Ĵeto. La sekva fenestro aperos antaŭ vi:

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Enigu nomon por la ŝlosilparo (por via oportuno) kaj alklaku elŝutu ŝlosilparon. Vi devas elŝuti .pem dosiero enhavanta vian privatan ŝlosilon. Alklaku la butonon Lanĉu okazojn. Vi ĵus kreis virtualan maŝinon, kiu gastigos la servilon.

Akirante statikan IP

Nun ni devas akiri kaj ligi statikan IP al nia VM. Por ĉi tiu menuo ni trovas la langeton Elastaj IP-oj kaj trairu ĝin. Sur la langeto, alklaku la butonon Asignu elastan IP-adreson kaj ricevu statikan IP.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Nun la ricevita IP-adreso devas esti ligita al nia VM. Por fari tion, elektu ĝin el la listo kaj en la menuo agoj elektu Asociita IP-adreso

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Poste, ligu la VM al nia IP-adreso

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Farita!

Iru al VM

Nun kiam la VM estas agordita kaj la IP-adreso estas ligita, ni konektu al ĝi kaj instalu nian Mincraft-servilon.

Por konektiĝi al la VM per SSH, uzu la programon PUTTY. Tuj instalu PuTTYgen de la sama paĝo

Post instalo de PuTTY, malfermu ĝin. Nun vi devas agordi la konekton.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

  1. En la langeto kunsido elektu tipon de konekto SSH, haveno 22. Indiku nomon por la konekto. La gastiga nomo por konekti per SSH estas ĉeno kiel: имя_пользователя@публичный_dns.

La defaŭlta uzantnomo en AWS por CentOS estas − centoj. Via publika DNS videblas ĉi tie:

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Mi ricevis linion [email protected]

  1. En la langeto SSH -> Aŭt provizu vian privatan SSH-ŝlosilon. Ĝi estas konservita en dosiero .pem, kiun ni elŝutis pli frue. Sed PuTTY ne povas funkcii kun dosieroj .pem, ĝi bezonas la formaton .ppk. Ni uzos PuTTYgen por la konvertiĝo. Instrukcioj por konverti el la retejo de PuTTYgen. Ricevita dosiero .ppk Konservu kaj enigu ĉi tie:

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

  1. Ni konektas al la VM malfermante la konekton per la butono malfermita.
    Gratulon! Ni ĵus konektis al la konzolo de via VM. Restas levi nian servilon al ĝi.

Instalado kaj agordo de Minecraft-servilo

Ni komencu agordi nian servilon. Unue, ni devas instali kelkajn pakaĵojn sur nia VM.

sudo yum install -y wget mc iptables iptables-services java screen

Ni eltrovu por kio estas ĉiu el la pakoj.

  • wget - ilo por elŝuti dosierojn en linukso. Kun ĝi, ni elŝutos la servildosierojn.
  • mc - konzola tekstoredaktilo. Malsamas en simpleco kaj oportuno en uzo por la nepreparita uzanto.
  • iptables - ilo por administri kaj agordi fajroŝirmilon, helpe de ĝi ni malfermos havenon por servilo en nia VM.
  • java - Minecraft funkcias per java, do necesas, ke la servilo funkciu
  • ekrano estas fenestra administranto por linukso. Ĝi permesos al ni duobligi nian konzolon por levi la servilon. La fakto estas, ke la servilo devas esti komencita per la konzolo, se vi malkonektos de via VM, la servila procezo estos ĉesigita. Tial ni rulos ĝin en aparta konzola fenestro.

Nun ni agordu la fajroŝirmilon.

Fajroŝirmilo estas programaro aŭ aparataro-programa elemento de komputila reto, kiu kontrolas kaj filtras rettrafikon trapasantan ĝin laŭ specifitaj reguloj. (Vikipedio)

Klarigi per simplaj terminoj: imagu murigitan urbon. Ĝi estas konstante atakata de ekstere, dum ordinara vivo fluas en la urbo. Por aliro al la urbo, estas pordego en la muro de la fortikaĵo, ĉe kiu staras gardistoj kaj kontrolas laŭ la listoj ĉu tiu persono povas esti permesita en la fortikaĵon. La rolo de la muro kaj pordego en komputilaj retoj estas plenumita de la fajroŝirmilo.

sudo mcedit /etc/sysconfig/iptables

Ni ĵus kreis fajroŝirmilan agordan dosieron. Plenigu ĝin per normaj agordaj datumoj, inkluzive de regulo por la haveno 25565, kiu estas la norma haveno por la minecraft-servilo.

*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
COMMIT

Fermu la dosieron klakante F10, konservante la ŝanĝojn.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Nun ni lanĉu la fajroŝirmilon kaj ebligu ĝin aŭtomate ŝargi:

sudo systemctl enable iptables
sudo systemctl restart iptables

Ni stokos la servildosierojn en aparta dosierujo, kreos ĝin, iros al ĝi kaj elŝutos la servildosierojn. Por ĉi tio vi devus uzi wget

mkdir minecraft
cd minecraft
wget <ссылка_на_jar>

Necesas trovi rekta ligilo por elŝuto .jar servila dosiero. Ekzemple, ligo al la servila dosiero versio 1.15.2:

wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar

Rigardu la enhavon de dosierujo per la komando ls, certigu, ke la dosieroj estas elŝutitaj.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Ni komencu la servilan dosieron. Nun la servilo ne funkcios: ĝi kreos ĉiujn dosierojn necesajn por laboro, kaj ĵuros, ke vi ne konsentis kun la kondiĉoj de la permesilo EULA. Akceptu la kondiĉojn malfermante la dosieron eula.txt

sudo mcedit eula.txt

Konfirmu vian konsenton ŝanĝante la eniron al:

eula=true

Malfermu la dosieron server.properties: Ĉi tio estas la agorda dosiero de via servilo. Lernu pli pri servilaj agordoj

Vi devas fari la sekvan ŝanĝon al ĝi:

online-mode=false

La ceteraj agordoj dependas de vi.

Servilo starto

Estas tempo komenci la servilon. Kiel mi diris, la servilo komenciĝas rekte de la konzolo, sed se ni fermas la ĉefan konzolon, la servila procezo estos ĉesigita. Do ni kreu alian konzolon:

screen

En ĉi tiu konzolo, lanĉu la servilon:

 sudo java -Xms512M -Xmx1024M -jar <название_файла_сервера>.jar --nogui

La servilo komenciĝas en ĉirkaŭ 45 sekundoj, ne interrompu la procezon. Kiam la servilo estas pravigita kaj funkcianta, vi vidos ion kiel:

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Gratulon! Vi ĵus ekfunkciis vian Mincraft-servilon. Nun gravas ĝuste eliri la duan konzolon por ke ĝi daŭre funkcias kun la kuranta servilo. Por fari tion, alklaku Ctrl+Atiam D. Vi devus esti en la ĉefa konzolo kaj vidi mesaĝon kiel [detached from 1551.pts-0.ip-172-31-37-146]. Se vi bezonas reveni al la konzolo, kie la servilo funkcias, uzu screen -r

Nun vi povas malkonekti de via VM. Via servilo estos atingebla ĉe la senmova IP-adreso, kiun ni ricevis antaŭe sur la haveno 25565.

Senpaga Mincraft-servilo sur AWS kun nula scio pri Linukso

Rezultas, ke la adreso por eniri la servilon estos <ваш_статический_IP>:25565.

konkludo

Sekvante ĉi tiun instrukcion, vi povas levi senpagan Mincraft-servilon kun dediĉita IP sen malfacileco. La artikolo estis verkita en la plej simpla lingvo kaj estas destinita por ne-specialistoj. Ĉi-rilate, estas interese aŭdi la komentojn de tiuj, kiuj estis hakitaj, ĉar simpligante la materialon, oni povas fari faktajn erarojn en terminologio.

fonto: www.habr.com

Aldoni komenton