Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Reti e LAN - Dubbi sulle socket
Forum - Reti e LAN - Dubbi sulle socket

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Segnala al moderatore
Postato alle 8:53
Venerdì, 03/09/2010
Ciao,
sto cercando di creare una semplice chat in delphi, ma per il momento lasciamo perdere la parte del linguaggio, ho dei problemi sulla teoria delle socket.
Ho creato due semplici programmi un server e un client.
Se come host uso 127.0.0.1 tutto va bene, se uso la mia rete di casa funziona, però ho dovuto aprire la porta 1000 sul pc che girava il server.
Ancora non sicuro ho provato a mandare il client a un mio amico(quindi non più nella mia rete) e dopo aver attivato il server sul mio pc con la porta 1000 aperta ho detto al mio amico di connettersi al server con le seguenti credenziali:
Host: 1xx.xxx.5x.xxx (Ip pubblico)
Porta: 1000
Purtroppo non ha funzionato. All'inizio non capivo poi cercando su google ho letto un'articolo in cui diceva che anche il client doveva anche avere la porta aperta, e per evitare tutto questo giro bastava usare la reverse connection.
Allora cercato un po' in giro sulla reverse connection, ma ho solo trovato degli articoli corti e poco comprensibili.
Se ho capito bene il server deve collegarsi al client ma è una cosa impossibile!
Potete chiarirmi le idee, e spiegarmi come funziona la reverse connection?

Grazie

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 9:39
Venerdì, 03/09/2010

allora, la reverse connection qui non c'entra molto, al limite approfondiremo più avanti la cosa, ma per ora ti basta la connection "tradizionale" :)

purtroppo ci sono degli isp che non permettono questo genere di cose, tipo fastweb, in quanto intere porzioni della loro rete sono nattate sotto lo stesso ip pubblico e per avere un ip pubblico "privato per la persona" bisogna pagare un sovrapprezzo sull'abbonamento.

il mio consiglio è ricontrollare firewall/router su entrambi i pc, quindi è importante che sul tuo router (se ne hai uno) la tabella di instradamento abbia una riga in cui si dirotta la porta X sul tuo ip privato.

Altro consiglio è staticizzare il proprio ip privato, di norma se non stacchi e riattacchi pc in continuazione è sempre lo stesso, ma per diverse ragioni come accessi via wireless o cambio di ordine di avvio dei pc in casa può cambiare.
Per farlo devi andare in impostazioni di rete e specificare a mano la configurazione dell'adattatore di rete TCP/IP, ovvero IP, Subnet Mask, Gateway e DNS server (stesso del gateway).

il motivo di tutto questo è che la entry nella tabella di instradamento è statica, cioè se ti cambia l'ip non cambia la riga :) quindi l'ip deve essere sempre lo stesso.

altro modo che invece sconsiglio caldamente è utilizzare l'upnp, che è un protocollo per il discovery dei servizi. In parole povere il router è in grado di capire quali porte sono aperte suoi client e inserisce automaticamente le entry nella tabella di instradamento verso queste porte. Ora, la comodità di tutto questo è indiscussa... ma a cosa serve un router se è trasparente? dal punto di vista della sicurezza è un problema non indifferente, perchè in questo modo un virus può aprire porte sul tuo pc ed essere automaticamente mappate sul router esponendo il tuo pc ad internet e quindi obbligandoti ad installare un firewall su ogni client della rete privata.
ovviamente non ci sono solo i virus che aprono porte indesiderate, spesso programmi legittimi aprono porte (per svariate ragioni) che espongono vulnerabilità più o meno gravi.

purtroppo hai oscurato l'ip, quindi non si capisce se è privato o pubblico, sta di fatto che il miglior modo per ottenere il proprio ip pubblico è quello di andare su www.whatismyip.com e fare copia incolla :)

quindi ricapitoliamo: controlla firewall e router, imposta la tabella di instradamento con un'entry che punta al tuo pc sulla porta scelta e fine.

ultimo consiglio è di scegliere porte superiori a 1024, ovvero porte not-well-known, in quanto i servizi da 0-1024 sono già stati stabiliti e non si dovrebbe mai utilizzare una porta di quel range per le proprie applicazioni. orientati sulle porte 40000-65000 :)

aspettiamo tue notizie :)


PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 8:49
Sabato, 04/09/2010
Testo quotato

