Port already in use windows

Форум

Если пишет что порт 80 занят

Если пишет что порт 80 занят

Если пишет что порт 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 не будет проверять корректность запуска своих сервисов.

Проблема порт 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 файл не производит, сервер не запускает.
Нужна помощь!?

JBoss — ExportException: Port already in use: 1098

I’m getting the following error when I try to start JBoss

However When I try to see what ports are being listened to. I don’t see that port!

8 Answers 8

Try TCPView (TCPView v3.05). I get this «port already in use» quite a lot, and TCPView always usually catches the culprit.

Go to jboss-service.xml under conf folder and change the port for RMI from 1098 to 8099 Restart the server .

We ran into this problem some time ago as well, not just with JBoss, but also MySQL. I wrote about it in more detail here:

What it comes down to is that Windows uses the port range between 1000 and 5000 for so called «ephemeral» ports. This means that it assigns ports from this range for processes that request a random port.

On Windows 2000/2003 Server installations as well as on Windows XP Pro you can reserve port ranges (even if they only cover a single port) for your applications. Effectively they are not reserved for anything specific, but just excluded from the dynamic allocation. To do so, create or edit the following registry value (type REG_MULTI_SZ/Multi-String Value ):

In this value specify port ranges in the format xxxx-yyyy with xxxx and yyyy being the lowest and highest port of the range to be reserved. To reserve a single port, just use the same values for both (e. g. 1099).

Читайте также:  Linux максимальная длина имени файла

«Address Already in Use» или как избежать проблем при завершении TCP соединения

Корректное отключение

Для корректного завершения сетевого подключения обе стороны должны послать пакеты с сигналом о завершении (FIN), которые указывают что стороны не будут больше отсылать данные, также каждая сторона должна подтвердить (ACK) получение сигнала о завершении сетевого обмена данными. FIN инициируется когда приложение вызывает метод close(), shutdown() или exit(). После завершения работы метода close() ядро переходит в режим ожидания подтверждения от второй стороны приема сигнала о завершении. Это делает возможной ситуацию когда процесс инициировавший отключение будет завершен прежде чем ядро освободит рессурсы связанные с подключением, и снова разрешит использовать порт для связывания с другим процесоом (в этом случае, при попытке использования порта мы получим исключение AddressAlreadyInUse).

На изображении:

  1. Имеется установленное соединение, состояние ESTABLISHED
  2. Клиент инициирует окончание подключения, посылает серверу сигнал о завершении подключения (FIN), переходит в состояние ожидания ответа сервера (FIN_WAIT_1)
  3. Сервер получает сигнал о завершении подключения и отправляет подтверждение (ACK), переходит в состояние ожидания завершения подключения (CLOSE_WAIT) (вызывает close())
  4. Сервер отсылает клиенту сигнал о том что успешно закрыл подключение (FIN) и пробует прочитать подтверждение клиента (ACK), после чего не дожидаясь его отключается.
  5. Теперь клиенту может придти два сигнала в разной очередности

ACK — клиент получил подтверждение о том что сервер понял его намерение закрыть подключение

  • Клиент переходит в состояние ожидания сигнала об окончании закрытия подключения (FIN) от сервера (FIN_WAIT_2)
  • Клиент получает сигнал о закрытии подключения сервером (FIN), отправляет подтверждение (ACK), некоторое время ждет(TIME_WAIT) и отключается (ядро освобождает рессурсы) (CLOSED)

FIN — клиент получает сигнал о закрытии подключения на стороне сервера(FIN), раньше чем подтверждение от сервера (ACK), о получении инициирующего сигнала о закрытии от клиента (FIN)

  1. Клиент отправляет подтверждение приема сигнала о том что сервер закрывает соединение, и переходит в состояние отключения (CLOSING)
  2. После отключения пробует считать сигнал подтверждения от сервера (который был отправлен сервером сразу после получения от клиента сигнала о завершении работы, пункт 2), некоторое время ожидает(TIME_WAIT) и ядро освобождает рессурсы (CLOSING).

