Diciamo che voglio avere un server sul mio computer alla porta 1234, in modo che altri host su Internet possano connettersi ad esso. Sono dietro un router NAT, quindi configuro il router per inoltrare le connessioni a 1234 al mio indirizzo IP LAN. Uso un servizio come questo o questo per verificare se è veramente aperto, accendendo il mio IP Internet e il numero di porta. Dice che la mia porta è aperta e in effetti allo stesso tempo il server riceve una connessione:
# nc -vv -l -p 1234
listening on [any] 1234 ...
connect to [192.168.0.7] from ec2-52-202-215-126.compute-1.amazonaws.com [52.202.215.126] 37873
sent 0, rcvd 0
Ma quando provo a connettermi a me stesso con il mio IP Internet, si verifica un timeout. Se non ascolto sulla porta, la connessione viene semplicemente rifiutata, come dovrebbe essere. Se ascolto, viene ignorato:
# nc -vv -l -p 1234 &
[1] 6869
# nc 95.252.xxx.xxx 1234
E si blocca lì. (Certo, se uso invece l'IP LAN funziona bene).
Inoltre, noto che alcuni host non riescono a connettersi al mio server: lo scopo originale di questa disposizione era di inviare rapidamente comandi a un mio amico che spesso mi telefona e mi chiede di riparare qualcosa sul suo computer e che non vuole utilizzare software come telnet o ssh. Apparentemente anche il suo computer non può raggiungere il mio.
Il mio computer non ha un firewall. Il router (per quanto ne so) non filtra le connessioni in uscita. (Netgear DG834G)
Qualche indizio?