Spesso nei commenti leggo: “Come faccio a collegarmi al mio progetto a casa dall’esterno ?” la risposta è router port mapping.
Senza addentrarti in complesse definizioni di networking e protocolli di rete cerco di chiarirti come configurare il tuo router port mapping.
Prendo ad esempio le schermate del mio router alice ma puoi applicare i concetti a qualsiasi router con supporto per il port mapping o port redirect.
Come funziona il router port mapping
Il networking è argomento non semplicissimo tuttavia cerco di portarti qualche similitudine con la consegna dei pacchi tradizionale a cui sei abituato.
Al fine di comprendere meglio i concetti immagina di abitare in via roma 1 in un palazzo con 100 interni ed una portineria, tu abiti all’interno 80, che per il tuo condominio è al sesto piano seconda porta a sinistra uscendo dall’ascensore.
Devi ricevere un pacco ed il corriere arriva all’indirizzo via roma 1 int 80 scoprendo di non conoscere la corretta ubicazione del tuo appartamento, fortunatamente c’è il portiere a cui chiedere.
Il portiere alla richiesta del corriere sull’ubicazione del tuo appartamento risponde che tu abiti all’interno 80 e che per giungere al tuo piano è necessario usare l’ascensore, salire al sesto piano e, uscendo dall’ascensore, andare a sinistra, la seconda porta è quella del tuo appartamento.
Ovviamente non me ne vogliano gli esperti di nerworking per la semplificazione è giusto per chiarire il concetto a chi non è esperto di reti.
Il corriere è la richiesta internet di collegarsi alla tua scheda ( arduino yun, raspberry, ipcam, ecc… ).
Il tuo portiere è il router che sa la corretta posizione del tuo interno.
Il numero 80 ( tuo interno ) è la porta con cui la richiesta internet si presenta.
Sesto piano è l’IP del tuo dispositivo da raggiungere ( arduino yun, raspberry, ipcam, ecc… ).
Seconda porta a sinistra dall’ascensore è la porta su cui il router deve girare la richiesta di collegamento.
Adesso dovresti avere le idee più chiare, ti mostro uno schema:
nella figura sopra l’IP 192.4.11.27 rappresenta il tuo indirizzo, via roma 1, la porta 80 è il tuo interno a cui un dispositivo esterno alla tua rete casalinga deve puntare per collegarsi.
Non resta che dire al portiere, il router, che quando arriva una richiesta per l’interno 80 deve indicare il sesto piano ( IP ) e la seconda porta a sinistra ( porta di destinazione )
Configurare il router port mapping
E’ necessario che il tuo router supporti il port forwarding o router port mapping affinché tu possa raggiungere la tua scheda arduino yùn o raspberry da un dispositivo esterno alla rete della tua abitazione.
Inoltre è necessario che il tuo provider (Telecom, Fastweb, ecc… ) non blocchi il traffico per nessuna porta diretto al tuo router.
Controllate le due premesse puoi configurare il tuo router, ti mostro le schermate di un router alice con supporto per il router port mapping.
Il primo passo è conoscere l’Ip del tuo dispositivo dopo averlo collegato al tuo router puoi accedere all’interfaccia di amministrazione e cliccare sul pulsante che ti mostra la lista degli IP che sono stati individuati o rilasciati se il tuo router fa da DHCP:
L’elenco delle reti riconosciute si presenta simile al seguente:
in cui ho oscurato il mac address della mia scheda arduino per non confonderti, tu dovrai trovare nell’elenco la scheda su cui desideri attivare il router port mapping, troverai il numero identificativo ( IP ) ora vai nel menu port mapping:
la schermata che ti sia pre avrà un menu un cui puoi configurare:
- protocollo
- IP
- porta di ingresso ( 80 )
- porta da raggiungere ( 80 )
Ovviamente se il tuo dispositivo risponde su una porta differente dalla 80 puoi decidere se mappare la porta interna e da raggiungere sul medesimo numero o su numeri differenti, ma questo aspetto si spinge oltre l’argomento che trattiamo oggi.
nella schermata superiore vedi un menu da cui scegliere il protocollo di comunicazione, senza spingerci troppo nel dettaglio, ti è sufficente sapere che le interfacce web delle schede arduino yùn o raspberry sono solitamente configurate per rispondere in HTTP su porta 80, seleziona quindi HTTP passa quindi a definire l’IP di destinazione:
tra gli IP disponibili troverai l’IP del tuo dispositivo, selezionalo e controlla che la porta Interna e la porta esterna siano entrambe impostate su 80 o sulla porta con cui vuoi comunicare dall’esterno:
clicca su Attiva per attivare la regola, ti sarà mostrato un messaggio di conferma della regola da impostare come router port mapping:
clicca su Avanti > per confermare. Vedrai la nuova regola inserita:
a questo punto la tua scheda arduino Yùn è pronta per essere raggiunta dall’esterno sull’IP pubblico che il provider ti ha assegnato e la porta 80.
Se tutta la configurazione del router port mapping è corretta e completata potrai collegarti dal computer dell’ufficio e vedere i tuoi grafici della centralina meteo arduino yùn come ho fatto io:
Buon collegamento.
24 commenti
Vai al modulo dei commenti
discorso liscio come l’olio se si parla di ADSL come Alice , libero infostrada, teletu ..
ma se andiamo su FASTWEB il discorso cambia … e non di poco !!!
infatti fastweb è una rete a se ( non è internet ) e per reindirizzare un indirizzo non è possibile !!!
Autore
Hai ragione Mirko,
mi è capitato di aver a che fare con reti Fastweb ed in moti casi è impossibile in altri così complesso che devi aver veramente voglia di attivare tutto il percorso e non è per nulla gratuito.
Fastweb fornisce di default un indirizzo IP nattato e quindi, semplificando il discorso, non sarà possibile raggiungerlo da remoto (se non da dispositivi collegati alla rete Fastweb). È però possibile richiedere gratuitamente un indirizzo IP non nattato e il problema non si pone (mandate un messaggio ai ragazzi del social-care Twitter o Facebook).
N.B.: nell’articolo si presuppone che l’indirizzo IP che il nostro provider ci fornisce sia statico (cioè è sempre quello), questo però, nella realtà, non è sempre vero. Ad esempio TIM fornisce di default un indirizzo IP dinamico (cioè cambia) per questo motivo una soluzione efficace per raggiungere la rete di casa da remoto è l’utilizzo del Dynamic DNS (DDNS). A Fastweb, invece, collegandoci anche con il discorso precedente, si può chiedere gratuitamente un indirizzo IP statico non nattato. In questo modo l’indirizzo sarà sempre lo stesso e non dovremo appoggiarci ad altri servizi per saperlo.
Sperando che questo discorso (semplificato all’osso) sia utile alle persone che non conoscono queste nozioni, porgiamo a tutti cordiali saluti.
Ali One Informatica
Autore
Grazie per la spiegazione dettagliata e semplice per i non addetti ai lavori
Ottimo….
Grazie mille era proprio quello che cercavo.
Appena arrivo a casa mi metto a lavoro.
Grazie mille
Angelo
Autore
Ciao Angelo,
era un po’ che avevo in programma di scrivere un articolo di questo tipo.
Ciao, è l’articolo che stavo cercando però se spengo-riaccendo il router l’indirizzo mi cambia ?
Cioè voglio creare una stazione meteo remota ed utilizzare un sistema simile ma ho paura che poi mi cambi l’IP che voglio raggiungere da remoto
Autore
Ciao Mauro, puoi impostare fisso il tuo IP sul router in modo che non cambi.
Ciao Mauro, complimenti per l’ottima guida semplice ed esaustiva!
Volevo chiederti un ‘informazione relativa al port forwarding su Arduino Yun:
Se volessi collegarmi da esterno attraverso script php all’ ip del database mysql ospitato su Arduino che ip dovrei usare?
Per l’accesso diretto da esterno ai dati della SD mi basta utilizzare (indirizzo IP modem: porta che abilito su regole firewall) es: 234.134.23.21:100
Nel caso del server mysql arduino che indirizzo devo prendere?
Certo in un tuo aiuto ti ringrazio e ti saluto
Luca
Autore
Ciao Luca,
l’IP di arduino non cambia, la porta mysql standard è 3306 se non l’hai cambiata.
Buongiorno Luca.
Articolo molto interessante. Purtroppo alla porta 80 risponde il mio router Linksys WAG320N.
Ho cercato di vedere di cambiare il numero della porta sul router ma non ho trovato come farlo.
Posso cambiare la porta del mio Arduino Yún?
Autore
Ciao Mario,
forse volevi scrivere a me, Mauro, e si tratta solo di un errore di battitura.
Puoi cambiare la porta di ricezione sul router mappandola sulla 80 dell’IP arduino yun.
Ad esempio puoi definire 8080 in esterno che gira il flusso http alla 80 della yun.
Ciao Mauro,
Scusa per il nome, è stata una svista.
Ho provato varie soluzioni: ho impostato la porta esterna su 8080 e l’interna su 80 ed anche entrambe su 80 ma continuo a non vedere il mio Arduino.
Ho provato anche ad associare la porta esterna 80 al mio computer fisso dove gira un server web e funziona benissimo.
Non capisco!
Grazie,
Mario
Autore
Ciao Mario,
per il nome nessun problema, ho sempre il dubbio che il messaggio sia indirizzato ad altri siti che parlano di Arduino 🙂
La porta esterna 80 mi avevi detto che era occupata dal router, puoi sovrascriverla ?
Internamente arduino su che porta ti risponde?
Ciao Mauro,
Quando avevo scritto la prima volta non avevo ancora provato a reindirizzare la porta 80 esterna e quindi mi rispondeva il router. Poi ho provato a reindirizzarla al computer e, come ho detto, funziona perché al posto del router risponde il server web con la sua pagina iniziale. Se invece faccio la stessa cosa con l’indirizzo della scheda Arduino mi dice che la pagina web non è disponibile; ugualmente se metto la porta esterna 8080 e 80 interna.
Io credo che Arduino risponda sulla porta 80 perché ho provato con “Fing” con l’Ipad ed analizzando l’IP dell’Arduino mi dice che le porte sono: 22 ssh, 53 Domain, 80 http e 443 https.
Grazie,
Mario
Autore
Ciao Mario,
prova a verificare che all’interno della tua rete, dal pc,server o ipad il browser riesca ad accedere sulla porta 80 di arduino yun.
Ciao Mauro,
Scusa se sono imbranato ma come faccio a verificare se riesco ad accedere alla porta 80?
Comunque la pagina web (index.html) che ho caricato su Arduino la vedo benissimo su tutti i computer di casa.
Grazie,
Mario
Autore
Ciao Mario,
non sei imbranato, pensavo lo sapessi, la porta 80 è quella di default per i browser per cui se scrivi solo https://www.mauroalfieri.it in effetti stai andando sulla porta 80 del mio server web.
Se vuoi andare sulla 8080 dovrai scrivere http://sito.estensione:8080
Tornando al problema che hai riscontrato se dall’interno della tua rete arduino risponde sull’IP assegnato e porta 80 e il router è configurato per avere la porta esterna 80 rediretta alla porta 80 di arduino potresti aver sbagliato l’IP di arduino o avere qualche altro meccanismo di rete che ti impedisce di raggiungere dal router il tuo arduino.
Ciao Mauro,
Ho capito o, almeno, penso di aver capito.
Ma se io dalla mia rete chiamo l’indirizzo di Arduino, inserendo o meno la porta 80, vado sempre alla pagina principale di arduino; dove posso far partire LuCI (tanto per intenderci). Come fa a sapere il router che la pagina web sta invece in arduino.local/sd/eccetera ? Non è che manca qualche impostazione nell’arduino?
Mario
Autore
Ciao Mario,
penso tu stia facendo un po di confuzione, è un discorso complesso quello su come funziona il protocollo http.
Prova a leggere qualche manuale o wiki su http e comunicazione client-server da browser.
In estrema, ma proprio estrema sintesi, considera che sei tu a comporre l’url quando scrivi arduino.local/sd/… e il router non fa altro che inoltrare tutto ciò che c’è dopo il primo / all’IP dell’arduino, ovviamente se sa come trasformare arduino.local in un IP.
Io ti consiglio la lettura di qualche manuale di rete, anche base e di usare sempre l’Ip per collegarti alla yun in questa fase di configurazione.
Buonasera, vorrei chiedervi se tramite il port mapping degli estranei posso entrare nel mio pc o navigare con la mia linea adsl è come lo fanno?
Autore
Ciao Salvatore,
lascio la tua risposta on-line perché qualche esperto di sicurezza possa risponderti.
ciao mauro complimenti per l’articolo è quello che cercavo!!!
io ho eseguito tutto il procedimento però continuo a non avere l’accesso dall’esterno, quindi presumo che la porta della mia shield non sia l’80, come posso scoprire quale porta usa?
Autore
Ciao Pietro,
la porta la definisci tu nel tuo sketch.