Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Silav Habr! Bi rastî, xapînokên ku lê digerin ku meriv çawa serverek minecraft saz bike da ku bi hevalên xwe re bilîze.

Gotar ji bo ne-bernamenûs, ne-sysadmin, bi gelemperî, ne ji bo temaşevanên sereke yên Habrê ye. Gotar rêwerzên gav-bi-gav ji bo afirandina serverek minecraft-ê bi IP-ya taybetî, ku ji bo mirovên dûrî IT-ê hatî adaptekirin, vedihewîne. Ger ev ne li ser we be, çêtir e ku hûn gotarê berdin.

server çi ye?

Ji ber vê yekê serverek çi ye? Ger em xwe bispêrin têgeha "server" wekî hêmanek nermalavê, wê hingê server bernameyek e ku dikare daneyên ku ji bikarhênerên (mişterî) yên ku bi vê serverê ve girêdayî ne, werbigire, pêvajo bike û veguhezîne. Malper wekî nimûne bikar bînin, malper li ser hin serverek webê ye, ku hûn bi gerokek xwe digihînin. Di rewşa me de, servera minecraft cîhanek ku lîstikvan (mişterî) pê ve girêdidin, ku dikarin bimeşin, blokan bişkînin, û hwd diafirîne. Pêşkêşkara minecraft ji bo girêdana lîstikvan û her kiryarên wan berpirsiyar e.

Eşkere ye, server divê li ser komputerê (makîneyê) were xebitandin. Hûn dikarin li ser komputera xweya malê serverek saz bikin, lê di vê rewşê de:

  • Hûn ewlehiya komputera xwe bi vekirina portên li ser wê dixe xeterê
  • Pêşkêşker dê barek li ser komputera we bike, ku dibe ku di xebata we de bi wê re mudaxele bike
  • Hûn nikarin komputera xweya malê 24/7 bixebitin: Carinan hûn wê diqewirînin, carinan komputera we pêwendiya înternetê winda dike, hwd.
  • Ji bo ku hûn ji cîhana derve bigihîjin servera xwe, hûn neçar in ku bi riya komputera xwe bigihîjin Navnîşana IP'yê, ku ji bo pêşkêşkerên Înternetê "mal" e dînamîk, ango, ew dikare her 2-3 rojan carekê ji ber sedemên li derveyî kontrola we biguhezîne.

Û em çawa van pirsgirêkan çareser bikin?

Çareseriya van hemû pirsgirêkan bikaranîna e makîneya virtual re statîk, ango navnîşek IP-ya neguherbar.

Termînolojiya tevlihev? Werin em wê bihesibînin.
Ka em vegerin ser Wîkîpediya.

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

Ji bo ku ew bi şertên pir xav were gotin, ew komputerek di nav komputerê de ye. Her weha hûn dikarin pergalek xebitandinê li ser saz bikin û wekî bi komputerek asayî pê re bixebitin.

Em dikarin ji ku derê bistînin?

Bersiv hêsan e - AWS. Ev platformek e ku gelek karûbarên cloudê yên cihêreng peyda dike ku ji bo her kesê ku bi tevneyê re dixebite û ne tenê bikêr e. Ji bo afirandina serverek minecraft, yek ji hilberên AWS bêkêmasî ye - Amazon EC2 - makîneyek virtual ewr ku 24/7 heye. AWS makîneyek virtual ya herî kêm pêşkêşî dike (10 GB SSD, 1 GB RAM) belaş ji bo salekêDigel vê yekê, gengaz e ku meriv navnîşek IP-ya taybetî ya belaş (statîk) ji bo gihîştina daîmî bi VM-ya xwe (makîna virtual) li heman navnîşanê ve girê bide.

Em VM diafirînin û mîheng dikin

Herin malperê AWS û qeyd bikin. Dûv re biçin konsolê rêveberiyê.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Di konsolê de, di nav karûbaran de, bibînin EC2 û biçe wê.

