Порт 80 в Mac используется
Мы должны использовать порт 80 для нашего сервера. Но когда я пытался использовать его в Mac, он всегда говорил, что используется 80, но я не знаю, какая программа использует его.
Я искал его в Google, и кто-то сказал об apache, но я попытался, который не работает. Я нашел это: https://gist.github.com/kujohn/7209628, но, похоже, он не работает, посещая наш сервер по IP-адресу.
Я действительно не знаю, что происходит, и как я могу узнать, какая программа использует порт 80 и остановить его.
Большое спасибо, если кто-нибудь может помочь, я новичок в Mac. Благодарю.
Ответы
Ответ 1
Чтобы узнать, какой процесс использует порт 80
- перейти к приложениям
- открытые утилиты.
- открыть Монитор активности.
- щелкните вкладку " Память ",
- посмотрите на порты и процессы, использующие их. Найдите порт 80 и выберите его.
- перейдите к представлению в строке меню и выберите " Выход".
Это просто убьет процесс, он не остановит экземпляр сервера, который уже запущен, от продолжения работы.
Неясно, используете ли вы систему управления базами данных или нет, и какой один метод, который работал для меня с помощью 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