Jak tunelować i przeglądać stronę serwera na moim laptopie?

55

Uruchomię aplikację internetową na jednym z moich serwerów laboratoryjnych i już skonfigurowałem przekazywanie X11 na tych komputerach. Inni członkowie laboratorium mogą tunelować przez SSH i przeglądać tę aplikację internetową w lokalnej przeglądarce w domu.

Nie mogę Ostatnim razem, gdy z nimi rozmawiałem, nie muszę prawie nic robić.

Kiedy piszę 192.168.1.113/webapp, nic nie dostaję.

Jakieś wskazówki?

Dzięki.


Skończyło się na drugiej metodzie :)

ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -N
CppLearner
źródło
@BlueXrider ogólne, tak, na temat, tak. W przypadku czegoś takiego wersje Ubuntu nie mają tak naprawdę znaczenia, są tak samo tematyczne jak Co to jest torrent i jak go używać, co jest uważane za temat. :)
jrg

Odpowiedzi:

105

Istnieją dwa sposoby, aby to zrobić za pomocą SSH.

Tuneluj wszystko z serwerem proxy SOCKS

Zaloguj się do zdalnego komputera za pomocą następującego polecenia:

ssh -D 8080 remote-host

Teraz przejdź do ustawień proxy przeglądarki i skonfiguruj je tak, aby używało proxy SOCKS z nazwą hosta 127.0.0.1i portem 8080(lub jakimkolwiek portem przekazanym do -Dopcji). Teraz wszystkie strony ładowane w przeglądarce będą tunelowane przez połączenie SSH. Powinieneś teraz mieć dostęp do prywatnej strony internetowej w taki sam sposób, jak ze zdalnego hosta.

Po zakończeniu ustaw ponownie ustawienia proxy przeglądarki.

Wadą tej metody jest to, że cały pozostały ruch w przeglądarce będzie również przechodził przez połączenie SSH. Z drugiej strony możesz uzyskać dostęp do zdalnych serwerów z ich prawdziwymi nazwami hostów i łatwo uzyskać dostęp do wielu prywatnych witryn.

Tuneluj pojedynczy port.

Alternatywną metodą jest użycie SSH do przekazania pojedynczego portu:

ssh -L 8080:server-hostname:80 remote-host

Teraz, gdy skierujesz swoją przeglądarkę internetową http://localhost:8080/, powinieneś zobaczyć zawartość http://server-hostname/takiej, jaka wyglądałaby na zdalnym hoście.

Zaletą tej metody jest to, że pozostawia resztę ruchu przeglądarki w spokoju. Minusem jest to, że niektóre linki mogą nie działać, jeśli witryna zdalna używa bezwzględnych odwołań do adresów URL. Jeśli witryna używa głównie referencyjnych adresów URL, ta metoda powinna być wystarczająca.

W przypadku obu tych rozwiązań port nie ma nic specjalnego 8080. Możesz użyć dowolnego bezpłatnego numeru portu lokalnego, o ile pamiętasz, aby użyć tego samego numeru w sshwywołaniu i przeglądarce internetowej.

James Henstridge
źródło
3
Dzięki. To było bardzo pomocne! Udało mi się to zrobić w ten sposób: ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -Ncoś takiego (druga metoda).
CppLearner
Czy to prawda, że ​​muszę skonfigurować tylko proxy proxy w pierwszej metodzie (patrz: spareclockcycles.files.wordpress.com/2009/04/... ). Czy to nie zadziałałoby, jeśli wskazałbym serwer proxy HTTP na 127.0.0.1:8080? Jeśli jest to poprawne, być może mógłbyś wskazać w swojej świetnej odpowiedzi, że trzeba skonfigurować tylko proxy skarpet.
student
Jeśli używasz Chrome (druga przeglądarka?), Możesz przekazać parametr proxy dla SOCKS5 bezpośrednio przy starcie: chromium-browser --proxy-server = "socks5: // localhost: 8080"
panticz.de