IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Jak zpřístupnit vlastní server ostatním přes internet

Znáte to, máte nějaký server a chcete jej zpřístupnit vašim známým nebo kamarádům. Bohužel, i když konfigurujete jak chcete, známí se k serveru ne a ne připojit.

Protože se otázky ohledně zpřístupnění serveru na internet neustále na fóru opakují, rozhodl jsem se napsat krátký článek o tom, jak libovolný server zpřístupnit online. Postup, který zde bude uvedený, se může lišit mezi aplikacemi, ale základní postup je stále stejný. A je již jedno, zda se jedná o publikování Apache serveru, VPN, Minecraft serveru nebo čehokoliv jiného.

Příhlášení k routeru

Úplně nejdříve ze všeho se musíte přihlásit ke svému routeru. Pro Windows spustíte příkazovou řádku a do ní napíšete:

ipconfig

Zobrazí se vám IP adresy vašich adaptérů. Najděte si adaptér, který jde směrem ven (tedy WiFi nebo Ethernet adaptér) a podívejte se na jeho Default Gateway. Tuto adresu zadejte do URL prohlížeče (v mém případě 192.168.1.1). Mělo by se vám zobrazit přihlašovací okno, kde zadáte jméno a heslo. Tato kombinace záleží čistě na výrobci routeru. Zpravidla se jedná o kombinaci slov "admin" a "root". Například účet "admin" a heslo "admin". Pokud jste ještě heslo neměnili, budou na routeru výchozí přihlašovací údaje. Ty by měly být uvedeny v manuálu k routeru nebo si je můžete vygooglit podle typu routeru.

Pokud víte, že máte správné heslo, ale nejde se vám přihlásit, potom někdo heslo změnil. Pro resetování hesla musíte router obnovit do továrního nastavení. Jak to udělat je opět v manuálu k routeru nebo lze postup najít online.

Veřejná IP adresa

Základem úspěchu je mít veřejnou IP adresu. Jak poznáte, že ji máte? Nejjistější možností je podívat se do smlouvy s vašim poskytovatelem internetu nebo ho přímo kontaktovat.

Alternativním řešením je podívat se do konfigurace vašeho routeru. Privátní IP adresy mají zpravidla adresu 10.x.x.x, 172.16-31.x.x nebo 192.168.x.x. V nastavení routeru hledejte sekci WAN (pokud ji má). Na mém routeru je tato sekce hned na úvodní obrazovce. Všimněte si, že mám adresu 192.168.11.237, nemám tedy veřejnou IP adresu.

WAN konfigurace routeru - Síťové technologie

Posledním řešením je zjistit, zda se vám IP adresa mění. Jděte na stránku https://www.mojeip.cz/. Ta vám řekne, jaká je vaše aktuální IP adresa. Zkuste vypozorovat, zda se adresa mění nebo ne. Proces jde teoreticky urychlit odpojením routeru a připojením zpět po nějaké době. Bohužel to nefunguje u všech poskytovatelů.

Konfigurace IP adresy stroje

Nyní tedy předpokládejme, že máte veřejnou IP adresu. Dále je potřeba nakonfigurovat DHCP, aby se neměnila ani IP adresa stroje, na kterém server běží. V nastavení routeru si najdete záložku DHCP.

Konfigurace DHCP - Síťové technologie

Všimněte si možností Start IP Address a End IP Address. To je rozmezí IP adres, které přiděluje DHCP server. Pokud chcete, aby se vaše IP adresa neměnila, musíte si buď nastavit statickou IP adresu nebo nastavit rezervaci v DHCP.

  • Nastavení statické IP adresy - Pokud si chcete nastavit statickou IP adresu, musíte do Control Panel -> Network and Sharing Center -> Change adapter settings (vlevo) -> kliknete pravým tlačítkem na příslušný adaptér -> properties -> Networking -> This connection uses the following items -> Internet Protocol Version 4 -> Properties -> General -> Use the following IP address. Bohužel, tímto postupem úplně vypnete DHCP a tím pádem se nepřipojíte nikde jinde (v případě, že se jedná například o notebook a přenášíte ho). Proto je lepší použít druhou variantu.
  • Nastavení rezervace v DHCP - Pro rezervaci budete potřebovat MAC adresu adaptéru. Tu získáte spuštěním příkazové řádky a zadáním příkazu "ipconfig /all". MAC adresa je Physical Address. Nezapomeňte se dívat na správný adaptér, zpravidla je jich více. Nyní přejdete do nastavení routeru a v Address Reservation nastavíte této MAC adrese konkrétní IP adresu. Tím bude DHCP server při připojení zařízení vždy posílat stejnou IP adresu.
