Originariamente inviato da Pharanoise
In poche parole, in localhost mi connetto, un server web esterno si connette con me, ma se io provo a connettermi passando attraverso il mio router, non da segni di vita.
Facciamo una premessa, che è d'obbligo in discussioni come la tua. Questa non è tanto una questione di "programmazione" in un linguaggio XYZ ma è più che altro principalmente una questione "sistemistica" a livello di networking! Il problema insomma ... non è Java.

Ho fatto una prova, io ho Win2000 e non ho firewall sw ma solo quello del router. Effettivamente stessa cosa a me (quindi non è solo un tuo problema), ovvero locale->locale Ok, remoto (il servizio indicato)->locale Ok ma locale->remoto->locale No.

Ora ... io non sono un guru sul networking ma credo che ci siano questioni legate a come il router tratta questa "uscita" e poi rientro. Dovrei documentarmi .... (se qualcuno ha idea, ben venga).

Ma la questione piuttosto è un'altra! Questa tua prova che da locale cerchi di connettersi al IP "pubblico" (uscendo) che poi alla fin fine dovrebbe rientrare sul server sempre in locale da te .... non è il caso reale di utilizzo!!!

Insomma, il caso più reale/utile è che tu offri un servizio su una certa porta e ammesso che hai configurato router/firewall e quant'altro per avere la porta "aperta" (e se il tuo ISP non la blocca) allora da "internet" è visibile e usabile.
E come hai detto chiaramente, la prova da quel servizio online di port check ... funziona. Ed è questo che conta. Punto.

Se poi vuoi sapere perché quel caso particolare menzionato non funziona .... beh, mi documento o se qualcuno ha idea ora meglio di me, ben venga.

Ma non complicarti la vita e non tentare elucubrazioni strane per casi particolari e comunque non davvero "reali".