Mam serwer linux i chcę umieścić go w sieci domowej za routerem. Muszę ssh na tym serwerze kiedyś z zewnątrz, ale nie chcę konfigurować przekierowania portów, ponieważ nie mam dostępu do routera i nie znam też adresu IP routera.
Co mogę zrobić, to umieścić jakiś program na serwerze linux, więc kiedy jest podłączony do Internetu, będzie stale wysyłać dane do mojego innego serwera online, więc znam jego adres IP. Ale czy jest sposób na ssh do serwera za routerem z zewnątrz? coś takiego jak NAT lub gniazdo, które utrzymuje połączenie sieciowe?
Wielkie dzięki
źródło
autossh
aby utrzymać to otwarte.Możesz użyć sieci VPN, aby to działało, ale wymagałoby to posiadania serwera, do którego dostęp byłby niedostępny. Następnie możesz skonfigurować OpenVPN na serwerze, komputerze i zaporze ogniowej, włączyć
client-to-client
i gotowe. http://openvpn.net/howto.htmlźródło
Ta odpowiedź jest oparta na zaakceptowanej, ale dodanie szczegółów, które pozwoliły mi to zrobić. Przepraszam za wyjaśnienia dla pieszych, ponieważ to nie moja wiedza.
Załóżmy, że masz dwa komputery
A
iB
. Chceszssh
odA
celuB
, i nie można zrobić żadnego przekierowania portów w routerach podłączonych do nich.Jak stwierdzono w zaakceptowanej odpowiedzi, potrzebujesz
S
do tego serwera : w komputerzeB
zezwolisz nassh
połączenia przychodząceS
; a z komputeraA
uzyskasz dostęp do tunelu wS
celu osiągnięciaB
.Ale jak zdobyć ten serwer
S
? Znalazłemserveo
(link: https://serveo.net/ ). Jest bardzo prosty w użyciu. Nie musisz niczego instalować ani rejestrować, a to jest bezpłatne. Według strony internetowej następujące kroki to:Pomyśl o aliasie dla komputera
B
. Na przykładcomputer_B_alias
.Na komputerze
B
wykonajssh -R computer_B_alias:22:localhost:22 serveo.net
.Teraz możesz uzyskać dostęp do komputera
B
z komputeraA
, wykonując następujące czynności na komputerzeA
:,ssh -J serveo.net user@computer_B_alias
gdzie musisz zastąpićuser
nazwę użytkownika na komputerzeB
.PS: Oczywiście czynisz punkt 2 automatycznym zadaniem podczas uruchamiania komputera
B
.PSS: zanim spróbujesz, upewnij się, że
ssh
jest zainstalowany na obu komputerach. W przypadku Ubuntusudo apt-get install ssh
wystarczy.źródło
Długi czas na udzielenie odpowiedzi. Nadzieja może pomóc komuś, kto szuka tego samego teraz.
Jeśli chcesz uzyskać dostęp do serwera za NAT i nie chcesz pisać kodu, prawdopodobnie możesz wybrać narzędzie poniżej i użyć dowolnych, które odpowiadają twoim potrzebom.
Oba powyższe narzędzia zakładają, że masz dostęp do komputera z systemem Linux, aby zainstalować klienta Niektóre z ich zalet to:
Osobiście wolę tmate bardziej, ponieważ możesz hostować serwer tmate na swoim własnym serwerze pośrednim (dla odwrotnego ssh), podczas gdy konsola telefoniczna może łączyć się tylko z własnymi serwerami dla odwrotnego ssh.
źródło
Możesz użyć ngrok . Proces jest łatwy:
źródło