Postato originariamente da XBarboX:

Allora ricapitolando:
ho provato a mandare il client a tre miei amici, tutti quanti con il router, e dopo aver attivato il server sul mio pc tutti e tre sono riusciti a connettersi a me.
Però non mi sento ancora sicuro:
Vorrei sapere se basta avere un server attivo con la porta aperta affinché qualunque client possa collegarsi al server, anche dietro a firewall?



se la tua porta è aperta e corretamente instradata la connessione fa esattamente quello che ci si aspetta :)

i tuoi amici non devono configurare niente.

P.S
dai tuoi post noto che c'è qualcosa che non va sul tuo concetto di "networking", consiglio un buon manuale ;)

PM
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 9:52
Venerdì, 03/09/2010
Allora usando vodafone ho sempre lo stesso ip: 1**.2**.*.* , posso cambiarlo se lascio spento il router almeno per mezzora però lo faccio di rado. Quindi credo che il problema dell'ip statico non sia così grande.
Per quanto riguarda il firewall credo di averlo impostato bene per il mio router, sono andato sulle impostazioni del router e ho aperto la porta 1000 (dovrei cambiarla) proprio come ho fatto per aprire le porte di e-mule.
Ora mi sta venendo un dubbio: io la porta l'ho aperta nella sezione port forwarding. Però c'è anche port triggering. In quale delle due devo aprire la porta per il server?

E poi comunque vorrei creare un client che riesca a connettersi senza problemi di firewall perchè non posso dire a un utente inesperto di aprire una porta.

Spero di essere stato esauriente.

Grazie ancora

Edit by nikipe: si prega di non mettere informazioni sensibili sul forum pubblico, indirizzo ip compreso...

Ultima modifica effettuata da nikipe_silver il 03/09/2010 alle 18:27
PM
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 10:48
Venerdì, 03/09/2010
Ho provato di nuovo e ha funzionato... che strano.
In pratica qualunque client riesce a connettersi al server se sul pc in cui gira il server la porta è aperta correttamente?
Eppure non capisco, ho letto che molte hack usano la reverse connection per superare il firewall...
Eppure io e il mio amico abbiamo il router....
Non ci capisco più nulla :D

PM
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 11:33
Venerdì, 03/09/2010
Ho provato di nuovo con un'altro mio amico e ha funzionato... va bhe meglio così però mi piacerebbe capire ancora cosa é la reverse connection

PM
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 8:39
Sabato, 04/09/2010
Allora ricapitolando:
ho provato a mandare il client a tre miei amici, tutti quanti con il router, e dopo aver attivato il server sul mio pc tutti e tre sono riusciti a connettersi a me.
Però non mi sento ancora sicuro:
Vorrei sapere se basta avere un server attivo con la porta aperta affinché qualunque client possa collegarsi al server, anche dietro a firewall?

PM
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 9:04
Sabato, 04/09/2010
Testo quotato

Postato originariamente da HeDo:

Testo quotato

Postato originariamente da XBarboX:

Allora ricapitolando:
ho provato a mandare il client a tre miei amici, tutti quanti con il router, e dopo aver attivato il server sul mio pc tutti e tre sono riusciti a connettersi a me.
Però non mi sento ancora sicuro:
Vorrei sapere se basta avere un server attivo con la porta aperta affinché qualunque client possa collegarsi al server, anche dietro a firewall?



se la tua porta è aperta e corretamente instradata la connessione fa esattamente quello che ci si aspetta :)

i tuoi amici non devono configurare niente.

P.S
dai tuoi post noto che c'è qualcosa che non va sul tuo concetto di "networking", consiglio un buon manuale ;)
  


Lo so benissimo anche io, vorrei sapere solo dove posso trovare un buon manuale... sul mio libro dell'ecdl c'è ben poco e poi da google non riesco a trovare niente di buono, forse sbaglio keyword.
Potresti ancora darmi una piccola mano a trovare una guida sulle reti?
Grazie

Ultima modifica effettuata da XBarboX il 04/09/2010 alle 9:08
PM
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 9:04
Sabato, 04/09/2010
Ops ho sbagliato, fate finta che questo messaggio non esista

Ultima modifica effettuata da XBarboX il 04/09/2010 alle 9:06
PM
Pagine: [ 1 2 ] Precedente | Prossimo