Girîng e ku meriv navendek daneyê hilbijêrin, bi tenê, cîhê ku serverên Amazon lê ne. Pêdivî ye ku hûn li gorî cîhê xwe hilbijêrin, ji ber ku leza ragihandinê ya li ser Înternetê diguhere, û divê hûn navendek daneyê hilbijêrin ku pê re ragihandina ji bajarê we dê bi qasî ku gengaz be.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Ji bo hilbijartina navendek daneyê, ez pêşniyar dikim ku karûbarê bikar bînin WonderNetwork, ku leza veguhestina pakêtan bi bajarên din re dipîve.
Di doza min de (Moskow), navenda daneya îrlandî ji min re xweş bû.

Wext e ku meriv makîneyek virtual biafirîne. Ji bo vê yekê, biçin tabê Nimûneya destpêkirinê

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Werin em dest bi veavakirina VM-ê bikin.

1) Wêneyê pergala xebitandinê hilbijêrin. Linux ji bo bilindkirina serveran pir hêsan e; em ê kîtê belavkirinê bikar bînin CentOS7

Pêdivî ye ku were zanîn ku dê di makîneya weya virtual de hawîrdorek grafîkî tune be; gihîştina makîneyê dê bi konsolê re be. Ew kontrolkirina VM-ê bi karanîna fermanan li şûna mişkek komputerê vedihewîne. Ji vê netirsin: divê ev aniha we nehêle an dev ji ramana bilindkirina servera xweya minecraft bernede ji ber ku ew "pir dijwar e". Karkirina bi makîneyê re bi konsolê re ne dijwar e - hûn ê di demek nêzîk de ji xwe re bibînin.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

2) Naha em werin veavakirina teknîkî ya VM diyar bikin. Ji bo karanîna belaş, Amazon veavakirinê pêşkêşî dike t2.micro, ne bes ji bo serverek mezin a minecraft-ê ya bêkêmasî ye, lê têra lîstina bi hevalan re ye.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

3) Mîhengên mayî wekî xwerû bihêlin, lê li ser tabê rawestin Komên Ewlekariyê mîheng bikin.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Li vir pêdivî ye ku em gihîştina benderan ji bo servera minecraft mîheng bikin.

Bi gotinên hêsan, portek hejmareke ne-neyînî ye ku destnîşan dike ku daneyên hatina ji cîhana derve ji kê re têne şandin. VM dikare gelek karûbar û pêşkêşkerên cihêreng mêvandar bike, ji ber vê yekê hemî pakêtên daneya hatinî porta (hejmara) mebestê (xizmet, server) di hundurê VM-ê de di serê xwe de hilînin.

Ji bo serverên minecraft, standarda de facto karanîna portê ye 25565. Ka em qaîdeyek lê zêde bikin ku destnîşan dike ku gihîştina VM-ya we bi vê portê ve tê pejirandin.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Em bi tikandina bişkojê diçin pencereyê ji bo temamkirina çêkirina VM-ê Vekolîn û Destpêkirin

Sazkirina cotek mifteya SSH ji bo VM

Ji ber vê yekê, girêdana bi makîneyê re dê bi karanîna protokola SSH pêk were.

Protokola SSH bi vî rengî dixebite: cotek bişkok (gelemperî û taybet) têne hilberandin, mifteya giştî li ser VM-ê tê hilanîn, û mifteya taybet li ser komputera kesê ku bi VM-yê ve girêdayî ye (mişterî) tê hilanîn. Dema ku tê girêdan, VM kontrol dike ku xerîdar xwedan mifteyek taybet a maqûl e.

Bişkojkê bikirtînin Destpêkirin. Paceya jêrîn dê li ber we xuya bibe:

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Navê cotê mifteyê (ji bo rehetiya xwe) binivîse û bikirtîne Cotê kilîtê daxîne. Divê hûn dakêşin .pem pelek ku mifteya weya taybet heye. Bişkojka bitikîne Mînakên destpêkirinê. We nû makîneyek virtual çêkiriye ku server dê li ser were saz kirin.

Distînin IP-ya statîk

