Conflitti a foro stenopeico


1

Sto cercando di scrivere un programma server client più semplice, usando il mio laptop come server e diversi dispositivi Android come client. Il server è in ascolto su una porta (diciamo, 5902) fino a quando un client tenta di connettersi. I thread vengono generati sul server e le comunicazioni avvengono.

In un ambiente di laboratorio amichevole, praticamente senza firewall, funziona perfettamente.

A casa, ho AT&T U-Verse con il loro router Motorola NVG510 e il suo firewall predefinito. La mia rozza comprensione è che ho bisogno di aprire quella porta sul firewall per ogni dispositivo perché ora NVG510 apre le porte, per ogni dispositivo.

Ma, provare ad aprire la stessa porta su più dispositivi mi dà un errore di conflitto a foro stenopeico (che presumo sia esattamente quello che sembra: aprire la porta è un foro stenopeico e avere la stessa porta aperta per due dispositivi è il conflitto).

C'è un modo per fare quello che sto cercando di fare sul mio router di casa? Sarebbe bello lavorare a questo progetto a casa.

(Nota: si tratta esclusivamente del problema di rete. Il software client / server principale funziona in altri ambienti.)

Aggiornamento: in un ambiente di laboratorio benigno, ogni dispositivo ha il proprio indirizzo IP. Nella mia rete domestica, sono limitato agli indirizzi di port forwarding 192.168.1.x, che sospetto sia la differenza fondamentale.

Risposte:


1

Inoltri il traffico proveniente da una porta a un dispositivo dietro il firewall. Non è necessario aprire una porta "per ogni dispositivo" se stanno tutti utilizzando lo stesso servizio.

Immagina che fosse un servizio pubblico, ti aspetteresti di dover aprire una porta per ogni persona su Internet che potrebbe voler accedervi? :)

Ad ogni modo, per il tuo NVG510: sotto NAT / Gaming crei un "Servizio personalizzato" (Nome, porta su cui ascoltare, protocolli da inoltrare), quindi aggiungi una "Applicazione ospitata" per la quale scegli il tuo nuovo servizio personalizzato che hai appena effettuato, e inserisci l'IP del server a cui desideri inoltrare il traffico.

inserisci qui la descrizione dell'immagine

Maggiori informazioni su PortForward.com


Esatto, è esattamente quello che ho fatto, ma il servizio personalizzato, come puoi vedere nell'immagine sopra, richiede un dispositivo particolare e singolare. Quindi, se apro quella porta sul laptop / server, non posso aprirla per i dispositivi Android e quindi, apparentemente, non posso comunicare da porta a porta dietro il firewall. L'esperienza sembra confermarlo: non riesco nemmeno a connettermi da dietro il firewall, anche se se mi disconnetto dal wireless e utilizzo il telefono su 4G, posso farlo.
Novak,

Nella schermata sopra l'indirizzo IP "necessario per dispositivo" (che stupida etichetta) è l'IP del dispositivo che funge da server sulla LAN. Per accompagnare il pensiero stupido dietro quell'etichetta: il tuo server è il "dispositivo" che "necessita" del "servizio personalizzato" inoltrato ad esso. :)
Ƭᴇcʜιᴇ007,

Se per server intendi il laptop che sto cercando di usare come server, allora sì, è esattamente quello che ho fatto. Ma il mio telefono non si connetterà finché è sulla mia rete wireless. Solo quando lo tolgo dalla rete e utilizzo la rete cellulare si connetterà. (Se intendi il router stesso, beh, questo non viene visualizzato come opzione.)
Novak

Aspettare! Sì lo fa. Stavo facendo qualcos'altro, ma non avrei mai capito senza la tua risposta. Vorrei votare due volte, se potessi, per essere sia corretto che serendipito. Grazie!!
Novak,

-1

La maggior parte dei client come SSH ha la possibilità di inserire una porta diversa, ad esempio il tuo server è 5902, metti il ​​client per andare a 5903 sulla porta di inoltro del router da 5903 a 5902 significa che puoi avere più di un dispositivo inoltrato alla stessa porta

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.