На рисунке показаны все воможные состояния, которые могут быть во время корректного завершения, в зависимости от порядка получения пакетов FIN и ACK от удаленной стороны. Обратите внимание, если вы инициировали завершение подключения (левая половина рисунка), то другая сторона не будет ожидать подтверждения получения вами пакета FIN (правая половина рисунка). Сотояние TIME_WAIT требуется на случай если подтверждение (ACK) которое вы отправили не было получено на другой стороне, или на случай появления ложных пакетов по какой-то причине. Я не знаю почему на стороне сервера не сделали состояние TIME_WAIT, хотя если клиент инициирует закрытие, это безусловно и не должно требовать ожидания. Состояние TIME_WAIT может удерживать порт в течение нескольких минут после завершения процесса. Время удержания варьируется в зависимости от операционной системы, в некоторых операционных системах оно является динамическим, стандартные значения лежат в диапазоне от 1 до 4 минут.

Если обе стороны успеют инициировать сигнал завершения, раньше чем получат его от другой стороны, то обе стороны будут вынуждены пройти через ожидание (TIME_WAIT).

Корректное отключение слушающей стороны

Слушающий сокет может быть закрыт немедленно, при отсутствии входящих подключений, его состояние переходит сразу в CLOSED. При наличии входящих подключений, будет произведен переход к FIN_WAIT_1 и затем к TIME_WAIT.

Обратите внимание, на стороне слушающего сокета невозможно гарантировать чистое закрытие. Пока вы проверяете использование соединения методом select() до закрытия, существует крошечная, но реальная возможность появления входящего подключения после вызова select() и до вызова close().

Непредвиденное отключение удаленной стороны

При внезапном отключении сервера, локальная сторона инициирует закрытие соединения, и в этом случае TIME_WAIT неизбежен. Если удаленная сторона исчезает из-за сбоя сети или перезагрузки машины (редкие случаи), локальный порт будет оставаться привязанным вплоть до истечения таймаута состояния TIME_WAIT. Хуже того, некоторые старые операционные системы, не реализуют таймаут для состояния FIN_WAIT_2, и могут оставаться в нем бесконечно долго, в этом случае спасти может только перезагрузка системы.

Если же локальное приложение (клиент) падает в процессе активного соединения, порт будет занят пока не завершится состояние TIME_WAIT, то же верно для приложений, закрытых в процессе подключения к удаленной стороне(pending).

Способы избежания проблем

Опция SO_REUSEADDR

Можно использовать метод setsockopt(), для установки опции SO_REUSEADDR, что позволит создавать привязку к порту даже если он еще находится в состоянии TIME_WAIT (привязка к порту будет разрешена только для одного процесса). Это самый простой и эффективный метод избежать сообщения «address already in use».

Но, как ни странно, использование опции SO_REUSEADDR, может привести к более трудноотлавливаемым ошибкам чем «address already in use». SO_REUSEADDR позволяет использовать порт застрявший в TIME_WAIT, но вы все еще сможете использовать этот порт в том процессе, в котором он привязан изначально.

Решение проблем с портами в Apache в Windows

Уже не раз сталкивался с проблемой, что Apache не может запустится из-за того, что другой процесс уже использует 80 порт. Собственно после долгого и мучительного серфинга по просторам русскоязычного, а потом и англоязычного интернета насобирал всесозможные способы устранения и причины появления данной проблемы. Эти самые причины и способы их решения и хочу перечислить здесь.

(OS 10048) Only one usage of each socket address (protocol/network address/port) is normally permitted. : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down

Самая простая и обыденная причина появления данной проблемы это Skype.

Первым делом необходимо проверить настройки Skype. Идем в Инструменты/Настройки/Дополнительно/Соединение/ и убираем галочку «Использовать порты 80 и 443 в качестве входящих альтернатив». Сохраняем и перезапускаем Skype чтобы настройки вступили в силу. Да и лучше повторно перепроверить эту настройку, потому что бывало, что она не сохранялась по неизвестной причине.

Если не помогло, то надо поискать что за процесс использует наш порт.

Открываем консоль: Главное меню->Выполнить-> вводим cmd и жмем enter.

В консоли вводим следующую команду

netstat -aon | findstr 0.0:80

Левая часть команды вернет нам текущее состояние всех портов, а правая найдет в них нужный нам 80 порт.
Смотрим результат и ищем последний столбец PID. Запоминаем его. Это идентификатор требуемого процесса.

Если это процесс с PID не равный 4, то делаем следующее.

