Come posso rendere pubblico il mio web server Raspberry Pi?


8

Quindi ho finalmente avviato un web server, tranne che è disponibile solo per la mia rete locale e vorrei renderlo pubblico. Ho un D-Link DIR-615 come router, l'indirizzo IP del mio Pi è 192.168.0.14 e le mie informazioni IP pubbliche si presentano così:

IP Information: xx.xx.xx.xx
ISP:    Xplornet Communications
Organization:   Xplornet Communications
Connection: Broadband
Services:   None Detected
City:   Sherwood Park
Region: Alberta
Country:    Canada

Tutto suona bene tranne che non vivo a Sherwood Park, sono a circa 2 ore di distanza.

Cosa devo fare per rendere pubblico il mio server?

Il mio router supporta port forwarding, server virtuale e DMZ. Sto usando un server HTTP Apache.

Grazie, ma questo non risolve ancora il mio problema; Voglio solo collegarmi dall'esterno forse una volta, poi scoprirò DDNS e simili, ma per ora non si connetterà a nulla quando scrivo il mio indirizzo IP Xplornet.

Risposte:


13

Inoltra la porta 80 dal tuo router al tuo Pi e, se vuoi SSH dall'esterno, anche la porta 22. Tieni presente che con SSH dall'esterno chiunque può entrare può quindi ssh o accedere agli altri dispositivi della tua rete.

Una volta configurato, se il tuo IP rimane praticamente lo stesso, puoi usare qualcosa come Cloudflare per puntare un dominio su di esso. Se cambia quotidianamente, avrai bisogno di un servizio come DynDNS.


K, quindi ho impostato il mio router per inoltrare la porta 80 alla porta 80 con l'indirizzo IP del mio lampone pi o qualsiasi altra cosa, ma è ancora "scaduto" ogni volta che scrivo il mio indirizzo IP esterno
Jim Jones,

Prova ad accedervi e a specificare la porta 80, come xx.xx.xx.xx: 80
George Pearce,

@Spencer: non è possibile testare in modo affidabile il port forwarding dall'interno della rete poiché non tutti i router supportano il "tornante". Prova a provarlo dall'esterno della tua LAN. Ad esempio, utilizzare un telefono cellulare con WiFi disattivato e l'utilizzo di dati cellulari (3G, HCSD, ecc.) Per una connessione non LAN.
RedGrittyBrick,

@SpencerKillen Stai testando dall'esterno? Molti dispositivi non eseguiranno questo NAT per te se ti trovi sulla stessa LAN del tuo Raspberry Pi e accedi all'IP pubblico del tuo router. Se puoi accedere al web server a 192.168.0.14 dalla tua LAN, l'RPI o Apache non è in errore, ma il port forwarding non viene eseguito correttamente o il tuo router ha un firewall installato da qualche parte.
nn.

Se il port forwarding è troppo ingombrante o non è affatto un'opzione (ad esempio se sei dietro un router mobile) potresti provare un servizio di inoltro come PageKite o Yaler.net (Disclosure: I'm a found of Yaler)
tamberg

3

Ci sono alcune cose da tenere a mente.

Uno è che anche se il tuo port forwarding è configurato correttamente nel tuo router, potresti non essere in grado di connetterti al tuo IP pubblico da casa perché alcuni router inoltrano solo connessioni provenienti da "fuori", non "dentro". Un altro problema comune è che alcuni ISP non vogliono che i loro utenti eseguano server pubblici e blocchino porte di ingresso comuni come la porta 80 o 25.

Non so se uno di questi si applichi nel tuo caso, ma potrebbero. A parte questo, direi che sei sulla buona strada, configurare il tuo router e una soluzione DNS dinamica è il modo più efficiente per farlo se funziona per te.

Tuttavia, se non funziona per qualche motivo, ho creato una soluzione chiamata PageKite ( http://pagekite.net/) per rendere pubblici i server da firewall rigidi o su dispositivi che cambiano spesso posizione. Funziona creando un tunnel dal tuo Raspberry Pi a un server di inoltro "front-end" che inoltra le tue richieste in arrivo e le risposte sul tunnel. Quindi ogni volta che il tuo Pi ha una connessione Internet funzionante e può connettersi al relè, il tuo server sarà visibile (non sono necessarie modifiche al router o DNS). È un software gratuito, ma se le persone utilizzano il nostro servizio online per connettersi (anziché eseguire il proprio relay da qualche parte), chiediamo alle persone di pagare un po 'per il privilegio. Questo è simile al localtunnel che è stato menzionato altrove, tranne PageKite che è stato progettato pensando all'affidabilità e alle connessioni permanenti, non solo per i test temporanei.

In bocca al lupo!


Vorrei ricordare che ai fini dell'utilizzo di PageKite con un Raspberry Pi, è meglio seguire le istruzioni per Debian, qui: pagekite.net/wiki/Howto/GNULinux/ConfigureYourSystem
Bjarni Rúnar

0

Avrai bisogno di un servizio simile DynDNSo procurarti un IP statico. Altrimenti, potresti considerare una VPN.


0

Dipende se si desidera condividere in modo persistente i contenuti Web o se è necessario solo un accesso pubblico episodico. Per quest'ultimo, non è necessario passare attraverso la seccatura di configurare un account DynDNS e aprire le porte di inoltro nel router.

Una soluzione abbastanza semplice è usare LocalTunnel , che renderà il tuo server web accessibile attraverso un nome di dominio come:

http://8bv2.localtunnel.com

È molto utile per condividere i progressi di un sito Web che stai ospitando sul tuo computer.


0

La mia soluzione per diversi sistemi con IP dinamico è la seguente:

Ho un dominio da Godaddy Entrydns 1 cron job sul mio router che sta caricando il mio indirizzo IP su entrydns con un token (un token fornito da entrydns). E il mio server DNS nel mio dominio godaddy è impostato su entrydns. Oh e non dimenticare di portforward :)

Se hai bisogno, posso darti una guida dettagliata più dettagliata, ma spero che tu possa capire questo semplice processo tramite Google :)


1
potrebbe essere meglio fornire sempre la guida dettagliata più dettagliata, soprattutto se aiuta gli altri con problemi simili. Capisco che googling aiuterà, ma immagino che ogni domanda possa essere risolta con google!
Kolin,
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.