PDA

View Full Version : Apache in rete lan disponibile anche da internet


repley
23-03-2006, 14:05
Salve a tutti. Ho un problema che mi sta facendo diventare matto. :muro: :muro:
Lo scenario è questo.

Ho installato Apache Mysql PHP su un pc in una lan, tutto va a meraviglia, tranne un piccolo particolare: il web server è disponibile solo nella rete lan, e non è disponibile digitando l'indirizzo IP pubblico seguito dalla porta (es: http://84.256.xxx.xxx:8080).

Aggiungo, che il computer sul quale è installato Apache è perfettamente visibile su internet digitando http://84.256.xxx.xxx (mi appare la schermata di amministrazione del router, la stessa che appare digitando http://192.168.1.1). Infatti ho fatto un ping con il cmd di windows ed il risultato è stato positivo, il computer l'ip 84.256.xxx.xxx risponde.

Aggiungo anche, che ho fatto il port forwarding (modem adsl starcom ut-300r2u - provider Tiscali) sulla porta tcp 8080 (ho fatto il port forwarding per emule e funziona benissimo, quindi non credo di aver sbagliato qualcosa, almeno non 30 volte di seguito . :muro:

Domanda: come faccio a rendere visibile Apache anche con il mio ip pubblico?

Ricapitolando:

- se sono nella lan, Apache è visibile se digito http://localhost:8080, se digito http://127.0.0.1:8080, se digito http://192.168.1.3:8080;

non lo è se digito nel browser http://(ip pubblico della lan che ottengo dal sito http://www.mioip.it):8080)


- se mi connetto direttamente ad internet con un dialup, sempre dal computer sul quale è installato Apache, la situazione è questa: Apache è perfettamente visibile, sia digitando l'indirizzo IP pubblico seguito dalla porta es: http://84.256.xxx.xxx:8080 e sia digitando http://localhost:8080, http://127.0.0.1:8080 (quindi non è un problema di Apache), ma, se digito l'indirizzo pubblico della rete lan non riesco a vedere nemmeno la schermata di amministrazione del router (non so se dovrei vederla dall'esterno, anzi non credo, ma voglio fornire tutti i dettagli sulla situazione).

Grazie

chicco83
23-03-2006, 14:29
innanzitutto,e' meglio se no-ip o dyndns per associare un nome al tuo indirizzo ip (in pratica,installi il programma e ogni volta che il computer cambia indirizzo,questo provvede ad aggiornare i dns al nuovo indirizzo). in questo modo bastera' scrivere miocomputer.no-ip.org da qualsiasi computer per accedere alla propria macchina.
nel tuo caso,dovrai aggiungere anche :numeroporta x accedere ad apache.
nel caso non lo avessi fatto,devi configurare apache in modo che risponda anche a richieste esterne. nel file httpd.conf trovi la sezione "listen",li devi aggiungere il tuo indirizzo (x questo e' meglio usare il servizio di cui ho parlato sopra,altrimenti dovresti cambiare ogni volta indirizzo... o almeno credo,io ho sempre usato no-ip...) e ovviamente la porta...
infine,per testare il funzionamento,utilizzi un proxy,visto che alcuni router sembrano dare problemi quando si cerca di collegarsi al proprio pc dal proprio pc...

T_M_P
23-03-2006, 14:46
Beh, se lui ha un indirizzo pubblico (e fisso) non credo serva no-ip. Più che altro mi sembra sia un problema di Apache (che non conosco). Prova con la configurazione suggerita da chicco.

Piuttosto Chicco, una domanda:

non credo che un indirizzo non pubblico tipo 192.168.x.x sia accessibile direttamente da internet, o sbaglio? Ci sarà un router Telecom o Infostrada o altro che dall'interno delle loro reti ti fa uscire ed in entrata (dall'esterno verso il tuo PC) dovrai prima passare da quel router no? Quindi dovrai nattare immagino.

Sto sognando o è così? Se è così, come lo risolvo?

repley
23-03-2006, 16:02
A me non serve avere un nome di dominio associato ad un ip, mi basta poter raggiungere il server nella lan digitando l'IP pubblico, da internet e dalla lan stessa; quindi non mi serve nemmeno una DMZ (il server non sarebbe disponibile dalla lan ma solo da internet)

Ho provato ad inserire Listen ip-pubblico:numero-porta e non funziona. Apache non si avvia e nel og ho trovato:

make_sock: could not bind to address 84.223.***.*** port 8080

Cosa fa la direttiva Bind di Apache? Potrebbe essere la chiave per la soluzione...

repley
23-03-2006, 16:28
Ho provato a utilizzare il validatore di xhtml del W3C su una mia pagina sul web server nella lan e funziona! Il web server è visibile da internet.

Praticamente, se si è dentro la lan che ospita il webserver da raggiungere:

- NON si può raggiungere il webserver con "http://ip_pubblico:numero_porta" se digitato da un computer della lan;

- è possibile raggiungere un computer della lan su una porta specifica, solo digitando http://192.168.1.3:numero_porta

Qualcuno sa spiegarmi il perchè?

chicco83
23-03-2006, 17:18
si,scusa,mi era sfuggito che avevi un ip pubblico...
non ti saprei spiegare di preciso perche' non si puo' raggiungere il webserver dall'interno della lan,ma sembra essere un problema comune... infatti,ti avevo consigliato di utilizzare un proxy... ;)
con le porte hai risolto? se con ip_pubblico:num_porta non funziona,allora prova con ip_router:num_porta... altrimenti prova senza quella riga,visto che col dial-up andava senza problemi...

@ T_M_P: problemi di quel tipo mi sembra ci siano solo con fastweb... telecom e gli altri provider quando ti colleghi ti assegnano un ip (chiaramente dinamico... credo che quello statico sia a pagamento),quindi se vuoi raggiungere il pc da internet devi conoscerne l'indirizzo. no-ip e & co. semplificano le cose permettendoti di assegnare alla tua macchina un nome... il loro programmino poi si occupera' di associare a questo nome l'indirizzo ip del pc...
l'indirizzo locale (192.168.x.x) non credo sia direttamente raggiungibile dall'esterno,a meno di non utilizzare il router come bridge (in pratica,dovrebbe essere come un normale modem,se non ho capito male...).
ma sono settaggi da fare sul proprio router,non su quelli dei provider...
spero di avere capito quello che volevi sapere e di averti risposto...

T_M_P
23-03-2006, 20:39
Chicco grazie mille per la pazienza ;)

Ma allora il mio indirizzo esattamente quale sarebbe? se 192.168.x.x non è visibile dall'esterno, come faccio a sapere quello visibile?

chicco83
23-03-2006, 23:06
x sapere l'indirizzo del tuo pc puoi usare no-ip,come ti e' gia' stato consigliato nell'altro thread...
poi,se devi usare servizi particolari sul pc (tipo apache,vnc,server per videogiochi,ecc...) fai il portforwarding sulle porte che utilizzano queste applicazioni... in questo modo dovresti essere in grado di accedere da remoto a questi servizi...