Ho diversi suggerimenti. Innanzitutto, verifica che il firewall del filtro dei pacchetti sia disattivato. Ecco un esempio sul mio Mac, con i firewall disattivati:
$ sysctl net.inet.ip.fw.enable
net.inet.ip.fw.enable: 1
$ sudo ipfw show
Password:
65535 0 0 allow ip from any to any
Il comando sysctl mostra che il firewall è effettivamente abilitato, ma il secondo mostra che le sue regole consentono tutto il traffico. I sintomi non sono coerenti con il firewall dell'applicazione, ma controllalo comunque per essere sicuro:
$ defaults read /Library/Preferences/com.apple.alf globalstate
0
Qui 0 significa spento, 1 significa acceso e 2 significa "Blocca tutte le connessioni in entrata". Se nessuno di questi mostra un firewall attivo, le prossime cose che farei sono eseguire tcpdump per vedere cosa succede tra telnet e nc. Ecco una connessione riuscita:
$ sudo tcpdump -ilo0 port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 65535 bytes
20:35:28.193217 IP localhost.49531 > localhost.http: Flags [S], seq 1937962870, win 65535, options [mss 16344,nop,wscale 3,nop,nop,TS val 7494959 ecr 0,sackOK,eol], length 0
20:35:28.193286 IP localhost.http > localhost.49531: Flags [S.], seq 1740947472, ack 1937962871, win 65535, options [mss 16344,nop,wscale 3,nop,nop,TS val 7494959 ecr 7494959,sackOK,eol], length 0
20:35:28.193298 IP localhost.49531 > localhost.http: Flags [.], ack 1, win 65535, options [nop,nop,TS val 7494959 ecr 7494959], length 0
20:35:28.193307 IP localhost.http > localhost.49531: Flags [.], ack 1, win 65535, options [nop,nop,TS val 7494959 ecr 7494959], length 0
Questo ovviamente non risolverà il problema, ma potrebbe dare una buona idea su cosa sta succedendo.