Używam
ssh [email protected] -g -L 4321:localhost:28017
do utworzenia tunelu z mojego MacBooka na mój serwer dedykowany u mojego dostawcy hostingu. To dobrze działa. Teraz chcę uzyskać dostęp do kilku stron administracyjnych na zdalnym serwerze (strona statusu MongoDB, strona RabbitMQ itp., Wszystkie na różnych portach). Wszystkie są powiązane z 127.0.0.1 na zdalnym komputerze. Jak mogę dostosować to polecenie ssh do
- przypisz nazwę do tunelu i użyj np. „my.tunnel.name” w mojej przeglądarce
- aby móc zdefiniować zdalny port w mojej przeglądarce; Chciałbym połączyć się z moim.tunnel.name:port, aby móc dzwonić do różnych stron
Czy to możliwe z ssh? Przeczytałem strony podręcznika i przeglądałem go od dwóch dni, ale wydaje się, że to nie działa.
--edit 2012-06-01 23: 36-- Dzięki podanym odpowiedziom i komentarzom przekierowanie portów działa teraz
ssh [email protected] -D 4321
Mogę ustawić to jako proxy w mojej przeglądarce, a przeglądarka będzie traktować każde żądanie do localhost: anyport tak, jakby zostało wysłane na zdalnym serwerze. Używanie nazwy nie jest teraz konieczne, ponieważ przeglądarka jest przeznaczona tylko dla zdalnych stron serwera.
Możesz przypisać nazwę, korzystając z faktu, że twój adapter sprzężenia zwrotnego będzie zasadniczo odpowiadał na dowolny adres w sieci 127.0.0.0/8.
Zamiast wiązania z portem 4321, możesz połączyć się z 127.1.2.3:4321. Następnie po prostu ustaw wpis hosta, który odwzorowuje nazwę na adres pętli zwrotnej, którego użyłeś, więc mapuje foo.bar
127.1.2.3
.W mojej konfiguracji SSH na mojej administracyjnej stacji roboczej mam skonfigurowanych wiele tuneli, aby były one powiązane z pewnym adresem w zakresie pętli zwrotnych, i mam wpisy w pliku hosta, więc otwieram wiele tuneli równolegle, używając tego samego portu i rozróżniam je za pomocą Nazwa.
Więc jeśli połączysz się w ten sposób
A plik hosts ma taką linię.
Następnie powinieneś być w stanie połączyć się z my.tunnel.name:4321 z lokalnego komputera.
Jeśli masz dodatkową przestrzeń adresów IP w sieci, do której podłączony jest klient ssh, możesz nawet przypisać dodatkowy adres do interfejsu Ethernet i użyć jednego z prawdziwych adresów IP, a następnie skonfigurować wpisy w DNS, jeśli chcesz, aby inne systemy mogły do korzystania z tunelu SSH.
Opcja -L
-L [bind_address:]port:host:hostport
pozwala użyć dowolnego poprawnego adresu IP w systemie lokalnym do połączenia. Musisz również uwzględnić tę-g
opcję, jeśli chcesz, aby inne hosty mogły łączyć się przez tunel ssh.źródło
ifconfig l0 alias 127.0.1.1 255.255.255.0
w przeciwnym razie świetna wskazówka!-N
na końcu polecenia. W ten sposób łatwiej jest pamiętać, że jest to tunel, a nie tylko połączenie SSH.127.1.2.3
musiałem to zrobić na moim Macbooku:,ifconfig lo0 alias 127.1.2.3 255.255.255.0
który dodaje się127.1.2.3
jako nowy adres interfejsulo0
.Utwórz dynamiczne przekierowanie portów na poziomie aplikacji (zasadniczo skarpety proxy) za pomocą tunelu SSH, a następnie skieruj aplikacje przez ten. Aby utworzyć tunel dynamiczny, połącz się w następujący sposób:
Następnie skonfiguruj aplikację, aby używała tego jako proxy SOCKSv5.
Jeśli chcesz powiązać z tym nazwę hosta, po prostu dodaj
/etc/hosts
wpisy, które wskazują na 127.0.0.1, ale ładniejszym sposobem może być dodanie 127.0.0.2 dla pierwszego tunelu i wpis hosta dla tego, 127.0.0.3 dla drugiego tunel i osobny wpis hosta dla tego itd. Jeśli dodasz aliasy dla 127.0.0.1, czasami ten alias pojawi się w innych poleceniach wyszukiwania localhost, co może być mylące!Aby płynnie korzystać z tego w przeglądarce internetowej, możesz użyć dodatku proxy, jako przykład faworyzuję przeglądarkę Chrome i do tego używam dodatku o nazwie
Proxy Switchy!
. Możesz go pobrać tutaj:https://chrome.google.com/webstore/detail/caehdcpeofiiigpdhbabniblemipncjj
W konfiguracji tego dodatku mogę zdefiniować kilka oddzielnych serwerów proxy, a następnie powiązać wyrażenia regularne hostów / adresów URL, aby użyć pewnych serwerów proxy, w ten sposób zawsze będę poprawnie przekierowywany przez właściwe tunele bez konieczności ręcznego przełączania. Daj mi znać, jeśli potrzebujesz dodatkowych wyjaśnień na temat któregokolwiek z kroków!
źródło