Zobrazení MAC adresy - Síťové technologie

Nezapomeňte v obou případech zadávat IP adresu, která není v rozsahu DHCP serveru. V tomto případě, kdy je Start IP Address192.168.1.100 lze použít IP adresy 192.168.1.2 - 192.168.1.99.

Port forwarding

Nyní musíte zjistit, na kterém portu server, který chcete publikovat, běží. To se dočtete přímo na webových stránkách daného serveru nebo googlením. Většina serverů má nakonfigurovaný výchozí port (například webový server Apache běží na portu 80), ale konfigurace jde změnit. Pokud chcete, aby server běžel na jiném portu, není to problém.

Dalším důležitým údajem je protokol komunikace, který server používá. Varianty jsou TCP nebo UDP. To již nakonfigurovat nelze, ale musíte údaj najít v dokumentaci k serveru, který chcete spouštět. Pokud si nejste jisti, lze povolit UDP i TCP současně.

Nyní musíte port otevřít ven. Router (resp. firewall uvnitř routeru) funguje tak, že pouští komunikaci pouze ven. Pokud se chce někdo připojit dovnitř, musíte to explicitně povolit. Opět se tedy vrátíte do konfigurace routeru a budete hledat sekci Port Forwarding nebo Virtual Servers (záleží na výrobci routeru).

Konfigurace Virtual Servers - Síťové technologie

Kliknete na Add New a nastavíte správné forwardování. Přitom musíte vyplnit:

  • Source port - Určuje pod kterou IP adresou bude server vidět zvenku. Pokud nemůžete vyplnit ještě Destination port, potom Source port musí být stejný s portem serveru. Pojmenování se může router od routeru lišit, někdy se může také jednat o Service port.
  • IP Address - IP adresa vašeho zařízení v lokální síti. Jedná se o IP adresu, kterou jsme nakonfigurovali před chvílí.
  • Protocol - Protokol, který server používá. Má možnosti TCP nebo UDP a na většině routerů lze nastavit i "All" nebo "Both" (budou se používat oba). Pokud nelze nastavit oba a nejste si jisti, jaký protokol server používá, musíte vytvořit ještě jeden port forwarding s rozdílným protokolem.
  • Destination port - Port, na který se má komunikace předávat. Ne všechny routery tuto možnost podporují. Můžete např. nakonfigurovat server, aby na vašem počítači běžel na portu 8080. Když nastavíte Source port jako 3000 a Destination port jako 8080, uživatel poté uvidí váš server pod portem 3000 a ne 8080.
  • Status - Zda je forwardování zapnuto či vypnuto.

Firewall

Jako poslední ještě musíte zkontrolovat firewall na počítači. I ten totiž může blokovat příchozí požadavky. Nejjednodušším řešením je firewall úplně vypnout. Alternativním a bezpečnějším řešením je povolit port serveru. Do nastavení přejdete skrz Control Panel -> Administrative Tools -> Windows Defender Firewall with Advanced Security. Tam máte nabídku Inbound (příchozí) rules a Outbound (odchozí) rules. Přidáte další pravidlo a zvolíte, že chcete povolit port. Budete muset vytvořit 2 nebo 4 pravidla - příchozí a odchozí pravidlo a pokud neznáte protocol, tak vždy ještě UDP i TCP.

Konfigurace serveru

Nyní se již můžeme přesunout k samotnému serveru. Polední úprava, kterou musíme udělat, je nastavit mu správnou IP adresu a port. Servery se zpravidla ve výchozí konfiguraci připojují na adresu 127.0.0.1. Na tuto adresu se připojí jen počítač, na kterém byl server spuštěn. Pro publikování serveru musíte server spustit na IP adrese, kterou jste nastavili výše v konfiguraci.

To probíhá v případě Apache serveru souborem httpd.conf nebo ports.conf (https://httpd.apache.org/….4/bind.html), v případě například Minecraft serveru souborem server.properties. Některé servery mohou vyžadovat zadání IP adresy a portu při spuštění z příkazové řádky. Pro bližší info si prostudujte dokumentaci spouštěného serveru.

Nyní již máme všechno nastaveno a můžeme server spustit. Vše by v tuto chvíli mělo fungovat a lidé mimo vaši domácí sít by měli být schopni připojit se k vám na server.


 

Všechny články v sekci
Síťové technologie
Článek pro vás napsal Patrik Valkovič
Avatar
Uživatelské hodnocení:
5 hlasů
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity