Configurare SSH su Internet sul mio Pi


16

Questa potrebbe essere una domanda semplice, ma dato che ho letto informazioni contraddittorie da diverse risorse (quali? Contraddizioni su Internet?) Volevo sapere se facevo tutto ciò che dovevo.

Quindi voglio impostare una connessione SSH al mio RasPi in modo da poter accedervi tramite Internet.

  1. Ho iniziato attivando SSH sul Pi, eseguendo Raspbian, usando lo raspi-configstrumento.
  2. Quindi, ho installato il client no-ip.com sul mio Pi per avere un nome host che punta al mio indirizzo IP dinamico.
  3. Ho cercato il mio IP LAN sul mio lampone usando ifconfig
  4. Infine, nell'utilità di configurazione del mio router, in port forwarding, ho abilitato l'inoltro della porta 22 sia in TCP che UDP all'ip locale del mio pi.

Dopo questo, non riesco a SSH per il mio pi via Internet. Funziona quando provo a connettermi all'interno della mia LAN usando il mio IP locale, ma non usando il mio nome host o l'indirizzo IP di Internet. Ho anche provato a collegarmi da una posizione diversa e non funziona nulla.

La mia domanda: mi manca qualche passaggio? Ci sono file di configurazione che dovrei modificare sul mio pi per far funzionare tutto?


Includi l'output di iptables -Lsul tuo Pi.
deed02392,

1
Hai già risolto questo problema? In tal caso, potresti contrassegnare la risposta che l'ha risolta o creare una risposta autonoma affermando cosa hai fatto e quindi contrassegnarla come risposta? Sarebbe fantastico mentre stiamo cercando di ottenere il sito D: Un rapporto alto e questa domanda sembra essere stata lasciata per un po 'non toccata da te @Zeta. Grazie!
RPiAwesomeness

Sto usando no-ip.com per connettermi al mio Pi su Internet per Web e SSH, quindi è possibile, forse il tuo router o ISP sta bloccando il traffico in entrata?
Alastair Montgomery,

Sembra un router che non supporta il loopback NAT.
Flakeshake,

ho trovato questo link: raspberryanywhere.com Forse può essere di qualche aiuto. Uso il servizio da diverse settimane e funziona benissimo! Il link fornisce un semplice visualizzatore di team software come accedere alla tua scheda lampone ovunque tu sia. Inoltre, è possibile utilizzare il normale client SSH; forniscono semplicemente un indirizzo virtuale per connettersi alla scheda tramite SSH o HTTP. Vale la pena provarlo di sicuro!
Stefano Stefano,

Risposte:


12

Se prevedi di connetterti al tuo Raspberry Pi tramite SSH su Internet, probabilmente ngrok.com potrebbe adattarsi al tuo problema nel modo più comodo.

Inoltra le tue porte con una sorta di tunnel invertito e può persino aiutare a bypassare i firewall o le restrizioni del tuo ISP. Devi registrarti (gratuitamente) sul sito per inoltrare il traffico TCP.

Non sono affiliato a questo progetto in alcun modo; L'ho usato solo per realizzare la stessa idea (nel mio caso l'inoltro di un server OpenVPN) e finora non ho riscontrato alcun problema.


Ho appena avuto questo problema e ho usato serveo.net ancora più facilmente di ngrok. Totalmente gratuito, 0 config basta incollare il comando 22 port con un alias personalizzato e quindi connettersi.
Madhava Jay,

3

Parte del problema potrebbe essere che, poiché il Pi utilizza un IP dinamico dal DHCP sul router, il port forwarding impostato non funziona, poiché l'IP locale del Pi è cambiato.

Il modo più semplice per risolvere questo problema (almeno quello che ho visto) è impostare un IP statico. È relativamente semplice, purché non ti dispiaccia confonderti in un file di configurazione. Puoi leggere un po 'più in profondità qui e qui . Spiegherò anche il modo semplice di seguito:

  1. Connettiti al tuo Pi tramite SSH all'interno della tua rete domestica o tramite uno schermo, entrambi funzionano.

  2. Prendi una penna e un po 'di carta, stai per scrivere alcune informazioni.

  3. Eseguire il comando ifconfig. So che l'hai già eseguito, ma questa volta dobbiamo raccogliere un po 'più di informazioni sul tuo IP locale. Questo rivela le informazioni del tuo router, il bit che vuoi è dopo eth0 (la connessione ethernet). . . .

    eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:fc:2c
              inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
    

    Annota le seguenti informazioni ...

    inet addr – 192.168.1.81 (Pi's Current IP Address)
    Bcast –  192.168.1.255 (The Broadcast IP Range)
    Mask –  255.255.255.0 (Subnet Mask Address)
    

    Ovviamente, le tue informazioni saranno diverse da questo tutorial, quindi assicurati di usare le tue informazioni dal ifconfigcomando eseguito sul Pi.

  4. Ora corri netstat -nro route -n. Abbiamo bisogno:

    Indirizzo "Gateway" - 192.168.1.254 Indirizzo
    "Destinazione" - 192.168.1.0

  5. Ora che disponiamo di tali informazioni, possiamo modificare il file delle interfacce per impostare l'IP dinamico. Corri sudo nano /etc/network/interfaces. Dovrebbe apparire un po 'così:

    file di interfacce

  6. Cambia la linea:

    iface eth0 inet dhcp
    

    per

    iface eth0 inet static
    

    Quindi direttamente sotto questa riga inserisci quanto segue ( Nota. Avrai bisogno dei tuoi indirizzi che abbiamo raccolto sopra ). . . .

    address 192.168.1.81
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    Fondamentalmente, la parte dell'indirizzo è quella che vuoi che sia il tuo IP. Più alto è meglio, poiché ci sono meno possibilità di conflitti IP. netmask - L'indirizzo 'Maschera' che abbiamo scritto in precedenza.

    rete - L'indirizzo IP del router, questo è l'indirizzo 'Destinazione' trovato in precedenza. Puoi anche prenderlo dal tuo router, dovrebbe dire da qualche parte.

    broadcast - L'indirizzo "Bcast" che abbiamo scritto in precedenza.

    gateway - Questo è l'indirizzo 'Gateway' che abbiamo trovato in precedenza.

    Premete Ctrl+ Oe uno Entero Ypoi Enter. Una volta fatto, premi Ctrl+ X.

  7. Esegui sudo reboote il tuo IP dovrebbe essere a posto! Esegui nuovamente l'accesso ed esegui di ifconfignuovo il comando e dovrebbe apparire così:

    fancyness!

Quindi configura il port forwarding sul tuo nuovo IP statico e dovrebbe funzionare tutto! Buona fortuna!


2
La persona che ha votato per difetto potrebbe spiegare perché? Penso che questa sia una soluzione perfettamente valida e praticabile. Vorrei sapere perché, così posso migliorare la mia risposta.
RPiAwesomeness,

1
Funzionerà solo sulla rete locale e non dall'esterno. OP ha chiesto come connettersi a Pi tramite Internet e non dalla stessa rete.
Chinmay Sarupria,

Un indirizzo come 192.168.1.100 è un indirizzo locale, potrei avere 2 Pi in 2 diverse parti della città con lo stesso indirizzo locale. Quindi, ovviamente, non sarò in grado di accedere a nessuno dei due dall'esterno della rete.
Chinmay Sarupria,

Se dai al tuo RPi un indirizzo IP statico, dovresti escluderlo dal pool DHCP, altrimenti un altro dispositivo nella tua rete potrebbe ottenerlo e avrai un conflitto IP.
Dmitry Grigoryev il

2

L'unica cosa che sembra avere configurato male è che SSH è un protocollo solo TCP, quindi non è necessario inoltrare il traffico UDP sulla porta 22.

Ora perché non sembra funzionare è probabilmente perché il router non supporta il loopback NAT . Ciò significa che le regole NAT (come quella di inoltro) non si applicano quando l'origine della connessione proviene dalla LAN interna. Non tutti i router hanno questa funzione attiva. Pertanto, se il router non supporta il loopback NAT, non sarà possibile connettersi al proprio RPi utilizzando SSH quando si utilizza il nome di dominio no-ip.com e quando lo si fa dalla propria LAN .

Per provare se la tua configurazione funziona, se hai uno smartphone con qualche connessione dati (3G, LTE, ecc.) E c'è un client ssh su di esso, prova a connetterti al tuo RPi usando il piano dati e non la tua connessione WiFi. Se non si dispone di un client SSH su di esso e si è autorizzati a eseguire il tethering, utilizzare lo smartphone insieme a uno dei computer scollegandolo dalla rete locale e utilizzando invece il collegamento tethering.


0

Prova a utilizzare un nome di dominio gratuito, ad esempio co.cc o simili, e freeDNS (forniscono anche una vasta gamma di sottodomini) per puntare al tuo router. Penso che puoi anche ottenere uno script di aggiornamento nel caso in cui il tuo router abbia un IP dinamico.

Se ciò non funziona, forse le impostazioni per il port forwarding sono sbagliate? Che tipo di router hai?


Try using a free domain name...Lo ha fatto, ecco cos'è il client no-ip. È molto più semplice che dover fare confusione con DNS e router manuali.
RPiAwesomeness,

@RPiAwesomeness Siamo spiacenti, non lo sapevo.
Samadi,

Nessun problema. Stavo solo facendo il mio dovere di essere un membro di Stack Exchange e di moderare il sito. Sono solo alcune critiche utili. Per favore, non prenderlo come un assalto a te, sto solo cercando di aiutare a mantenere il contenuto di questo sito utile e informativo. Continua a cercare di dare una mano, rispondere alle domande ed essere coinvolto, inizierai a ottenerlo. :) Inoltre, entra nella chat di volta in volta. Le persone che sono nella loro adorano avere compagnia, e questo dimostra che questo sito è utile e fiorente e ha una buona base di utenti coinvolti.
RPiAwesomeness