Naha pêdivî ye ku em IP-ya statîk bi VM-ya xwe re bistînin û girêdin. Ji bo vê menuyê em tabloyê dibînin IP -yên elastîk û em pê re diçin. Li ser tabê, bişkojka bikirtînin Navnîşana IP-ya Elastic veqetînin û IP-ya statîk bistînin.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Naha navnîşana IP-ya wergirtî divê bi VM-ya me re têkildar be. Ji bo vê yekê, wê ji navnîşê û di menuê de hilbijêrin Actions helbijartin Navnîşana IP-ê ya têkildar

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Dûv re, em ê VM-ê bi navnîşana IP-ya xwe ve girêdin

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Done!

Em diçin VM

Naha ku VM hatî mîheng kirin û navnîşana IP-yê hatî destnîşan kirin, em pê ve girêbidin û servera xweya minecraft saz bikin.

Ji bo girêdana VM-ê bi SSH-ê em ê bernameyê bikar bînin putty. PuTTYgen tavilê ji vê rûpelê saz bikin

Piştî sazkirina PuTTY, wê vekin. Naha hûn hewce ne ku pêwendiyê mîheng bikin.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

  1. Di tabê de Rûniştinî cureyê girêdanê hilbijêre SSH, port 22. Ji bo girêdanê navek diyar bikin. Navê mêvandarê ji bo girêdana bi SSH re rêzek wekî: имя_пользователя@публичный_dns.

Navê bikarhênerê xwerû di AWS de ji bo CentOS e cent. DNS-ya weya giştî dikare li vir were dîtin:

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Min rêz girt [email protected]

  1. Di tabê de SSH -> Auth mifteya xweya SSH ya taybet têkevin. Di pelê de tê hilanîn .pem, ku me berê dakêşand. Lê PuTTY nikare bi pelan re bixebite .pem, wî formatek hewce dike .ppk. Ji bo veguherînê em ê PuTTYgen bikar bînin. Rêbernameyên veguherînê ji malpera PuTTYgen. Dosya wergirt .ppk Ka em li vir hilînin û destnîşan bikin:

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

  1. Em bi vekirina pêwendiya bi bişkojê ve bi VM-ê ve girêdidin Vekirî.
    Pîroz be! Me tenê bi konsolê VM-ya we ve girêdayî ye. Tiştê ku dimîne ev e ku em servera xwe li ser wê saz bikin.

Sazkirin û mîhengkirina serverek minecraft

Ka em dest bi sazkirina servera xwe bikin. Pêşîn, pêdivî ye ku em çend pakêtan li ser VM-ya xwe saz bikin.

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

Ka em fêr bibin ka her yek ji pakêtan ji bo çi ye.

  • wget - amûrek ji bo daxistina pelan li Linux. Bi karanîna wê em ê pelên serverê dakêşin.
  • mc - edîtorê nivîsê ya konsolê. Ji bo bikarhênerek nexwendî karanîna wê hêsan û hêsan e.
  • iptables - amûrek ji bo rêvebirin û mîhengkirina dîwarê agir, bi alîkariya wê em ê portek ji bo servera li ser VM-ya xwe vekin.
  • java - Minecraft li ser java-yê dimeşîne, ji ber vê yekê pêdivî ye ku server kar bike
  • rûber - rêveberê pencereyê ji bo Linux. Ew ê bihêle ku em konsolê xwe dubare bikin da ku serverê bilind bikin. Rastî ev e ku server divê bi konsolê ve were destpêkirin; heke hûn ji VM-ya xwe qut bibin, dê pêvajoya serverê were sekinandin. Ji ber vê yekê, em ê wê di pencereyek konsolê ya cihê de bimeşînin.

Naha werin em dîwarê dîwarê mîheng bikin.

Firewall hêmanek nermalava an hardware-nermalava tora komputerê ye ku seyrûsefera torê ya ku di nav wê re derbas dibe li gorî qaîdeyên diyarkirî kontrol dike û fîlter dike. (Wikipedia)

