Niedawno skonfigurowałem SSH na moim Raspberry Pi. Wszystko idzie płynnie, zwłaszcza że mogę sterować komputerem za pomocą iPhone'a za pomocą aplikacji Server Auditor . Niestety działa to tylko przez sieć lokalną.
Jak mogę sprawić, by moje SSH działało, kiedy jestem poza domem? (Najlepiej działa z aplikacją).
Odpowiedzi:
Oto kroki, których użyłem (w debianie), które mogą okazać się przydatne.
1.Ustawianie statycznego adresu IP dla Pi.
a. Otwórz plik interfejsów za pomocą polecenia
b. Zmień plik interfejsów na następujący (to działa dla mnie, nie jestem pewien, czy można wykluczyć kilka linii).
c. Sprawdź, czy Ip został zmieniony za pomocą komendy ifconfig
2.Ustawienie dynamicznego DNS
Najprawdopodobniej adres IP przypisany przez twojego dostawcę usług internetowych jest dynamiczny, dlatego potrzebujemy sposobu, aby rozwiązać zmiany w adresie IP. Aby to osiągnąć, używam oprogramowania dnsdynamic i ddclient. Oba są bezpłatne.
a. Zarejestruj konto w dnsdynamic
b. Dodaj nową domenę i wybierz nazwę oraz domenę z listy. Możesz wybrać dowolną z dostępnych domen z wybraną subdomeną. Kliknij opcję wyboru dostępności, a następnie dodaj
3.Ustawienie ddclient na Pi
a. Zainstaluj ddclient za pomocą polecenia
b. Otwórz plik konfiguracyjny dla ddclient za pomocą następującego polecenia i dodaj następujące wiersze.
i zmień plik na następujący.
i zapisz plik.
d. Chcemy, aby usługa ddclient uruchamiała się automatycznie po ponownym uruchomieniu, więc wykonaj następujące czynności.
Dodaj następujące polecenie przed wyjściem 0 (który jest ostatnim wierszem)
Zapisz plik. Aby uruchomić program ddclient, uruchom ponownie komputer pi lub wykonaj powyższe polecenie w wierszu polecenia. Będzie on aktualizował nazwę Twojej domeny, zmieniając aktualny adres IP w razie potrzeby.
4. Przekazywanie portów
a. Znajdź model swojego routera.
b. Przejdź do portforward.com
c. Wprowadź markę i model routera, aby znaleźć szczegółowy przewodnik na temat portu przesyłania.
d. Po wybraniu marki i modelu routera kliknij Przewodnik domyślny na przekierowanej stronie.
e. W polu tekstowym statycznego IP wprowadź statyczny adres IP pi podanego w kroku 1.
f. Postępuj zgodnie z instrukcjami i przekieruj port 22. Port źródłowy musi mieć numer 22, a port docelowy może być dowolny. Pamiętaj, aby używać portu docelowego podczas sshing do pi. Aby uniknąć pomyłek, zwykle używam tego samego źródła i miejsca docelowego Port.
Jeśli postępujesz zgodnie z samouczkiem, zaloguj się do pi z dowolnego miejsca, zastępując adres IP nazwą domeny. np. używam [email protected]: 22 do ssh do mojej pi.
źródło
sudo
w/etc/rc.local
, nie jest już uruchomiony jako root?Najpierw musisz skonfigurować przekierowanie portów. Każdy router jest nieco inny, więc będziesz musiał sprawdzić specyfikę routera.
Istnieją ogólne poradniki przekierowania portów, które mogą działać dla większości routerów, ale sugeruję znalezienie przewodnika dla twojego rzeczywistego modelu routera.
Ustaw niezapomniany port, aby połączyć się z Twoim Raspberry Pi, takim jak 23456 lub coś takiego. Uważaj, aby nie zastąpić wspólnych numerów portów .
Wreszcie za pomocą ssh wykonaj następujące czynności:
Gdzie:
-p
polecenia ssh, który port spróbować tunel w celuźródło
Dostęp do RaspberryPi (a nawet laptopów / serwerów) spoza sieci domowej (czyli z Internetu) nie jest łatwym zadaniem, ponieważ domowy laptop lub RaspberryPi ma tylko lokalny adres IP (w zakresie 10.xxx lub 192.168.xx zasięg). Nie ma publicznego adresu IP widocznego z Internetu.
Prostą odpowiedzią na twoje pytanie jest skorzystanie z bezpłatnych usług online, takich jak SocketXP, które zapewniają bezpieczny publiczny punkt końcowy tunelu SSH do twojego RaspberryPi spoza sieci domowej.
SocketXP zapewnia prosty, bezpieczny i łatwy sposób na dostęp do twojego domowego RaspberryPi z zewnętrznej sieci. SocketXP nie wymaga hakowania żadnych ustawień routera WiFi. Działa po wyjęciu z pudełka. Aby dowiedzieć się, jak skonfigurować RaspberryPi do SSH z zewnątrz, przeczytaj tego bloga na temat zdalnego SSH do RaspberryPi przy użyciu SocketXP.
Jak skonfigurować SocketXP:
Krok 1 : Zainstaluj klienta SocketXP na swoim RaspberryPi za pomocą następującego polecenia.
Krok 2: Połącz klienta SocketXP z usługą chmurową SocketXP za pomocą następującego polecenia. Musisz zarejestrować się na https://portal.socketxp.com, aby otrzymać unikalny token autoryzacji.
Krok 3 : Uzyskaj publiczny punkt końcowy tunelu, aby uzyskać dostęp do swojego RaspberryPi z Internetu.
Krok 4 : SSH do RaspberryPi z Internetu za pomocą następującego polecenia.
gdzie „raspberry-username” to nazwa użytkownika / hasło używane do logowania SSH na RaspberryPi.
źródło
To pytanie jest stare, z biegiem czasu szanse na uzyskanie publicznego adresu IPv4 są coraz mniejsze. Najprawdopodobniej jesteś za CGNAT, co oznacza, że dzielisz jeden publiczny adres IPv4 z innymi klientami dostawcy usług internetowych. Dlatego nie można wykonać przekierowania portu do swojego PI ani niczego innego.
Jeśli masz IPv6, możesz nadać swojemu PI adres statyczny i zezwolić na dostęp do niego na routerze. Wielu operatorów telefonii komórkowej udostępnia teraz IPv6. Stare „naziemne” ISP (Fibre, DSL, koncentryczny itp.) Często ciągną się za nimi.
Możesz również uzyskać tani VPS (wirtualny prywatny serwer) z publicznym IPv4 gdzieś w chmurze i zrobić tunel SSH od PI do VPS.
źródło
Oprócz odpowiedzi Phalta powinieneś sprawdzić jedną z dynamicznych usług DNS, takich jak Brak adresu IP . Pozwalają ci uzyskać dostęp do sieci domowej pod statyczną nazwą hosta, chociaż twój adres IP może się zmieniać codziennie, z powodu rozłączenia twojego DSL lub operatora kablowego. Mają też ładną stronę początkową , która również wprowadza Cię do odpowiedniej konfiguracji routera.
Możesz zainstalować
inadyn
pakiet na swoim Raspberry Pi, aby zaktualizować wpisy DNS bez adresu IP, gdy zmieni się adres IP. Możesz to zrobić, uruchamiając:Z INADYN README wziąłem to przykładowe połączenie:
Mam nadzieję że to pomoże.
źródło
Dodatkowo do odpowiedzi Steve'a Irwina:
Krok 1:
jeśli łączysz się przez sieć WLAN, użyj:
Krok 2:
po zmianie powyższego należy ponownie uruchomić
networking
:źródło
Ponadto niektóre routery mają wbudowaną obsługę niektórych usług dynamicznego DNS, możesz włączyć tę opcję (jeśli istnieje) w routerze, aby uniknąć instalowania klienta na swoim serwerze PI (i zaoszczędzić trochę na nim kosztów).
źródło
Tak więc masz serwer ssh (twój Raspberry PI) za firewallem (routerem) i chcesz go podłączyć z dowolnego miejsca. Załóżmy, że twój serwer ssh jest poprawnie skonfigurowany, tzn. Uruchomienie nazwy użytkownika ssh @ localhost date na twoim Raspberry pokazuje bieżącą datę / czas.
Musisz rozwiązać dwa problemy:
Przekazywanie portów i DynDNS
Istnieją rozwiązania (jak zauważyli inni):
Przy prawidłowej konfiguracji połączenie rasbperry pi może być możliwe za pomocą:
Korzystanie z sshhub.de
Innym bardzo wygodnym rozwiązaniem, o którym dotychczas nie wspomniano, jest SSHHub (disclamer, jestem autorem). Wykorzystuje własne przekazywanie ssh, aby uzyskać dostęp do Rasperry PI z dowolnego miejsca. Jest niezawodny, darmowy i dość prosty w konfiguracji . Zarejestruj się raz:
uruchom na swoim Raspberry PI:
...i to wszystko! Możesz podłączyć Raspberry Pi z dowolnego miejsca:
źródło
Możesz użyć VPN, aby umożliwić dostęp przychodzący do twojego pi. OpenVPN to jedno rozwiązanie, które wymagałoby posiadania komputera dostępnego z Internetu (port przychodzący). Jednak dopóki masz dostęp do jednego komputera, pozostałe komputery nie muszą być, ponieważ mogą być klientami serwera OpenVPN.
Inną opcją byłoby skorzystanie z usługi, takiej jak ZeroTier, która zapewnia scentralizowane serwery do tworzenia sieci VPN, dzięki czemu nie trzeba uruchamiać własnego serwera. To jest również bezpłatne.
źródło