освободить порт 80
Есть свой веб-сервер, который надо посадить на 80 порт, и который абсолютно свободен (там нет открытых сокетов), но где-то он зарезервирован для использования веб-серверов.
Как мне сообщить что моя программа как раз и есть веб-сервер?
На любом другом порте всё работает, а под root’ом 80 порт тоже работает отлично. Арач и нгникс не установлены. netstat -lantp показывает открытые только два порта: для ssh и mysql. Ось — CentOS.
VenyaTolinov
28.04.11 23:37:39 MSK

CentOS automatically blocks port 80 out-of-the-box
Как мне сообщить что моя программа как раз и есть веб-сервер?
Тут два варианта: либо написать об этом на корпусе на трёх языках, либо выкрикнуть поочерёдно на трёх языках в открытое окно.
показывай iptables-save и открывай порт что ли
adriano32 ★★★
( 28.04.11 23:47:21 MSK )

kernelpanic ★★★★★
( 28.04.11 23:51:28 MSK )
> под root’ом 80 порт тоже работает отлично
т.е. приложение запускается не из под рута? первые 1024 порта может слушать только приложение с правами root
initab
( 28.04.11 23:52:29 MSK )

1-1024 порты доступны только для root. Или используй порт из младшего диапазона, или запускай свою софтину из-под root.
blackst0ne ★★★★★
( 29.04.11 00:04:34 MSK )
Ответ на: комментарий от blackst0ne 29.04.11 00:04:34 MSK
>1-1024 порты доступны только для root
Ну да, так оно и есть. А как же апач на 80 порт садится он же не рут?
VenyaTolinov
( 29.04.11 00:35:51 MSK ) автор топика
Ответ на: CentOS automatically blocks port 80 out-of-the-box от adriano32 28.04.11 23:47:21 MSK
@adriano32, @kernelpanic, @initab вам тоже спасибо за участие, но вопрос пока открыт (мне так кажется).
VenyaTolinov
( 29.04.11 00:38:14 MSK ) автор топика

>Ось — CentOS.
SeLinux включён? Если да, то гуглите audit2allow.
mky ★★★★★
( 29.04.11 00:46:03 MSK )
Ответ на: комментарий от VenyaTolinov 29.04.11 00:35:51 MSK

Он запускается как root, берёт порт и потом перестаёт быть root’ом.
mky ★★★★★
( 29.04.11 00:48:39 MSK )
Ответ на: комментарий от mky 29.04.11 00:48:39 MSK
> Он запускается как root, берёт порт и потом перестаёт быть root’ом.
Вообще-то нет, под кем запустился под тем и остаётся. Сервер — WSGI обычный.
P.S.: SeLinux — включён.
VenyaTolinov
( 29.04.11 01:10:23 MSK ) автор топика
Ответ на: комментарий от VenyaTolinov 29.04.11 01:10:23 MSK

>>1-1024 порты доступны только для root
Ну да, так оно и есть. А как же апач на 80 порт садится он же не рут?
Он запускается как root, берёт порт и потом перестаёт быть root’ом. Вопрос был про apache и ответ про него. Хотя, на самом деле, один процесс у apache остаётся root’ом.
А SeLinux может давать дополнительные палки в колёса, можно посмотреть /var/log/audit/audit.log, хотя обычному пользователю порт 80 не получить.
mky ★★★★★
( 29.04.11 01:34:34 MSK )
Ответ на: комментарий от mky 29.04.11 01:34:34 MSK
> хотя обычному пользователю порт 80 не получить.
Похоже на горькую правду.
VenyaTolinov
( 29.04.11 01:41:33 MSK ) автор топика
Ответ на: комментарий от VenyaTolinov 29.04.11 00:35:51 MSK

