2 votes

Impossible de se connecter au port 80 sur localhost

J'allume le feu sudo nc -l 127.0.0.1 80 . Il n'y a pas d'erreurs. J'essaie ensuite telnet 127.0.0.1 80 . Il ne se connecte pas.

La même chose avec le port 81 fonctionne bien.

Pour autant que je sache, il n'y a pas de pare-feu.

https://img.skitch.com/20120228-t8h98sccsde3w1jnf2tb55xdny.png montre les commandes que j'utilise. (les numéros sont l'ordre dans lequel les commandes sont exécutées)

Je suis sous OS X 10.7.3.

4voto

Eaton Points 6306

J'ai FINALEMENT trouvé la solution. J'avais installé Pow (http://pow.cx). Il exécute ce script : http://get.pow.cx . Le script installe certaines règles de pare-feu. Même si j'avais désactivé pow, les règles de pare-feu étaient toujours en place. L'exécution de la désinstallation de pow script a réglé le problème.

3voto

Gordon Davisson Points 30215

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.

1voto

EmmEff Points 1131

Sans l'écoute de nc, est-ce que netstat -an montrer quelque chose qui écoute tcp sur le port 80 ?

Le "partage Web" est-il activé dans les préférences système -> Partage ? Cela fait tourner Apache...

0voto

andybee Points 497

J'ai déjà eu ce problème avec une ancienne version de Skype, qui utilise également le port 80. Pour lancer Apache, je devais arrêter Skype, lancer Apache, puis redémarrer Skype. Les versions plus récentes semblent toutefois fonctionner correctement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X