Mam aplikację wiersza poleceń na Linuksie, która używa określonego portu do rozmowy ze zdalnym serwerem. Niestety w pracy port ten jest zablokowany.
Jestem w stanie podłączyć mój laptop przez VNC do sieci, a laptop jest na połączeniu Wi-Fi, które ma dostęp do portu do zdalnego serwera. Mogę ssh do mojego laptopa z bezpiecznej sieci, gdy jest podłączony.
Czy istnieje sposób na wykorzystanie tunelowania portu ssh do obejścia tego problemu? Czy mogę przenieść tunel do mojego laptopa i sprawić, by mój laptop działał jako pośrednik między zaporą sieciową a serwerem zdalnym?
Firewalled Linux Box ---ssh---> Mac OSX Laptop ---wifi---> Remote Server
Niektóre szczegóły:
- Aplikacja wiersza poleceń jest opakowaniem do pip. Linia poleceń nie ma możliwości określenia serwera proxy lub alternatywnego serwera ip / serwera, z którego mógłby korzystać.
- Według mnie Pip może komunikować się z wieloma różnymi serwerami, ale najprawdopodobniej z pypi.python.org.
- Zgodnie ze znalezionym źródłem Pip komunikuje się przez port 3128
Próbowałem:
ssh -v -f -4 -N -L 3128:pypi.python.org:3128 [email protected]
(Xx.x.xx.xxx stoi za adresem IP laptopa)
Gdy działa, mówi:
Remote connections from LOCALHOST:3128 forwarded to local address pypi.python.org:3128
To wydaje mi się cofnięte, ale jestem nowicjuszem, więc kto wie! Tak czy inaczej, nie działa. FYI, jako test używam:
telnet pypi.python.org 3128
sprawdzić, czy komputer z zaporą ma teraz dostęp, ale tak nie jest.
jakieś pomysły?
telnet localhost 3128
Odpowiedzi:
Uwaga ogólna: wiązanie bezpiecznych sieci z niezabezpieczonymi sieciami nie jest kwestią techniczną. Może cię zwolnić lub gorzej. Uzyskaj pozwolenie na up-chain.
W sprawie technicznej:
Osiągnąć:
będziesz musiał zmienić plik / etc / hosts, aby zawierał „pypi.python.org” jako część linii localhosts.
W moim przypadku, uzyskując dostęp do zdalnych repozytoriów kodu przez tunel ssh, aby konfiguracja narzędzia programistycznego pozostała spójna (zawsze odwołując się do tej samej nazwy hosta), nawet gdy jest zdalna, używam po prostu czegoś takiego jak poniższy przykładowy skrypt do hostów konfiguracyjnych (może być wywołany przez cron lub ręcznie).
Przed użyciem skryptu wykonaj kopię zapasową pliku / etc / hosts.
Jak już powiedziałem, możesz ustawić zadanie cron, aby uruchomić ten skrypt i automatycznie utworzyć mapowanie nazwy hosta tunelu. Zwykle robiłem to tylko na połączeniach system-system, które w razie potrzeby będą uruchamiać i wyłączać tunele ssh.
źródło