Идем в Диспетчер задач и ищем необходимый нам процесс. По умолчанию PID не выводится. Для этого идем в Вид/Выбрать столбцы и ставим галочку у «ИД процесса(PID)». Сохраняем и видим что рядом с именем процесса появился столбец «ИД процесса».
Ищем процесс с требуемым идентификатором. Там поступаете с этим процессом как хотите, можете просто убить его, убрать из автозагрузки, удалить всё приложение и т.п.

В случае, когда PID был равен 4, это означает что 80 порт используется системой (системным процессом) и в Диспетчере задач вы увидите имя процесса System.

Более быстрый способ найти имя процесса предложил 074909, за что ему отдельное спасибо:

В консоли надо ввести следующую команду:
for /f «tokens=1,2,3,4,5*» %i in (‘netstat -aon ^| findstr «:80» ^| findstr /i listening’) do echo %j %l & @tasklist | findst
r %m

которая и вернет имя необходимого процесса.

Тут существует несколько решений и какое вам подойдет одному только богу известно.
Первое.
Это проделки некоторых служб:

  • Windows Remote Management — Службы удаленного управления
  • Sql server reporting services(MSSQLSERVER) — Cлужбы Reporting Services (SSRS) — Службы отчетов SQL Server
  • Web Deployment Agent Service

Собственно необходимо эти службы отключить.

  1. ПКМ по «Мой компьютер»
  2. Управление
  3. Службы и приложения
  4. Службы
  5. Находим необходимые службы и останавливаем их.

Если не помогло, то можете включить их обратно =) и переходить к следующему пунтку. Тоже самое нужно сделать если вы не нашли этих служб у себя( я у себя на win7 только WinRM нашел).

Второе.
Проделки ‘http.sys’
Тут я нашел 2 способа, не сильно отличающиеся друг от друга, мне помог именно 2ой, однако судя по комментариям 1ой тоже помог не малому количеству народа.
Начинаются они одинаково.

1) Идем в реестр. Выполнить->regedit
2) В ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
И отличие в этих способах:
3) Создаем параметр типа Dword c именем «NoRun» и присваиваем ему значение «1» без кавычек.
или
3) Ищем параметр «Start» и меняем значение на «0» без кавычек естественно.
4) Перезагружаем компьютер.

Tomcat Server Error — Port 8080 already in use

I received the following error while attempting to execute a Servlet program in Eclipse Mars EE.

‘Starting Tomcat v8.0 Sever at localhost’ has encountered a problem.

Port 8080 required by Tomcat v8.0 Server at localhost is already in use. There may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).

What should I do to stop the process? I’m assuming that Tomcat 7 server must be stopped. How shall I do it if my operating system is Windows 8?

19 Answers 19

For Ubuntu/Linux

Step 1: Find the process id that is using the port 8080

Step 2: Kill the process using process id in above result

For Windows

Step 1: Find the process id

Step 2: Open command prompt as administrator and kill the process

In my case port 8005 was already in use so I used the same above steps.

All I had to do was to change the port numbers .

Go to Servers panel

Right click on Tomcat Server select Open , Overview window will appear.

Open the Ports tab. You will get the following:

I changed the port number of HTTP/1.1 (i.e. to 8081 )

You might have to also change the port of Tomcat adminport (i.e. to 8006 ) and of AJP/1.3 (i.e. to 8010 ).

Access your app in the browser at http://localhost:8081/.

If you want to regain the 8080 port number you do so by opening the task manager and then process tab, right click java.exe process and click on end process as shown in image attached.

In case of MAC users, go to Terminal and do the following

8080 is HTTP port and 8443 is HTTPS port, by default.

execute the above command in command prompt first command will find the pid of the processes which are using port 8080 or any other port you are using. And in second command write the pid of instead of 21424.

You can solve this in two steps:

STEP 1: Open the Command prompt and type netstat -a -o -f and press enter (the above command will show all the processes running on your machine) https://i.stack.imgur.com/m66JN.png

STEP 2: Type TASKILL /F /PID 4036 (where F stands for force and PID stands for parent Id and 4036 stands for process id of 8080, here I am using some random number) https://i.stack.imgur.com/Co5Tg.png

Few times when you are trying to kill process it will throw an exception telling that access is denied as shown in the above screenshot, at that point of time you are supposed to open command prompt as run as administrator https://i.stack.imgur.com/JwZTv.png

Then come back to eclipse clean the project and then try to run the project

Читайте также:  Unigine heaven для mac os
Оцените статью