0

Ho questa situazione qui in Finlandia: rpi è collegato al router wifi mobile, huawei e5776 e voglio collegarmi a rpi con SSH su Internet, senza successo finora e finalmente so che è il mio provider di servizi Internet che blocca le connessioni bidirezionali per clienti mobili a banda larga. Il traffico a due vie per loro è un servizio extra, (che devi pagare) chiamato open gate dal mio ISP. Quindi vai al tuo sito ISP per vedere se è così.


0

Slubbix ha indicato un possibile problema per cui l'indirizzo IP locale di Raspberry Pi non è stato risolto. Ciò renderebbe inaffidabile la porta in avanti nel router. Per impostazione predefinita, Raspberry Pi è configurato per utilizzare DHCP. Ciò significa che l'IP è fornito dal router. Questo IP non è predefinito per impostazione predefinita.

Una soluzione a questo problema è già indicata da Slubbix : rendere fisso l'IP del Raspberry Pi.

A mio avviso, ciò presenta due svantaggi: non esiste un elenco globale di IP nella rete facilmente gestibile e non è possibile utilizzare Raspberry Pi in un'altra rete (IP già in uso o maschera secondaria diversa).

Pertanto propongo di effettuare le seguenti operazioni: configura il tuo router per assegnare un IP fisso all'indirizzo MAC del tuo Raspberry Pi. L'indirizzo MAC può essere trovato usando il comandoifconfig


0

L'indirizzo IP locale di Raspberry Pi non è fisso, a meno che non si stia utilizzando un adattatore wireless per la connessione, che manterrà il suo indirizzo IP. Se si desidera utilizzare SSH per l'RPI, è possibile utilizzare questi passaggi:

