Portál AbcLinuxu, 11. května 2024 14:39

Jak se připojím z počítače s veřejnou IP adresou na počítač s neveřejnou adresou?

Řešením je vyrobit tzv. tunel, skrze který se pak připojení uskuteční. Návodů, jak takový tunel vytvořit, existuje mnoho, často se k tomuto účelu používá SSH, případně vytvoření VPN sítě.

Princip tunelování je jednoduchý:

Klient na počítači s neveřejnou adresou se připojí k serveru na počítači s adresou veřejnou. Server začne přijímat síťová spojení na zvoleném portu a veškerá data, která na tento port přijdou, jsou předána tunelem (spojením mezi klientem a serverem) klientovi. Klient je pak předá na zvolenou adresu.

Příklad:

Doma mám počítač s neveřejnou IP adresou např. 192.168.171.1 , na počítači běží webserver, který chci mít přístupný "zvenku". Dále mám počítač s veřejnou IP adresou (např. 1.2.3.4), na kterém je spuštěn SSH server a já zde mám svůj účet (může to být můj počítač na koleji, školní unixový server, server pronajatý od webhostingové společnosti atp.).

Tunel otevřu, pokud na klientovi spustím příkaz ssh uzivatel@1.2.3.4 -R 8080:localhost:80 . Tzn. všechny požadavky, které přijdou na port 8080 počítače 1.2.3.4, klient předá sám sobě (na adresu localhost) na port 80. Domácí webserver tedy bude přístupný odkudkoli z Internetu na adrese http://1.2.3.4:8080 .

Rozšířený příklad:

V domácí síti z prvního příkladu mám další počítač s adresou např. 192.168.171.2 a se spuštěnou službou VNC, kterou chci zpřístupnit. Tunel mohu otevřít z prvního počítače příkazem ssh uzivatel@1.2.3.4 -R 12345:192.168.171.2:5900 - tzn. cokoli, co přijde na port 12345 počítače 1.2.3.4, klient předá na port 5900 počítače 192.168.171.2 .

Jako návod pro tunelování přes VPN dobře poslouží články na serveru Root.cz: první a druhý díl.

Dokument vytvořil: the.max, 2.6.2007 22:41 | Poslední úprava: Eregon, 3.12.2007 08:36 | Další přispěvatelé: Milan Vít | Historie změn | Zobrazeno: 1727×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.