» »

Za strokovnjake; forwardiranje portov za routerjem

Za strokovnjake; forwardiranje portov za routerjem

knof111 ::

Imam sledeč problem:
Imam Linksysov router, ki je povezan v net. Uporabljam DHCP za vse mašine, ki so v mreži (samodejno pridobivanje naslova).
Na 1. mašini mi laufa Ubuntu z Apache serverjem na portu 80 in drug server za mail, koledar itd..., ki laufa na portu 2000.
Do sedaj sem imel na routerju nastavljeno, da vse zahteve ki pridejo za porta 80 in 2000 gre na to 1. mašino na IP 192.168.1.125. Deluje vse normalno.
Sedaj pa sem drug server za mail, koledar... inštaliral na drugo mašino v mreži z IP-jem 192.168.1.126 na port 2000. Isto laufa na Ubuntu-ju.

Zanima me, če kdo ve, kako forwardirati iz prve mašine na ip-ju 192.168.1.125:2000 na drugo mašino z ip 192.168.1.126:2000 vse zahteve za ogled maila in koledarja.
Ali gre brez dodatne mrežne kartice na 1. mašini?
Kaj uporabiti: iptables, firewall, vhosts ali kaj drugega?

Nastavitev forwardiranja v routerju ne pride v poštev :(, rad bi rešitev, ki bi omogočala forwardiranje na kakršenkoli način s 1. mašine.

Zeeelo bi cenil pomoč, malo se namreč mudi...

rokp ::

Na prvem strežniku nastaviš reverse proxy (Apache mod_proxy), ki za vse, kar pride na port 2000, vsebino pobira z drugega?

knof111 ::

Ja, tako je mišljeno, da bi 1 srežnik pobiral vsebino porta 2000 z drugega serverja tudi na portu 2000. Sem probal z reverse proxy ampak mi ni ratalo.
VirtualHost *:2000 "tu pridejo značke"
ServerName 192.168.1.126
ProxyPass / http://192.168.1.126:2000/
ProxyPassReverse / http://192.168.1.126:2000/
/VirtualHost

Problem je, da imam serverja že za routerjem, ki ima nastavljen DHCP. Tako prvi kot drugi server pridobita naslov avtomatsko, ki jima ga določi router, jaz pa sedaj nekako moram routati ali forwardati lokalne ip-je, ki jih določi router in porte.

V zgornji kodi so najverjetneje napake, ker sem do zdaj to uporabljal bolj malo, pa še za to so bila specifična navodila.

Še kakšen predlog ali popravek...

ender ::

Ali nastavi router tako, da da tema računalnikoma vsakič isti IP (DHCP reservation), ali pa nastavi statične IPje na samih računalnikih.
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

knof111 ::

Ip-je za vsako mašino poznam, mi nastavi vedno isto (preverjeno preko ifconfig), pa tudi z browserja se vedno na iste ip-je lahko povežem (npr. na 1. serverju vpišem v browser http:192.168.1.126:2000, pa vidim podatke z 2. serverja).

Zanima me konkretna nastavitev proxya, kot je bila napisana zgoraj, namreč vem, da lahko to naredim z proxyem ampak ne vem točno, kako pravilno konfigurirati spodnjo kodo, da bi redirectal lokalne ip-je in porte.

VirtualHost *:2000 "tu pridejo značke"
ServerName 192.168.1.126
ProxyPass / http://192.168.1.126:2000/
ProxyPassReverse / http://192.168.1.126:2000/
/VirtualHost

rokp ::

Imaš modula mod_proxy in mod_proxy_http vklopljena? Na Ubuntuju daš ukaz "a2enmod proxy_http", pa ti vklopi oboje...
Ti prvi Apache sploh posluša na portu 2000 (kaj pravi ukaz "netstat -ant | grep :2000")?
Če bodo še težave, najprej poštimaj, da ti Apache na portu 2000 servira lokalno vsebino (da boš vedel, da je s sintakso ostalega vse OK), potem pa dodaj ProxyPass in ProxyPassReverse.

knof111 ::

Proxy modula sta oba zagnana. Če vnesem ukaz "netstat -ant | grep :2000" dobim "tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN"
Se pravi, da je do sem vse ok. Tudi lokalno se lahko prijavim na "localhost:2000" in dobim vsebino z 1. ali pa z 2. serverja. Gre tudi če vpišem "http://192.168.1.125:2000" z 2. mašine na 1. in obratno "http://192.168.1.126:2000" . Se pravi, vidim vsebino lokalno in pa na drugem serverju.
Najbrž je problem v tem, da imam na vhodu router (nastavljen na DHCP), nato pa na ta router priklopljeni obe mašini z IP-ji, ki jih je dodelil router: 1. 192.168.1.125 in drugi 192.168.1.126.
A je sploh možen forward oz. reverseproxy z ene na drugo mašino s temi lokalnimi IP-ji in eno mrežno kartico na 1. mašini s katere bi rad forwardiral na 2. mašino?

rokp ::

Ja, ravno to je namen reverse proxy-ja. Če poskušaš iz lokalnega omrežja z neke tretje mašine, router nima nobene vloge. Kolikor jaz razumem tole, je stvar taka, da prva mašina, ko dobi request na port 2000, vzpostavi povezavo do druge mašine kot klient, na port 2000 pa vrne tisto vsebino, ki jo sama dobi od druge mašine (in po možnosti še kaj popravi, če so notri kakšni absolutni linki).

knof111 ::

rokp: točno tako bi želel, da dela, samo ne vem kako nastavit proxy.
VirtualHost *:2000 -> ali mora biti *:2000 ali *:80 (po moje 2000, ker je na obeh uporabljen ta port)
ServerName 192.168.1.126 -> tukaj vpišem 1. (izvor zahteve) server ali 2. server?
ProxyPass / http://192.168.1.126:2000/ ->
ProxyPassReverse / http://192.168.1.126:2000/ -> to bo verjetno oboje kaže na isto mašino
/VirtualHost

rokp ::

Jaz sem pri sebi za test nastavil nekako takole, pa je delalo (tole bi moral narediti na tvoji prvi mašini, se pravi 192.168.1.125, na drugi pustiš vse nespremenjeno):

<VirtualHost *:2000>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.1.126:2000/
ProxyPassReverse / http://192.168.1.126:2000/
</VirtualHost>


Nisem pa nek strašen ekspert za apache, tako da v bistvu nimam pojma, če sem napisal kaj preveč/premalo...

knof111 ::

Eko, sem probal s temi nastavitvami, pa ni šlo.
Kako si mislil, da pustim kot je, na 2. mašini? Tam trenutno nimam omogočenega proxya in virtualhosta.

rokp ::

Ja, to sem mislil, drugemu o proxyju ni treba vedeti nič.
A ti v logih kaj piše?

knof111 ::

V logih ni ničesar.
A imaš v routerju kakšne nastavitve? Jaz imam samo to, da vse zahteve za port 2000 pošilja na 192.168.1.125.
Bi moralo biti še kaj več?

rokp ::

Če testiraš lokalno (z neke druge mašine v 192.168.1.x omrežju), router nima nobene vloge. In ja, to, kar imaš nastavljeno na routerju, je dovolj za dostop od zunaj.

knof111 ::

-VirtualHost *:80-
ServerName imedomene.si:2000
ProxyPass / http://192.168.1.126:2000/
ProxyPassReverse / http://192.168.1.126:2000/
-/VirtualHost-
Če imam nastavljeno tako, me preusmeri na drugo mašino, če vpišem v brskalnik http://imedomene.si. S tem, da izpis ne prikaže slik, kot če dostopaš iz neta do serverja, ki si ga postavil v lokalnem omrežju, pozneje pa ga povezal na net (predvsem nastanejo tukaj problemi z URL naslovi slik)

Če v brskalnik vpišem http://imedomene.si:2000, napiše: Internet Explorer ne more prikazati te spletne strani. To je še logično, saj je virtualhost nastavljen za poslušanje s kateregakoli ip-ja na vratih 80. Ko pa spremenim zapis tako:

-VirtualHost *:2000-
ServerName imedomene.si:2000
ProxyPass / http://192.168.1.126:2000/
ProxyPassReverse / http://192.168.1.126:2000/
-/VirtualHost-

in vpišem v brskalnik http://imedomene.si:2000 se zgodi isto, kot zgoraj opisano: ne more prikazati strani. Sedaj bi moral preusmerjati ves promet, ki pride na vrata 2000 na lokalni IP in vrata 2000 ali ne? In seveda potem nazaj...
Ima kdo idejo zakaj to ne špila kot bi moralo?
Modula za proxy sta omogočena, firewall je izklopljen...
Če vnesem v brskalnik 192.168.1.126:2000, pa prikaže stran pravilno.

Rok Woot ::

Ja sej pol ti dela, sam dns-je poglej


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Apache in Node.JS

Oddelek: Izdelava spletišč
91380 (1066) dunda
»

Dva http serverja (prot 80) na ist router

Oddelek: Izdelava spletišč
81159 (738) Stari89
»

Apache virtualhost

Oddelek: Omrežja in internet
171137 (866) pegasus
»

XAMPP in virtual host

Oddelek: Izdelava spletišč
121849 (1667) Veron
»

apache vprasanje

Oddelek: Programska oprema
11714 (714) Apple

Več podobnih tem