Я заметил некоторые проблемы с виртуальными хостами Apache на двух Mac, которые в остальном имеют одинаковую настройку (с точки зрения httpd.conf, vhosts, hosts и т. Д.). На одном Mac виртуальные хосты обслуживаются без сбоев, на другом , Я получаю отказ в соединении с портом 80.
Думаю, это не проблема с конфигурацией Apache, а как-то связано с портами.
А именно, машина, которая не обслуживает виртуальный хост test.dev на 80, показывает мне это при сканировании портов:
Сканирование портов выполняется…
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
Сканирование портов завершено…
Машина, которая обслуживает test.dev, показывает это:
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
Сканирование портов завершено…
Итак, на «хорошей» машине порт 80 указан, а на «плохой» - нет.
На обеих машинах у меня есть apache, который прослушивает *: 80 и т. Д., Правильно настроил vhosts, соответствующую запись в файле hosts и т. Д. Оба Mac работают под управлением El Capitan, находятся в одной сети и т. Д.
И хотя на хорошем Mac обслуживается test.dev, на плохом Mac я получаю следующее:
↪ curl -I -L test.dev 15:51:01
curl: (7) Failed to connect to test.dev port 80: Connection refused
Я немного растерялся, потому что не знаю, как это исправить. Почему порт 80 не отображается при сканировании портов плохого Mac (с помощью приложения Network Utility), но пока sudo lsof -i -P | grep -i "80"
дает мне:
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)
Спасибо заранее.
Всего наилучшего, Линь
Изменить: меня попросили обосновать, почему это не дублирующий вопрос к более общему вопросу об отказе в соединении. Это не потому, что мой вопрос был специфичен для Mac OSX, и решение, которое сработало для меня (см. Ниже), требовало редактирования pf.conf и использования pfctl, который вообще не упоминается в предполагаемом повторяющемся вопросе.
Чтобы убедиться, что порт 80 открыт для TCP на всех интерфейсах, я добавил
pass in proto tcp from any to any port 80
к /etc/pf.conf
. Перезагрузка pfctl не совсем помогла, но перезагрузка сделала. Теперь порт отображается как открытый при сканировании портов, и мои виртуальные хосты обслуживаются должным образом.