Question Port 80: connexion refusée. Comment réparer sur Mac OSX? [dupliquer]


Cette question a déjà une réponse ici:

J'ai remarqué des problèmes avec les hôtes virtuels Apache sur deux Mac qui ont le même type de configuration (en termes de httpd.conf, vhosts, hôtes, etc.). Sur un Mac, les hôtes virtuels sont servis sans problème, sur un autre. , La connexion est refusée sur le port 80.

Cela ne semble pas être un problème avec la configuration Apache, je pense, mais quelque chose à voir avec les ports.

À savoir, la machine qui ne parvient pas à desservir l'hôte virtuel test.dev sur 80 me montre ceci lors de l'analyse du port:

Сканирование портов выполняется…

Port Scanning host: 127.0.0.1

     Open TCP Port:     88          kerberos
     Open TCP Port:     445         microsoft-ds
     Open TCP Port:     548         afpovertcp
     Open TCP Port:     631         ipp
Сканирование портов завершено…

La machine qui sert test.dev montre ceci:

Port Scanning host: 127.0.0.1

     Open TCP Port:     22          ssh
     Open TCP Port:     53          domain
     Open TCP Port:     80          http
     Open TCP Port:     88          kerberos
     Open TCP Port:     445         microsoft-ds
     Open TCP Port:     548         afpovertcp
     Open TCP Port:     631         ipp
Сканирование портов завершено…

Donc, sur la "bonne" machine, le port 80 est répertorié, sur la "mauvaise" machine, ce n'est pas le cas.

Apache écoute *: 80 etc. sur les deux ordinateurs, configurez correctement vhosts, saisissez une entrée appropriée dans le fichier hosts, etc. Les deux Mac exécutent El Capitan, se trouvent sur le même réseau, etc.

Et tandis que sur le bon mac, test.dev est servi, sur le mauvais mac, je reçois ceci:

 curl -I -L test.dev                                                                                                                                                               15:51:01
curl: (7) Failed to connect to test.dev port 80: Connection refused

Je suis un peu perdue, car je ne sais pas comment régler ce problème. Pourquoi le port 80 n'apparaît-il pas dans l'analyse du port du mauvais Mac (à l'aide de l'application Network Utility), alors sudo lsof -i -P | grep -i "80"Donne moi:

httpd     4482           root    5u  IPv6 0xfe89d5ee2c7da24b      0t0  TCP *:80 (LISTEN)
httpd     4484         daemon    5u  IPv6 0xfe89d5ee2c7da24b      0t0  TCP *:80 (LISTEN)
httpd     4485         daemon    5u  IPv6 0xfe89d5ee2c7da24b      0t0  TCP *:80 (LISTEN)
httpd     4486         daemon    5u  IPv6 0xfe89d5ee2c7da24b      0t0  TCP *:80 (LISTEN)
httpd     4487         daemon    5u  IPv6 0xfe89d5ee2c7da24b      0t0  TCP *:80 (LISTEN)
httpd     4488         daemon    5u  IPv6 0xfe89d5ee2c7da24b      0t0  TCP *:80 (LISTEN)

Merci d'avance.

Tout le meilleur, Tanche

Edit: On m'a demandé de justifier pourquoi il ne s'agissait pas d'une question dupliquée à la question plus générale de connexion refusée. Ce n'est pas parce que ma question était spécifique à Mac OSX et que la solution qui fonctionnait pour moi (voir ci-dessous) nécessitait l'édition de pf.conf et l'utilisation de pfctl, ce qui n'est pas du tout mentionné dans la question supposée en double.


6
2017-12-11 09:07


origine


Cela ressemble à un problème de pare-feu, en particulier la partie refusée à la connexion. En l'absence de pare-feu, la connexion d'habitude expire au lieu d'être refusé. Peux-tu courrir pfctl -s rules sur les deux Mac? Comparez les différences et voyez si vous pouvez les repérer. Voici la page de manuel de pfctl si vous voulez voir plus de commandes: developer.apple.com/library/mac/documentation/Darwin/Reference/… - Neil
Merci! Je suis juste arrivé à la même conclusion et l'ai corrigé en ouvrant explicitement le port 80 dans /etc/pf.conf - Tench
C'est un doublon, le problème était un pare-feu qui est énuméré dans la réponse. Il existe trop de configurations de pare-feu possibles pouvant être à l'origine de ce problème. Par conséquent, le mieux que nous puissions faire est d'aider quelqu'un à comprendre qu'il s'agit d'un pare-feu et où il se trouve. Une fois que quelqu'un connaît la source du problème, il peut prendre des mesures pour le résoudre lui-même ou comme une question plus ciblée. - Iain
Là encore, nous avons ici une question concrète à propos de Mac OSX et une solution très concrète (ma réponse ci-dessous, qui implique pfctl). Je ne vois pas comment une question générale et une réponse générale ("c'est un problème de pare-feu") peuvent être considérées comme une question concrète et une réponse très concrète qui résout le problème pour le système d'exploitation en question. L'autre fil ne m'a pas aidé. Ce fil a fait. - Tench
Je pense que vous manquez le point. Si vous considérez que le générique ne fonctionne pas pour vous parce que Mac, cette réponse n'est utile que pour le port 80 d'un Mac. Nous devons maintenant écrire des questions et réponses pour chaque port sur un Mac. Ensuite, il faudrait passer à la même chose pour CentOS, Ubuntu et autres, ce qui est ridicule et où intervient le Q & A générique. Si les outils utilisés dans le générique sont trop centrés sur Linux, ajouter une réponse MaxOSX serait une bonne chose. faire. - Iain


Réponses:


Pour m'assurer que le port 80 est ouvert pour TCP sur toutes les interfaces, j'ai ajouté

pass in proto tcp from any to any port 80

à /etc/pf.conf. Le rechargement de pfctl n’a pas tout à fait fonctionné, mais un redémarrage l’a fait. À présent, le port apparaît comme étant ouvert dans l'analyse du port et mes hôtes virtuels sont servis comme ils le devraient.


6
2017-12-12 07:36



Merci pour la réponse! (Je n'ai pas eu à redémarrer cependant, en cours d'exécution sudo pfctl -F all travaillé pour moi). - Sheharyar