Порт 80 в Mac используется

Мы должны использовать порт 80 для нашего сервера. Но когда я пытался использовать его в Mac, он всегда говорил, что используется 80, но я не знаю, какая программа использует его.

Я искал его в Google, и кто-то сказал об apache, но я попытался, который не работает. Я нашел это: https://gist.github.com/kujohn/7209628, но, похоже, он не работает, посещая наш сервер по IP-адресу.

Я действительно не знаю, что происходит, и как я могу узнать, какая программа использует порт 80 и остановить его.

Большое спасибо, если кто-нибудь может помочь, я новичок в Mac. Благодарю.

Ответ 1

Чтобы узнать, какой процесс использует порт 80

  1. перейти к приложениям
  2. открытые утилиты.
  3. открыть Монитор активности.
  4. щелкните вкладку " Память ",
  5. посмотрите на порты и процессы, использующие их. Найдите порт 80 и выберите его.
  6. перейдите к представлению в строке меню и выберите " Выход".

Это просто убьет процесс, он не остановит экземпляр сервера, который уже запущен, от продолжения работы.

Неясно, используете ли вы систему управления базами данных или нет, и какой один метод, который работал для меня с помощью MAMP, выглядит следующим образом.

  • остановите сервер, используя sudo apachectl stop.
  • затем измените порт на порт 80.
  • затем перезагрузите серверы.

Ответ 2

введите в терминале

sudo lsof -i -n -P | grep TCP

вы получите список - например, dropbox прослушивает 80
вы можете скопировать вывод в текстовый редактор и т.д. для поиска

Ответ 3

Может быть, Skype использует порт 80. Если у вас установлена и работает Skype, попробуйте перейти на другой порт в настройках.

Ответ 4

У меня была эта проблема, apache отключился с помощью launchctll, но по-прежнему связывал порт 80 после запуска, я мог запустить apache, и это сработает, но после его разгрузки я не смог запустить что-либо на порт 80. Я был используя встроенный веб-сервер для Python в качестве простого теста. Он будет работать на порту 81, но не на порту 80.

sudo python -m SimpleHTTPServer 80 - не работает

sudo python -m SimpleHTTPServer 81 - будет работать

Вот симптомы:

$ launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 
/System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service
$ sudo lsof -i ':80'
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Python  3353 root    3u  IPv4 0xe455777a82799f05      0t0  TCP *:http (LISTEN)

Исправление для меня (после слишком многого поиска) было простым:

sudo pfctl -F all

Это сбросило пакетный фильтр, освободив порт 80 (и другие я предполагаю 8080, 443, любые порты apache могут связываться)

После этого и перезапуская сервер python, он появился.

Ответ 5

На портах Mac ниже 1024 может быть связан только пользователь root. Попробуйте запустить сервер от имени пользователя root (с помощью sudo) или попробуйте использовать порт выше 1024.

Вы также можете попробовать добавить права пользователя root в /etc/sudoers

# root and users in group wheel can run anything on any machine as any user
root            ALL = (ALL) ALL
%admin          ALL = (ALL) ALL
your_user_here  ALL = (ALL) ALL

Ответ 6

Номера портов в диапазоне от 0 до 1023 классифицируются как "хорошо известные", а номер порта 80 зарезервирован для HTTP. Как правило, серверы прослушивают порт 80 для обработки HTTP-запросов.

Источник: http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers