Adresa a porty
Adresa
Adresa určuje, kde se něco na internetu nachází (dala by se použít analogie reálné adresy, tedy konkrétní dům).
Tvary adresy
Adresa může mít celkem tři (resp. čtyři) tvary:
- IP adresa (například
45.134.7.31)
IP adresa je adresa, na které běží každá služba na internetu. Existují dva druhy IP adresy, a to IPv4 (8.8.8.8) a IPv6 (2001:0000:130F:0000:0000:09C0:876A:130B)
- Hostname (například
node.myhost.com)
výchozí adresa služby poskytnutá poskytovatelem služeb v “doménovém tvaru”, tedy např. node.myhost.com
- Vlastní doména (například
play.myserver.com)
(vlastní) doména - vlastní doménová adresa, tedy např. play.myserver.com
Nic jako “vlastní IP adresa” (myšleno doména) tedy neexistuje. Existuje pouze IP adresa, hostname, nebo doména (technicky vzato je i samotný hostname doména).
Jak je u IP adresy popsáno, každá služba běží na IP adrese. I když je adresa hostname, nebo vlastní doména, tyto adresy pouze “pod pokličkou” přesměrovávají na IP adresu, jak je vysvětleno zde.
Co je to localhost
Jak je uvedeno na Wikipedii - localhost je adresa, která odkazuje na právě používaný počítač. Tato adresa (smyčka) může být použita aplikacemi místního počítače pro komunikaci sama se sebou.
Zjednodušeně řečeno to znamená, že ke službám běžících na localhostu nejde veřejně přistupovat. K službě běžící na localhostu je možno přistupovat pouze z počítače, na kterém služba běží.
Ve tvaru hostname má adresa localhost tvar localhost, ve tvaru IPv4 127.0.0.1 a ve tvaru IPv6 ::1.
Nastavení adresy
Zjednodušeně řečeno nastavení adresy služby (ať už samotného serveru, pluginu, nebo módu - nezáleží na službě), záleží na tom, zda má být služba veřejně přístupná či nikoli.
Pokud služba nemá být veřejně přístupná (tzn. přístupná z jiného serveru, než na kterém služba běží), nastavte jako adresu localhost.
V případě, kdy má být adresa veřejně přístupná, obvykle adresu (v konfiguračních souborech označováno jako ‘host’, ‘address’, ‘server ip’, nebo ‘bind ip’) chcete nastavit na 0.0.0.0, případně samotnou IP adresu/pole nechat prázdné, pokud taková možnost je (v takovém případě to bývá obvykle výchozí nastavení. Více se případně dočtete v dokumentaci).
Pozor! Nestačí, aby byla přístupná pouze samotná adresa. Je nutno, aby byl port, na kterém služba běží, otevřený, viz zde.
Využívání adresy
K připojení na konkrétní službu je nutno znát jak adresu, tak port. Když není port poskytnut, je použit port výchozí pro konkrétní službu (což je pro protokol HTTP 80, HTTPS 443, a Minecraft (Java) server 25565).
Je důležité si uvědomit, že hostname lze využít úplně stejně, jako IP adresu. Znát IP adresu tedy prakticky nikdy nepotřebujete. IP adresu se ani nedoporučuje používat, jelikož se může měnit a těžko se pamatuje. Hostname využijete úplně stejně, jako adresu, tzn. v případě, kdy zprovozníte službu na portu 59095 (např. Dynmap) a výchozí adresa serveru je node.myhost.com:59090 (tedy adresa je node.myhost.com), adresa služby s portem, na kterou budete moci přistupovat (tedy v tomto případě zobrazit Dynmap v prohlížeči) bude node.myhost.com:59095.
To však neplatí pro vlastní doménu nasměrovanou pomocí SRV záznamu. V případě, kdy je k nasměrování vlastní adresy použit SRV záznam, adresu nepůjde téměř nikde (např. příkaz ping nebo v prohlížeči pro zobrazení Dynmap) krom Minecraft klienta použít. Více se dočtete zde.
Jak získat IP adresu serveru
IP adresu by vůbec nemělo být potřeba použít a nedoporučuje se používat, jelikož se může měnit a těžko se pamatuje. Hostname se dá použít stejně, jako IP adresa. Více se dočtete zde.
Pokud i tak z nějakého důvodu chcete IP adresu serveru zjistit, hostname stačí na svém počítači otevřít příkazový řádek (na Windows klávesová zkratka Win + R → do textového pole napište cmd → stiskněte Enter/OK) a provést příkaz ping <hostname> (bez ostrých závorek), tedy např. ping parrot.hostify.cz.
Použijte pouze hostname. Nepoužívejte vlastní adresu serveru. V případě, kdy je pro nasměrování domény použit SRV záznam, příkaz ping pro danou adresu nebude nefungovat.
Stejně tak v příkazu nepoužívejte port (včetne dvojtečky).
Hostname je pouze samotná adresa (např. parrot.hostify.cz).
Porty
Port umožňuje přistupovat ke konkrétní službě nebo zdroji na této adrese (při použití stejné analogie jako u adresy by se jednalo o místnost, kde najdu osobu, s kterou chci komunikovat. K tomu by adresa nestačila - sice vím, že musím do budovy úřadu, ale potřebuji jít do konkrétní místnosti, kde můžu s osobou, určenou k předání mnou vyžadovaných informací, komunikovat).
Základní informace
Každý fyzický server připojený na internet má k dispozici přibližně 65 tisíc portů.
Ke komunikaci dvou zařízení na internetu je vždy použit port, a to jak u serveru, tak klienta. Na těchto portech se zařízení spojí a probíhá na nich vzájemná komunikace. Obvykle u klienta vybere operační systém “náhodný” dostupný port a u Minecraft serveru to logicky je port, na který se klient připojuje, tedy port serveru (v základu 25565). V případě, kdy port v adrese použit není, znamená to, že je použit výchozí port. To je pro Minecraft (Java edici) 25565, pro HTTP 80, pro HTTPS 443 apod.
Otevřené porty
Aby mohl server na portu přijímat spojení, je nutné, aby tento port byl na stroji “otevřený”, tzn. bylo mu povoleno příjmat připojení na konkrétním portu. Pokud server spravujete sami a na serveru je povolen firewall (což by v základu měl), je ve firewallu nutno porty, které mají být veřejně přístupné, otevřít.
U některých panelů je nutno porty “alokovat” (přiřadit).
Využíváte-li služeb sdíleného hostingu, typicky Vám bude poskytnut rozsah volných portů, které jsou automaticky otevřené (vidíte-li v administraci něco jako Ostatní dostupné porty, tyto porty jsou otevřené).
Jeden port může využívat pouze jedna služba
V případě, kdy chce zařízení připojené k internetu (ať server, nebo klient) port použít, je nutno, aby tento port byl dostupný, tzn. jej nesmí využívat žádná jiná služba. Jeden port může totiž využít pouze jedna služba!
Respektive jeden port může být na jednom protokolu využívaný pouze jednou službou. Pokud dvě služby využívají jiný protokol (tj. jedna TCP a druhá UDP), bez problému můžou využívat stejný port. Proto například Minecraft server a Query můžou běžet na stejném portu. Minecraft server totiž používá protokol TCP a Query UDP (většina služeb běží na TCP).
Volné porty
Jako Volné porty (někdy označováno jako “Ostatní dostupné porty”) jsou u sdílených hostingů označovány porty, které neslouží pro samotnou zakoupenou službu, ale lze je využít pro ostatní služby (pluginy a módy).
Když je u služby (např. Dynmap/Votifier) nastaven (volný) port, adresa této služby je <host>:<použitý (volný) port>, nikoli <host>:<výchozí port> (port serveru)! Služba vždy běží na adrese, která mu je v konfiguraci přiřazena, a proto nelze například pro přístupu k Dynmapě využít port serveru!