Ji bo ravekirina bi peyvên hêsan: bajarekî kelehkirî bifikirin. Her tim ji derve ve rastî êrîşan tê, lê jiyana normal li bajêr didome. Ji bo gihandina bajêr, di dîwarê kelehê de dergehek heye, li wir cerdevan radiwestin û ji lîsteyan kontrol dikin ka ev kes dikare biçe kelê. Rola dîwar û deriyekî di torên kompîturê de bi dîwarê agir pêk tê.

sudo mcedit /etc/sysconfig/iptables

Me nuh pelek veavakirina dîwarê fireh çêkir. Ka em wê bi daneyên mîhengê standard tije bikin, tevî qaîdeyek ji bo portê 25565, ku ji bo servera minecraft porta standard e.

*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

Bi tikandina pelê bigire F10, tomarkirina guhertinan.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Naha em ê dîwarê dîwarê dest pê bikin û di destpêkê de wê çalak bikin:

sudo systemctl enable iptables
sudo systemctl restart iptables

Em ê pelên serverê di peldankek cihê de hilînin, wê biafirînin, biçin wê û pelên serverê dakêşin. Ji bo vê yekê divê hûn bikar bînin wget

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

Pêdivî ye ku bibînin girêdana rasterast ji bo daxistinê .jar pelê server. Mînakî, bi guhertoya pelê serverê 1.15.2 ve girêdin:

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

Bi karanîna fermanê naveroka peldankek temaşe bikin ls, Piştrast bike ku pel hatine daxistin.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Ka em pelê serverê bidin destpêkirin. Naha server dê nexebite: ew ê hemî pelên ku ji bo xebatê hewce ne biafirîne, û dê gilî bike ku we şertên lîsansa EULA qebûl nekir. Bi vekirina pelê şertan qebûl bikin eula.txt

sudo mcedit eula.txt

Bi guheztina têketinê lihevhatina xwe piştrast bikin:

eula=true

Pelê vekin server.properties: Ev pelê veavakirina servera we ye. Zêdetir li ser mîhengên serverê

Guhertina jêrîn divê li ser wê were kirin:

online-mode=false

Mîhengên mayî li gorî we ne.

Server dest pê dike

Wextê destpêkirina serverê ye. Wekî ku min berê jî got, server rasterast ji konsolê dest pê dike, lê heke em konsolê sereke bigirin, dê pêvajoya serverê were sekinandin. Ji ber vê yekê, bila em konsolek din ava bikin:

screen

Ka em serverê di vê konsolê de dest pê bikin:

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

Pêşkêşkar di nav 45 çirkeyan de dest pê dike, pêvajoyê qut nekin. Dema ku server were destpêkirin û xebitandin, hûn ê tiştek wekî bibînin:

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Pîroz be! We nû servera xweya minecraft raxistiye û xebitiye. Naha girîng e ku meriv rast ji konsolê duyemîn derkeve da ku ew bi servera xebitandinê re berdewam bike. Ji bo vê yekê, bikirtînin Ctrl+Ahingê D. Divê hûn di konsolê sereke de bin û peyamek mîna bibînin [detached from 1551.pts-0.ip-172-31-37-146]. Heke hûn hewce ne ku vegerin konsolê ku server lê dimeşe, bikar bînin screen -r

Naha hûn dikarin ji VM-ya xwe veqetînin. Dê servera we bi navnîşana IP-ya statîk a ku me berê wergirtiye, li ser porta 25565-ê bigihîje.

Servera minecraft-a belaş a li ser AWS-ê bi zanyariya sifir a Linux-ê re

Derket holê ku navnîşana têketina serverê dê bibe <ваш_статический_IP>:25565.

encamê

Bi karanîna van rêwerzan, hûn dikarin bi hêsanî serverek minecraft-a belaş bi IP-ya diyarkirî saz bikin. Gotar bi zimanê herî hêsan hatiye nivîsandin û ji bo kesên ne pispor e. Di vî warî de, guhdarîkirina şîroveyên kesên ku dagîr dikin balkêş e, ji ber ku dema hêsankirina materyalê, di termînolojiyê de xeletiyên rastîn dikarin werin kirin.

Source: www.habr.com

Add a comment