Avvia il tuo Pi al prompt del terminale. Digita il seguente comando "sudo apt-get install xrdp" Se promosso inserisci la tua password (il valore predefinito è "raspberry") Digita "Y" e premi Invio. Questo sta installando xrdp sul tuo Pi, che è il software che useremo per la connessione desktop remoto. Aspetta che si completi. Riavvia il tuo Pi. Verificheremo che xrdp si avvierà automaticamente. Quando il tuo Pi si è avviato al prompt dei comandi, cerca [ok] Avvio del server Remote Desktop Protocol: xrdp sesman. Questo ti mostra che xrdp è installato e si avvia automaticamente all'avvio del tuo Pi L'ultimo passo è prendere nota dell'indirizzo IP del tuo Pi che dovrebbe essere visualizzato anche nella schermata di avvio. Nel mio caso di seguito è 192.168.1.9.

Impostazione della seconda macchina

  1. Avviare Connessione desktop remoto che si trova in Start-> Tutti i programmi-> Accessori-> Connessione desktop remoto
  2. Digita l'indirizzo IP per il tuo Pi che hai notato sopra.

  3. Fai clic su Connetti (potresti ricevere un avviso di sicurezza in questa fase, fai semplicemente clic su OK se lo fai. Dopotutto è il tuo Pi sulla tua rete, quindi nulla di preoccupante per la sicurezza).

  4. Lascia il modulo sul valore predefinito di sesman-Xvnc e inserisci il tuo nome utente e la password per il tuo Pi. (L'impostazione predefinita è pi e raspberry se non li hai modificati).

  5. Fai clic su OK e dopo qualche istante dovresti essere accolto dal desktop del tuo Raspberry Pi!

  6. Al termine, è sufficiente disconnettersi dal desktop di Pi.

Ho trovato questi passaggi da qui e hanno lavorato per me

Ecco un altro modo di usare SSH:

SSH in Raspberry Pi In genere accedo al mio Raspberry Pi tramite SSH o Secure Shell per dargli il nome completo. Ciò consente l'accesso alla riga di comando, al tuo Raspberry Pi, da un altro computer. Sebbene sia possibile SSH nel Raspberry Pi da qualsiasi parte del mondo, e lo faccio, questo post copre solo l'accesso SSH sulla rete locale. Tratterò la connessione remota in un prossimo post sul blog.

Sebbene ciò non dia accesso a una GUI (Graphical User Interface), l'accesso alla riga di comando in genere mi consente di fare il 95% di ciò che devo fare. L'altro 5% probabilmente avrei potuto farlo tramite SSH, ma a volte non puoi battere il comfort di una GUI. :-)

Prima di tutto devi conoscere l'indirizzo IP del Raspberry Pi a cui vuoi accedere. Se non sei sicuro di come trovarlo, leggi il mio post sul blog che spiega come farlo in remoto utilizzando un eccellente strumento chiamato nmap.

SSH nel tuo Raspberry Pi da un computer Linux o Apple Mac è molto semplice. Puoi semplicemente digitare il tuo nome utente e indirizzo IP nella riga di comando utilizzando il seguente formato:

nome utente ssh @ indirizzo IP

Assicurati di sostituire il nome utente con il nome utente con cui desideri accedere al computer remoto. L'indirizzo IP deve avere il formato 192.168.1.66

È possibile che venga visualizzato un messaggio che spiega che non è possibile stabilire l'autenticità dell'host e se si è sicuri di voler continuare a connettersi. Vedrai questo messaggio solo la prima volta che esegui SSH nel tuo Raspberry Pi. Digita semplicemente sì.

Ti verrà quindi richiesta la password, inserisci la password per il nome utente con cui stai tentando di connetterti.

Per Windows questo è un po 'più complicato da configurare in quanto richiede un ulteriore software chiamato PuTTY. Tuttavia, una volta installato, questo è davvero semplice da usare.

