J'ai plusieurs suggestions. Tout d'abord, vérifiez que le pare-feu à filtre de paquets est désactivé. Voici un exemple sur mon Mac, avec les pare-feu désactivés :
$ 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
La commande sysctl montre que le pare-feu est effectivement activé, mais la seconde montre que ses règles autorisent tout le trafic. Les symptômes ne sont pas cohérents avec le pare-feu d'application, mais vérifiez-le quand même, juste pour être sûr :
$ defaults read /Library/Preferences/com.apple.alf globalstate
0
Ici, 0 signifie désactivé, 1 signifie activé, et 2 signifie le mode "Bloquer toutes les connexions entrantes". Si aucune de ces options ne montre un pare-feu actif, la prochaine chose que je ferais est d'exécuter tcpdump pour voir ce qui se passe entre telnet et nc. Voici une connexion réussie :
$ 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
Cela ne résoudra évidemment pas le problème, mais pourrait donner un bon indice de ce qui se passe.