View Full Version : Accedere PC Privato dall'esterno
magonicola
20-03-2010, 15:48
Salve, mi servirebbe una mano per questa questione che mi sta creando notevoli grattacapi.
Ho questa situazione:
Nella casa "A" ho 2 pc collegati in LAN tra di loro senza router, con ip del tipo 192.168.0.x.
In particolare
Il PC "A1" ha IP 192.168.0.190, non ha connessione internet verso l'esterno e non è accessibile (non posso effettuare alcuna modifica su di esso), e monta un server web;
Il PC "A2" ha IP 192.168.0.2, ha winxp home, ho completo accesso su di esso e usa il webserver montato sul PC A1 semplicemente accedendo via browser all'IP privato di A1. In più possiede una connessione ad internet HSDPA tramite cellulare LG collegato con Bluetooth e un servizio di dynamicDNS che associa l'ip pubblico della connessione HSDPA ad un nome simbolico.
Nella casa B ho invece un normale PC "B1" con connessione ADSL.
Quello che dovrei fare è accedere a A1 tramite B1 come se fossi nella sua stessa rete privata (mi basta in pratica poter accedere al webserver montato su A1 come client).
Ho provato numerose soluzioni ma sarà per un motivo sarà per un altro non sono mai riuscito a risolvere.
Tentativi:
Creare una VPN
Installare su "A2" un server web che accettasse le richeiste dall'esterno, facesse una CURL modificando l'URL della richiesta verso A1, prendesse il risultato e lo rispedisse, modificando nuovamente l'url, a B1
Trasformare A2 in un router base configurando col port forwarding l'80 verso A1
ma purtroppo, ripeto, è fallito tutto.
Potete darmi una mano a risolvere questo problema?
Grazie.
nuovoUtente86
20-03-2010, 18:31
la terza soluzione è corretta ma l' ip deve essere obbligatoriamente 192.168.0.1
Harry_Callahan
20-03-2010, 19:43
Quello che dovrei fare è accedere a A1 tramite B1 come se fossi nella sua stessa rete privata (mi basta in pratica poter accedere al webserver montato su A1 come client).
bisogna iniziare prima le prove in LAN poi WAN to LAN
in parole povere, devi avere prima la certezza di poter accedere da B1 a A1 portando fisicamente B1 nella rete di A1, se accedi correttamente alle risorse condivise(cartelle mi sembra di capire) allora dopo passi alle configurazioni WAN to LAN(configurazione su router\modem delle rispettive sedi)
edit: leggendo meglio vuoi arrivare al webserver, serve un virtual server per fare una cosa del genere. Il modem non basta allora
magonicola
21-03-2010, 00:16
bisogna iniziare prima le prove in LAN poi WAN to LAN
in parole povere, devi avere prima la certezza di poter accedere da B1 a A1 portando fisicamente B1 nella rete di A1
Non mi è tanto chiaro questo punto: è abbastanza ovvio che se porto fisicamente B1 nella rete A riesco ad accedere a tutte le risorse della rete A, quindi questo punto è [PASSED]
, se accedi correttamente alle risorse condivise(cartelle mi sembra di capire) allora dopo passi alle configurazioni WAN to LAN(configurazione su router\modem delle rispettive sedi)
La rete A non ha router. Sarebbe stata cosa gradita ma non esiste nessun router. Essendo solo pc che comuinicano in locale credo ci sia solo uno switch se non un collegamento diretto tra i due.
edit: leggendo meglio vuoi arrivare al webserver, serve un virtual server per fare una cosa del genere. Il modem non basta allora
Mi spiegheresti meglio cosa intendi per virtual server? Sarebbe un diverso acronimo per il port forwarding o si riferisce al "microsoft virtual server"?
la terza soluzione è corretta ma l' ip deve essere obbligatoriamente 192.168.0.1
l'ip lo posso impostare benissimo al .0.1 (di A2), ma poi?
nuovoUtente86
21-03-2010, 00:53
una volta che abiliti l' ICS (assegnando appunto l' indirizzo .0.1) al pc che fa da gateway, ed effettuato il dovuto forward, il server dovrebbe funzionare.
Harry_Callahan
21-03-2010, 08:57
@magonicola solo dopo aver postato ho capito che utilizzavi un modem e non un router, si per Virtual Server intendevo il portforwarding, di solito nei router commerciali è sempre presente
per le prove in locale hai ragione, è inutile nel tuo caso, però: quando lavori con le VPN può tornare utile una prova del genere, cioè vedi prima in LAN se i PC si vedono, dopo passi alle configurazioni WAN to LAN
magonicola
21-03-2010, 14:44
@magonicola solo dopo aver postato ho capito che utilizzavi un modem e non un router, si per Virtual Server intendevo il portforwarding, di solito nei router commerciali è sempre presente
per le prove in locale hai ragione, è inutile nel tuo caso, però: quando lavori con le VPN può tornare utile una prova del genere, cioè vedi prima in LAN se i PC si vedono, dopo passi alle configurazioni WAN to LAN
Riscrivo la situazione per chiarezza: nella rete A non ci sono router, c'è solo un cellulare che fa da modem per il pc A2, quindi niente port forwarding.
Per quanto riguarda le VPN, avevo provato con hamachi ,a crea una "sovrastruttura" locale nel senso che tutti i pc su cui gira amachi hanno ip del tipo 5.x.x.x ed ovviamente per vedere A1 dovrei mettere hamachi anche su di esso (ma non ho la possibilità di accedervi).
Idee?
una volta che abiliti l' ICS (assegnando appunto l' indirizzo .0.1) al pc che fa da gateway, ed effettuato il dovuto forward, il server dovrebbe funzionare.
mi daresti una mano più specifica? Abilito ICS su A2 con IP .0.1... e poi? come posso accedere ad A1 tramite A2 da B1?
nuovoUtente86
21-03-2010, 15:32
semplicemente facendo una richiesta http sull' ip pubblico.
magonicola
21-03-2010, 15:45
semplicemente facendo una richiesta http sull' ip pubblico.
Scusami ma ho alcuni dubbi su questo modo di procedere. Imposto .0.1 su A2 e accedo tramite B1 ad A1 richiedendo l'IP pubblico di A2? mi pare un pò sballata come soluzione anche perchè A2 non risponde assolutamente alle richeiste http se non è impostato un webserver su di esso, e se lo impostassi risponderebbe A2 e non A1... :confused:
nuovoUtente86
21-03-2010, 16:09
windows con ICS attivo è un comunissimo isr, e come tale con port-forward redirigge correttamente le connessioni.
Ma visto che ti pare sballata come soluzione, arrangiati da solo.
Harry_Callahan
21-03-2010, 16:45
Ma visto che ti pare sballata come soluzione, arrangiati da solo.
secondo me non voleva essere polemico con questa frase, sicuramente l'ha scritto perchè aveva qualche dubbio, infatti anch'io non mi trovo tanto con il discorso ICS, nel senso, quando da fuori contatti il WAN IP, come fai a raggiungere il webserver sull'altro PC? chi fa il forwarding alla porta 80 del webserver? come fai a indicare che la richiesta è destinata alla porta 80 del 2° PC e non a quello connesso direttamente a internet?
magonicola
21-03-2010, 18:23
secondo me non voleva essere polemico con questa frase, sicuramente l'ha scritto perchè aveva qualche dubbio, infatti anch'io non mi trovo tanto con il discorso ICS, nel senso, quando da fuori contatti il WAN IP, come fai a raggiungere il webserver sull'altro PC? chi fa il forwarding alla porta 80 del webserver? come fai a indicare che la richiesta è destinata alla porta 80 del 2° PC e non a quello connesso direttamente a internet?
E' esattamente quello che intendevo.
Cmq il lavoro procede verso la direzione dei Reverse Proxy su Apache... pare che sono a buon punto, appena faccio qualcosa di buono vi fò sapere
nuovoUtente86
21-03-2010, 19:50
secondo me non voleva essere polemico con questa frase, sicuramente l'ha scritto perchè aveva qualche dubbio, infatti anch'io non mi trovo tanto con il discorso ICS, nel senso, quando da fuori contatti il WAN IP, come fai a raggiungere il webserver sull'altro PC? chi fa il forwarding alla porta 80 del webserver? come fai a indicare che la richiesta è destinata alla porta 80 del 2° PC e non a quello connesso direttamente a internet?
regola di port-forwarding, null' altro. Qualsiasi isr può far binding sulla 80 della wan interface, le discriminanti sono l' abilitazione o meno del servizio in ascolto e il port-forwarding.
Harry_Callahan
21-03-2010, 20:37
regola di port-forwarding, null' altro
su windows è possibile una cosa del genere? oppure serve un software di terzi?
sinceramente non ho mai provato a fare una cosa del genere
nuovoUtente86
21-03-2010, 20:41
certo che è possibile.
magonicola
13-05-2010, 15:29
certo che è possibile.
sarebbe stato tanto bello sapere come... CMQ tornando alle cose serie:
---------------------------------
Salve ragassuoli,
ho trovato la mia soluzione, che non è detto essere l'unica nè la ottima, ma è molto soddisfacente.
Innanzitutto REGOLA DEL POLLICE ALTO: quando si tratta di problemi di reti/internet, dare SEMPRE un occhio alla Apache Software Foundation :)
E proprio lì c'è la soluzione ai nostri problemi.
Ricapitolando da B1 devo accedere ad A2 che mi forwarda su A1.
SOLUZIONE:
Spiego rapidamente per mancanza di tempo e presupponendo un piccolo background culturale dei lettori :)
Installare APACHE nel pc A2 (anche una stand-alone tipo XAMPPLite - da me in effetti scelta - va più che bene).
Accedere al file di configurazione httpd.conf che sta da qualche parte :) e abilitare le seguenti linee togliendo il cancelletto ad inizio riga:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
Andate alla fine del file ed aggiungete le seguenti linee:
####PROXY#####
<proxy>
Order deny,allow
Allow from all
</proxy>
ProxyPass / http://192.168.1.190/
ProxyPassReverse / http://192.168.1.190/
ProxyPreserveHost On
####FINEPROXY#####
dove 192.168.1.190 è l'ip del pc A1, quello "privato" che si vuole "interrogare" dall'esterno.
Salvare il tutto e riavviare Apache (si ricorda che gira sul pc A2).
Ovivamente da questa "base" funzionante potete fare innumerevoli modifiche per adattare il funzionamento del sistema alle vostre esigenze.
Per dovere di cronaca, in letteratura questo approccio è chiamato REVERSE PROXY e serve... ad un sacco di cose, cercate su google :)
Se arrivati a questo punto avete come me esultato perchè avete provato tutto a casa e poi siete rimasti delusissimi perchè "sul campo" non funzionava un ciufolo senza apparente motivo, sappiate che:
Connessioni Fastweb o quasi tutte le HSDPA (via cellulare) nattano gli ip e non permettono l'accesso diretto ad un terminale dall'esterno. Leggi: non hanno IP pubblico.
Come contattare A2?
Io ho risolto così:
Installare Teamviewer sul pc A2 includendo la VPN
Installare Teamviewer con VPN su tutti i pc "host" del tipo B1 - quelli esterni.
instaurare una VPN tra i due - si può associare un nome simbolico al pc A2 su teamviewer, creare eseguibili che la facciano instaurare direttamente, creare un dyndns per l'ip privato-virtuale di A2 (che nn cambia mai) e tutte ste cose qui, per le quali vi rimando alla documentazione di Teamviewer ed a zio google :)
Fatto questo, da B1 instauro una VPN con A2 (IP_B1=7.0.0.1, IP_B2=7.0.0.2 ad es) e faccio richieste http del tipo http://7.0.0.2/index.php che A2 modificherà in http://192.168.1.190 (IP_A1) le inoltrerà ad A1, attenderà la risposta, cambierà tutte le stringe reinserendo il suo ip al posto di quello di A1 e rispedirà in maniera trasparente a B2.
Al solito se qualcuno ha qualche obiezione/consiglio/altro può fare reply.
Di chiù nin zò!
CIAO RAGA!
nuovoUtente86
13-05-2010, 15:48
hai fatto tutto sto casino, per una cosa risolvibile con una regola di forwardingi, come ti avevo indicato.
magonicola
13-05-2010, 16:07
hai fatto tutto sto casino, per una cosa risolvibile con una regola di forwardingi, come ti avevo indicato.
Fà tanto piacere a me ed agli altri utenti "base" del forum la tua soluzione semplice e funzionante... peccato che non hai ancora detto come si fa'!
Chiedi ad Harry se ha capito che deve fare per metter in pratica la tua idea geniale e vedi cosa risponde. Se lo chiedi a me ovviamente è scontato che non so cosa fare - non che non abbia capito, ma davvero NON SO visto che non hai detto assolutamente nulla.
E in tutto questo hai anche la presunzione di dire: ma io avevo detto mesi fa una cosa più semplice...
Che poi scompattare uno zip e cancellare due # non mi pare complicatissimo, perchè questo in fin dei conti si deve fare.
Poi ognuno è libro di pensarla come vuole... se mi fai un tutorial che mi dice cosa fare per implementare quello che suggerisci (e che possibilmente funzioni come il mio su tutti i sistemi win e *nix) fammi un fischio.
Senza rancore
PS: è stata tanto chiara la tua soluzione che ancora non è ben specificato sta cavolo di ISR cosa sia:
Acronimo
* Indicatore della situazione reddituale
* International Standard Range
* Interrupt Service Routine
* Intersecting Storage Rings - un acceleratore di particelle al CERN
Codici
* ISR - codice vettore ICAO di Israir
* isr - codice ISO 639-3 della lingua dei segni israeliana
* ISR - codice ISO 3166-1 alpha-3 di Israele
Andiam, Andiam, Andiam ad Israel... che ci fa il formagging...
nuovoUtente86
13-05-2010, 16:28
se continui ad utilizzare wikipedia dubito che saprai mai cosa significhi
isr alias Integrated Services Routers.
Quanto alla soluzione vediamo un po:
post numero 2:
la terza soluzione è corretta ma l' ip deve essere obbligatoriamente 192.168.0.1
post numero 5:
una volta che abiliti l' ICS (assegnando appunto l' indirizzo .0.1) al pc che fa da gateway, ed effettuato il dovuto forward, il server dovrebbe funzionare
Al che bastava digitare ICS su google per accedere a milioni di documenti sulla condiviose di connesione tra cui http://windows.microsoft.com/it-IT/windows-vista/Using-ICS-Internet-Connection-Sharing
post numero 13:
regola di port-forwarding, null' altro. Qualsiasi isr può far binding sulla 80 della wan interface, le discriminanti sono l' abilitazione o meno del servizio in ascolto e il port-forwarding
Anche qui bisognava digitare, invece di fare i polemici, su google ICS port forwarding per arrivare a link come questo
http://wiki.vuze.com/w/NAT_problem#Port_Forwarding_through_Windows_XP_Internet_Connection_Sharing
magonicola
13-05-2010, 16:34
Ripeto:
ORA può essere che hai dato una soluzione... e onestamente se tutto questo ti sembra + facile, trasparente e crossplatform di un unzip+ modifica txt per fare un reverse proxy... abbiamo un concetto di semplicità leggermente diverso.
Senza rancore e senza polemiche.
nuovoUtente86
13-05-2010, 16:39
non solo è più semplice, ma anche più sicuro e performante.
La soluzione ti era stata già data. Non puoi pretendere che qualcuno si metta a scrivere passo-passo una procedura(apri il pannello tal dei tali, spunta "consenti ad altri utenti....") iper-documentata, o che magari si colleghi sulla tua macchina da remoto cosi ti evita anche la fatica di fare 2 click (perchè di questo si tratta).
Considerando anche che ne tuo post di esordio, scrivi fra le ipotesi di trasformare la macchina in router, quindi avendo tale procedua il nome di ICS, si presume che uno scriva una cosa che conosce.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.