Sziasztok!
A következőt kellene megoldanom:
* A fejlesztői gépemen egy szerver port olyan legyen mintha egy kintről látható szerveren lenne
* Azért, mert Demo céllal kellene egy hálózatos alkalmazást megosztanom neten, de nem akarom a szerverre fixen telepíteni
* Van egy szerver alkalmazásom a fejlesztői gépemen teszőlegesen sok tűzfal mögött
* a fejlesztői gépem csak kifelé tud TCP kapcsolatot nyitni
* Van egy szerverem, amin tetszőleges alkalmazást tudok indítani
Erre gondoltam:
* a szerveren futtatok egy speciális portforwarding programot - két szerver portot nyit
* Az egyik portra ennek a programnak a párja bejelentkezik a fejlesztői gépemről
* A bejövő kapcsolatok a szerver másik portján a fejlesztői gépem felé az egyetlen TCP csatornán keresztül lejönnek
* A fejlesztői gépem portforwarding programja a localhoston lévő porthoz kapcsolódik
Tehát a kapcsolat transzparensen átjön és mindenki boldog :-).
Meg lehet ezt standard Linuxos eszközökkel oldani? És hogyan?
Szerk: Egy lehetséges megoldás.
A címszó: http://en.wikipedia.org/wiki/Port_forwarding#Reverse_port_forwarding
Egy jó találat: http://toic.org/2009/01/18/reverse-ssh-port-forwarding/
Röviden:
* ssh-val kell indítani egy reverse port forwardingot
* A publikus szerveren valamiért nemtudtam elérni, hogy kívülről látható portot nyisson az ssh, ezért még egy redirt is tettem elé:
fejlesztő$ ssh -R 8081:localhost:8080 én@publikusszerverem.com
én@publikusszerverem.com's password: blabla
publikus$ netstat -ln
bla...
tcp 0 0 127.0.0.1:8081 0.0.0.0:* LISTEN
bla...
publikus$ redir --lport=8082 --cport=8081 --caddr=localhost
És lőn, a fejlesztői weboldalam a világból látszik :-)
Köszönöm a tippeket!
- 1742 megtekintés
Hozzászólások
Lehet fereertem, de kicsit tulbonyolitod. Ha NAT-ol a szerver geped alapbol a belso gepnek, akkor csak annyi kell, hogy iptables -szel a szerveren azt a portot, amin bejonne a kulso kliens atforwardolod a fejlesztoi gep ip-jenek ugyanazon portjara.
- A hozzászóláshoz be kell jelentkezni
A szerver gép egy publikus szerver egy farmon van. Nem a fejlesztői belső hálózatomon van, hogy a gépemen lévő szerver portot elérhesse.
- A hozzászóláshoz be kell jelentkezni
Akkor ne találd fel megint a spanyolviaszt, inkább használj VPN-t.
Plusz a portforward a skuzzy által ajánlott módon.
- A hozzászóláshoz be kell jelentkezni
Ez a lenyeges info kimaradt az elejebol:-) En valszeg azt csinalnam ebben az esetben, hogy raknek egy openvpn szervert a szerverre, erre becsatlakozik a fejlesztoi gep, ha azt publikusan nem lehet egyebkent elerni, es ezutan a szerveren forwardolnam a kulso portot a fejlesztoi gep vpn-es belso ip portjara.
- A hozzászóláshoz be kell jelentkezni
man select_tut
- A hozzászóláshoz be kell jelentkezni
szerintem egy redir elég kellene, hogy legyen, ssh nélkül.
ssh: "-g Allows remote hosts to connect to local forwarded ports." erre nincs szükség?
- A hozzászóláshoz be kell jelentkezni
ssh user@tavoli_gep_ip -R 12345:localhost:12345
- A hozzászóláshoz be kell jelentkezni