> Ну да, так оно и есть. А как же апач на 80 порт садится он же не рут?
Он запускается изначально как root.
blackst0ne ★★★★★
( 29.04.11 01:54:00 MSK )
Ответ на: комментарий от blackst0ne 29.04.11 01:54:00 MSK
Один процесс родительский, который слушает порт о порождает дочерние процессы под рутом. Дочерние, если позволяет приложение работать от простого пользователя, он него и запускаются. Если приложение этого не может, то и все дочерние от рута.
Это не только апач, это все уважающие себя демоны, клиент соединяется с сервером и для него запускается отдельный процесс, работающий от простого пользователя.
Дочерние процессы, могут и заранее запускаться, какое-то их количество, для увеличения скорости обработки, но это сути не меняет.
Что делать если порт 80 занят процессом SYSTEM


Windows 7 – процесс system висит на 80 порту PID 4? Замучались искать решение. Если ответ положительный, то я вас прекрасно понимаю. На одной машинке с windows 7 решил поставить веб-сервер…убил пол дня. Как раз таки из-за падений apache. Ругался он довольно неожиданно для меня. На то, что порт 80 уже занят. Что ж. Запускаем командную строку и пишем netstat -o -n -a | findstr 0.0:80 На что получаем: TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 Последнее число 4 это PID процесса, т.е. уникальный идентификатор процесса — то, что нужно.
Запускаем диспетчер задач. Выбираем вкладку процессы. Далее в меню вид нас интересует пункт «выбрать столбцы» и отмечаем галочкой пункт «ИД процесса (PID)». Находим процесс, у которого PID = 4 это оказывается процесс system. Описание у процесса system “NT Kernel & system”. По началу даже возникла мысля что это вирус. Но во превых это встретилось на всех машинах с windows 7 или window server 2008 R2. Процесс System имел PID 4 и везде занимал порт 80. Прибить его нельзя, да и незачем. Путем длительного обращения к гуглу и изучению тонны материалов. Большинство пишет про то что я и так знал… что порт 80 занял skype, но к сожалению это не наш случай.
На одном из ресурсов было установлено что это компонент нашей любимой windows запускается через обертку system. А именно “http.sys”. Эта бяка оказалась живучей…в службах найти не удалось. Несколько советов отключения через реестр тоже не помагало, гадский драйвер весел. Хотя мне и удалось отключить его автоматический запуск. При старте windows 7 порт 80 был свободен, но как только была попытка запустить Apache тут же поднимался драйвер http.sys и занимал порт 80. Это подтвердил лично просмотрев утилитой «ProcessExplorer» все потоки (Threads) процесса system там нам показали что http.sys по прежнему запущен…
Освободить порт 80 занятый system в windows 7 удалось следующим путем.
1. Win+R вводим “regedit” (без кавычек).
2. Ищем ветку «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP»
3. Меняем значение ключа “start” с 3 на 4…до этого встречал советы ставить 0. Так вот мне ноль не помог.
4. Перезапускаем компьютер.
5. Радуемся тому, что так быстро нашли нужную информацию.
Что делать, если System занимает 80 порт и как освободить порт 80 на Windows
Порой попадаешь в интересные и, местами, казусные ситуации. Мне нужно было срочно доработать один сайт у заказчика и я, естественно, развернул локальный сервер на ноутбуке, который мне там любезно предоставили. Я не стал заморачиваться с отдельными настройками Apache, MySQL, PHP а просто решил использовать готовые продукты типа WAMP.
Конечно, кто занимается или даже пробовал заниматься веб-разработкой, наверняка вспомнят о пресловутом Денвере, который, увы, перестал обновляться. Хорошая вещь некогда была, но сейчас Денвер безнадежно устарел и использовать его бессмысленно. Что ж, такая судьба всегда ждет проекты, построенные на голом энтузиазме…
Раньше для быстрого тестирования и разработке на винде я использовал WAMP, но как то незаметно для себя перешел на XAMPP, хотя, на самом деле, разницы особой я не замечаю и WAMPмне все же как то удобнее кажется. Но дело вкуса.
И вот, когда я установил это все, скинул в директорию архив с сайтом и начал настраивать окружение для работы, Апачи ругнулся на занятый 80 порт в системе.
Я первым делом проверил наличие запущенных программ TeamViewerи Skype, так как они и занимают обычно этот порт. Эти программы установлены не были и моя догадка летела в тартары.
Ладно, запустив команду netstat –ab, мне было выдано, что 80 порт занимает system.exe. Вот это, честно говоря в тупик меня и поставило. Первой мыслью было, что это вирус, но догадка была беспочвенной, так как на ноутбуке стоял хороший антивирус. Тогда я начал экспериментально вырубать службы Windows, и, о чудо, нашел что блокировало порт.
Виновницей оказалась Служба Web-публикаций. Простая остановка службы решила все проблемы с занимаемым портом. Честно говоря, лично мне было досадно, что все оказалось настолько просто, а я почти час мучал ноутбук, пытаясь найти гаденыша..
Надеюсь, что вы не наступите на мои грабли и быстренько решите проблему, когда system.exe занимает 80 порт с PID 4.
- Что делать, если в Windows вместо ярлыков отображаются значки блокнота (нарушена файловая ассоциация)
- Что делать, если слетела активация Windows 7
- Что делать, если не открывается меню Пуск на Windows 10
- Что делать, если после перезагрузки сбивается расположение ярлыков на рабочем столе Windows 10
- Решаем проблему с сетевым обнаружением в Windows 7
- Главная
- Устранение неполадок с компьютером
Форум
Если пишет что порт 80 занят, то это означает что у вас на самом деле занят порт 80 или идёт перехват подключения программы к сети антивирусом/фаерволом/прокси. Ниже наиболее частые причины:
— Skype занял порт 80 и 443. Решение: снимите в настройках галочку с опции «Использовать порты 80 и 443 в качестве альтернативных»;
— Порт занят другим сервером (Denwer, XAMPP и т.д.). Решение: настройте Open Server на использование другого IP нежели тот, на котором уже работает другой локальный сервер.
— Порт занят Windows версии 2008/2003 Server на всех IP. Решение: Пуск — Выполнить — services.msc, и отключить все службы где есть слова IIS.
— Порт никем не занят, но Open Server всё равно ругается. Решение: добавьте Open Server в «доверенные программы» или отключите слежение за портами 80/443/21/90xx/3306 в вашем антивирусе/фаерволе/прокси-сервере. В отдельных антивирусах/фаерволах возможны свои доп. настройки связанные с перехватом подключений программ к сети. На крайний случай в настройках Open Server можно включить «быстрый запуск», но делать это очень не рекомендуется, поскольку Open Server не будет проверять корректность запуска своих сервисов.
Age Сообщения: 2 Зарегистрирован: 25 окт 2012, 18:08
Проблема порт 80 занят
Непрочитанное сообщение Age » 25 окт 2012, 18:18
Доброго времени суток!
Больнучая ситуация.
Сегодня обновил OpenServer до версии 4.7.1 прежняя версия работала исправно,
скачал установил последний OpenServer
и вот весь день не могу запустить его.
Отключенные приложения и исключены из автозагрузки
которые потенциально могли занимать порт 80:
1. DropBox;
2. Skype;
3. TeamViewer;
4. ComodoClouds;
5. VM VirtualBox.
Компьютер, отключен от сети интернет.
и все равно лог выдает следующее:
2012-10-25 19:06:53 Начало процедуры запуска сервера
2012-10-25 19:06:53 Невозможно занять порт 80 поскольку он уже используется System
2012-10-25 19:06:53 Сбой запуска!
Прочих лок.серверов не установлено, host файл открыт на запись, антивирус и фаервол отключены.
запись в host файл не производит, сервер не запускает.
Нужна помощь!?
Максим Сообщения: 6024 Зарегистрирован: 11 дек 2010, 20:29
Так а какая вам помощь то нужна? Вам же сервер ясно написал черным по белому — Невозможно занять порт 80 поскольку он уже используется System
Это означает что какая-то системная служба занимает этот порт. Обычно это служба IIS сервера или служба веб-публикаций. Ищите что за служба и отключайте её.