Per prima cosa vai al sito Web PuTTY, www.putty.org, scarica e installa il software.

Una volta installato, caricare PuTTY

In Nome host (o indirizzo IP) digitare l'indirizzo IP al quale si desidera connettersi. Seleziona il pulsante di opzione SSH. Nella casella Sessioni salvate digitare un nome per identificare questo computer, ad esempio Raspberry Pi, quindi fare clic su Salva. Facendo clic su Apri ora dovrebbe iniziare la sessione SSH.

La prossima volta che vuoi SSH nel tuo Raspberry Pi devi solo caricare PuTTY, fare clic sulla sessione salvata per evidenziarlo e quindi fare clic su Apri. Dopo aver digitato la password, quando richiesto, si ha accesso remoto a Raspberry Pi.

Ho trovato queste istruzioni da qui


Non riesco a vedere come queste istruzioni aiutano ad accedere all'RPi su Internet
Dmitry Grigoryev

0

Una cosa che ho notato per la mia Internet è che quando ho effettuato il port forwarding del mio server web e ho provato a connettermi ad esso usando il mio IP pubblico, direbbe che non era disponibile, ma quando mi connetto ad esso sul mio telefono o sulla mia rete scolastica Sono in grado di connettermi ad esso, anche una cosa che potresti provare a fare è andare su Google e digitare "IP" nella barra di ricerca, copiare l'ip che ti dà e quindi andare su Google Translate e incollare nel tuo IP, e quindi fai clic sull'indirizzo IP blu nella finestra a destra e questo dovrebbe mostrarti se esegui il forwarding del tuo server web.


0

Per consentire il traffico in entrata sulla porta SSH predefinita (22), si potrebbe dire a iptables di consentire a tutto il traffico TCP su quella porta di entrare.

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Facendo riferimento all'elenco sopra, puoi vedere che questo dice a iptables:

  1. aggiungere questa regola alla catena di input (-A INPUT ) in modo da esaminare il traffico in entrata
  2. controlla se è TCP (-p tcp ).
  3. in tal caso, verificare se l'ingresso va alla porta SSH (--dport ssh ).
  4. in tal caso, accetta input ( -j ACCEPT).

Spero che questo funzioni anche per te, potresti voler aggiungere le porte ftp che sono 20-21, basta cambiare sshin 20e 21.


0

Non sono sicuro che questa domanda abbia bisogno di risposte aggiuntive ma è abbastanza semplice.

  1. Installa OpenSSH o abilitalo da raspi-config

  2. Vai alla home page del tuo router / firewall nel mio caso 192.168.1.1

  3. Cerca port forwarding o server virtuali e aggiungi qualcosa di simile al seguente:

    Inizio porta esterna: 1234 Fine porta esterna: 1234

    Inizio e fine della porta interna 22.

    L'IP del server è l'IP statico del tuo RPi nel mio caso 192.168.1.50

  4. Una volta impostato tutto sul lato router, annota il tuo IP WAN cercando il tuo IP su Google.

  5. Ora dovresti essere in grado di eseguire SSH sul pi su Internet. Nel mio caso sto usando un Chromebook e l'aggiunta sicura della shell. Digito il nome utente nel mio caso pi@mywanipe la porta 1234.

Fondamentalmente la regola del firewall nel passaggio 3 inoltra tutto il traffico sulla porta 1234 dell'IP WAN alla porta 22 dell'IP LAN interno.


-1

Ho faticato molto con l'installazione di SSH via Internet fino a quando ho trovato questo semplice metodo:

http://raspctl.com

Basta registrare e copiare e incollare i comandi. Potrebbe essere necessario modificare un file di configurazione, ma il gioco è fatto. L'ho provato oggi e funziona come un fascino. L'ho provato anche con diverse app Android SSH.


Hai dimenticato di menzionare: imposta il port forwarding sul tuo router!
alkopop79,

1
FYI: Quel progetto sembra essere stato sospeso.
bobstro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.