[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/general/port-already-in-use":3,"mdc-de0knj-key":512,"mdc--n6eywv-key":548,"mdc--9zuee6-key":571,"mdc-oizlvi-key":587,"mdc--h83ofv-key":595,"mdc-kxd6mz-key":625,"mdc--8ewi8c-key":649,"related-/guides/general/network-diagnostic-tools,/errors/windows/failed-to-bind-port,/errors/linux/permission-denied-port":657},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":451,"code":31,"createdAt":452,"description":453,"difficulty":454,"draft":455,"estimatedTime":456,"extension":457,"faq":458,"howToSteps":468,"howToTotalTime":481,"image":451,"keywords":482,"locale":490,"meta":491,"navigation":492,"path":493,"platform":494,"related":495,"section":499,"seo":500,"severity":501,"stem":502,"summary":503,"tags":504,"twitterCreator":451,"twitterSite":451,"type":510,"updatedAt":452,"__hash__":511},"content_ru/errors/general/port-already-in-use.md","Ошибка «Адрес уже используется»: как найти и освободить порт",[7,8,9,10],"Windows 10/11","macOS 12+","Linux (любые дистрибутивы)","Node.js / Docker / Python приложения","FixPedia Team",{"type":13,"value":14,"toc":441},"minimark",[15,20,37,41,74,78,83,90,95,111,118,123,174,180,184,187,201,206,215,222,226,242,248,251,255,258,301,304,374,378,381,437],[16,17,19],"h2",{"id":18},"что-означает-ошибка-eaddrinuse","Что означает ошибка EADDRINUSE",[21,22,23,24,28,29,32,33,36],"p",{},"Сообщение ",[25,26,27],"code",{},"Error: Address already in use"," (или ",[25,30,31],{},"EADDRINUSE",", ",[25,34,35],{},"listen EADDRINUSE: address already in use",") возникает, когда приложение пытается привязаться к сетевому порту, который уже прослушивается другой программой. В TCP/IP-стеке один IP-адрес и порт могут быть назначены только одному процессу одновременно. Если сокет уже занят, операционная система отклоняет запрос на запуск, чтобы избежать конфликтов маршрутизации входящего трафика. Чаще всего вы столкнётесь с этой проблемой при запуске локальных серверов разработки, баз данных (MySQL, PostgreSQL), прокси-серверов или контейнеров Docker.",[16,38,40],{"id":39},"причины-возникновения","Причины возникновения",[42,43,44,52,58,68],"ul",{},[45,46,47,51],"li",{},[48,49,50],"strong",{},"Конфликт с системным сервисом."," Стандартные порты (80, 443, 3306, 5432) часто заняты веб-серверами, базами данных или утилитами вроде IIS и Apache.",[45,53,54,57],{},[48,55,56],{},"Зависший фоновый процесс."," Приложение могло аварийно завершиться, но его процесс остался в памяти и не освободил сетевой дескриптор.",[45,59,60,67],{},[48,61,62,63,66],{},"Состояние ",[25,64,65],{},"TIME_WAIT","."," После закрытия соединения ОС временно резервирует порт (обычно на 1–4 минуты) для обработки оставшихся в буфере пакетов.",[45,69,70,73],{},[48,71,72],{},"Параллельный запуск."," Вы случайно запустили вторую копию того же приложения, и обе версии пытаются занять одинаковый порт.",[16,75,77],{"id":76},"способы-решения","Способы решения",[79,80,82],"h3",{"id":81},"способ-1-диагностика-через-терминал","Способ 1: Диагностика через терминал",[21,84,85,86,89],{},"Первым делом нужно узнать, какой именно процесс блокирует порт. Откройте командную строку или терминал и выполните команду, подходящую для вашей ОС. Замените ",[25,87,88],{},"8080"," на номер вашего порта.",[21,91,92],{},[48,93,94],{},"Windows (PowerShell / CMD от имени администратора):",[96,97,102],"pre",{"className":98,"code":99,"language":100,"meta":101,"style":101},"language-powershell shiki shiki-themes github-light github-dark","netstat -ano | findstr :8080\n","powershell","",[25,103,104],{"__ignoreMap":101},[105,106,109],"span",{"class":107,"line":108},"line",1,[105,110,99],{},[21,112,113,114,117],{},"Результат покажет статус ",[25,115,116],{},"LISTENING"," и PID (последняя колонка). Запомните этот номер.",[21,119,120],{},[48,121,122],{},"Linux / macOS:",[96,124,128],{"className":125,"code":126,"language":127,"meta":101,"style":101},"language-bash shiki shiki-themes github-light github-dark","sudo lsof -i :8080\n# или\nsudo ss -tulpn | grep :8080\n","bash",[25,129,130,147,154],{"__ignoreMap":101},[105,131,132,136,140,144],{"class":107,"line":108},[105,133,135],{"class":134},"sScJk","sudo",[105,137,139],{"class":138},"sZZnC"," lsof",[105,141,143],{"class":142},"sj4cs"," -i",[105,145,146],{"class":138}," :8080\n",[105,148,150],{"class":107,"line":149},2,[105,151,153],{"class":152},"sJ8bj","# или\n",[105,155,157,159,162,165,169,172],{"class":107,"line":156},3,[105,158,135],{"class":134},[105,160,161],{"class":138}," ss",[105,163,164],{"class":142}," -tulpn",[105,166,168],{"class":167},"szBVR"," |",[105,170,171],{"class":134}," grep",[105,173,146],{"class":138},[21,175,176,177,66],{},"Команда выведет имя процесса и его PID в колонке ",[25,178,179],{},"PID/Program name",[79,181,183],{"id":182},"способ-2-безопасное-завершение-блокирующего-процесса","Способ 2: Безопасное завершение блокирующего процесса",[21,185,186],{},"Получив идентификатор процесса, его можно принудительно остановить.",[188,189,190],"blockquote",{},[21,191,192,193,196,197,200],{},"⚠️ Важно: Убедитесь, что завершаемый процесс не является критичным системным компонентом (например, ",[25,194,195],{},"svchost.exe"," или ",[25,198,199],{},"systemd-resolved","). Остановка таких служб может нарушить работу сети.",[21,202,203],{},[48,204,205],{},"Windows:",[96,207,209],{"className":98,"code":208,"language":100,"meta":101,"style":101},"taskkill /PID 1234 /F\n",[25,210,211],{"__ignoreMap":101},[105,212,213],{"class":107,"line":108},[105,214,208],{},[21,216,217,218,221],{},"Флаг ",[25,219,220],{},"/F"," гарантирует принудительное завершение даже при зависании.",[21,223,224],{},[48,225,122],{},[96,227,229],{"className":125,"code":228,"language":127,"meta":101,"style":101},"kill -9 1234\n",[25,230,231],{"__ignoreMap":101},[105,232,233,236,239],{"class":107,"line":108},[105,234,235],{"class":142},"kill",[105,237,238],{"class":142}," -9",[105,240,241],{"class":142}," 1234\n",[21,243,244,245,66],{},"Если сервис управляется менеджером процессов, лучше использовать штатные команды: ",[25,246,247],{},"sudo systemctl stop \u003Cимя_сервиса>",[249,250],"in-article-ad",{},[79,252,254],{"id":253},"способ-3-переназначение-порта-в-конфигурации","Способ 3: Переназначение порта в конфигурации",[21,256,257],{},"Если освободить порт невозможно или он нужен другой критичной программе, измените настройку прослушивания в вашем приложении.",[259,260,261,277,289,298],"ol",{},[45,262,263,264,32,267,32,270,196,273,276],{},"Откройте конфигурационный файл (например, ",[25,265,266],{},"docker-compose.yml",[25,268,269],{},".env",[25,271,272],{},"config.json",[25,274,275],{},"server.js",").",[45,278,279,280,32,283,196,286,66],{},"Найдите параметр ",[25,281,282],{},"port",[25,284,285],{},"PORT",[25,287,288],{},"LISTEN_PORT",[45,290,291,292,196,295,276],{},"Замените значение на свободное (например, ",[25,293,294],{},"8081",[25,296,297],{},"3001",[45,299,300],{},"Перезапустите приложение.",[21,302,303],{},"Для большинства Node.js/Python-проектов достаточно задать переменную окружения перед запуском:",[96,305,307],{"className":125,"code":306,"language":127,"meta":101,"style":101},"export PORT=3001 && node server.js  # Linux/macOS\nset PORT=3001 && node server.js     # Windows CMD\n$env:PORT=\"3001\"; node server.js    # Windows PowerShell\n",[25,308,309,335,354],{"__ignoreMap":101},[105,310,311,314,318,321,323,326,329,332],{"class":107,"line":108},[105,312,313],{"class":167},"export",[105,315,317],{"class":316},"sVt8B"," PORT",[105,319,320],{"class":167},"=",[105,322,297],{"class":142},[105,324,325],{"class":316}," && ",[105,327,328],{"class":134},"node",[105,330,331],{"class":138}," server.js",[105,333,334],{"class":152},"  # Linux/macOS\n",[105,336,337,340,343,345,347,349,351],{"class":107,"line":149},[105,338,339],{"class":142},"set",[105,341,342],{"class":138}," PORT=",[105,344,297],{"class":142},[105,346,325],{"class":316},[105,348,328],{"class":134},[105,350,331],{"class":138},[105,352,353],{"class":152},"     # Windows CMD\n",[105,355,356,359,361,364,367,369,371],{"class":107,"line":156},[105,357,358],{"class":316},"$env:PORT",[105,360,320],{"class":167},[105,362,363],{"class":138},"\"3001\"",[105,365,366],{"class":316},"; ",[105,368,328],{"class":134},[105,370,331],{"class":138},[105,372,373],{"class":152},"    # Windows PowerShell\n",[16,375,377],{"id":376},"профилактика","Профилактика",[21,379,380],{},"Чтобы избежать повторения ошибки, придерживайтесь следующих правил:",[42,382,383,396,414,427],{},[45,384,385,388,389,392,393,276],{},[48,386,387],{},"Используйте динамическое выделение."," Для локальной разработки настраивайте приложения на автоматический выбор свободного порта (флаги ",[25,390,391],{},"--port 0"," или конфигурация ",[25,394,395],{},"port: \"auto\"",[45,397,398,401,402,405,406,409,410,413],{},[48,399,400],{},"Корректно обрабатывайте завершение."," В коде сервера обязательно привязывайте обработчик сигналов ",[25,403,404],{},"SIGINT","/",[25,407,408],{},"SIGTERM",", который корректно закрывает соединения (",[25,411,412],{},"server.close()","), а не просто обрывает процесс.",[45,415,416,419,420,423,424,66],{},[48,417,418],{},"Проверяйте порты перед деплоем."," Добавьте в скрипты запуска предварительную проверку занятости порта через ",[25,421,422],{},"nc -z localhost \u003Cпорт>"," или PowerShell-аналог ",[25,425,426],{},"Test-NetConnection",[45,428,429,432,433,436],{},[48,430,431],{},"Изолируйте среды."," Запускайте проекты в Docker-контейнерах с пробросом портов (",[25,434,435],{},"-p 8080:3000","), чтобы избежать конфликтов на хост-машине.",[438,439,440],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":101,"searchDepth":149,"depth":149,"links":442},[443,444,445,450],{"id":18,"depth":149,"text":19},{"id":39,"depth":149,"text":40},{"id":76,"depth":149,"text":77,"children":446},[447,448,449],{"id":81,"depth":156,"text":82},{"id":182,"depth":156,"text":183},{"id":253,"depth":156,"text":254},{"id":376,"depth":149,"text":377},null,"2026-04-06 13:30:02","Полный гайд по диагностике и освобождению сетевых портов в Windows, Linux и macOS. Найдите блокирующий процесс и запустите сервис за 5 минут!","easy",false,"5-10 мин","md",[459,462,465],{"question":460,"answer":461},"Как узнать, какая программа использует нужный мне порт?","Используйте команды `netstat -ano` (Windows) или `lsof -i :\u003Cпорт>` / `ss -tulpn` (Linux/macOS). Они выведут PID процесса, который нужно завершить.",{"question":463,"answer":464},"Можно ли принудительно освободить порт, не перезагружая компьютер?","Да, достаточно завершить зависший процесс через Диспетчер задач или команду `kill`/`taskkill`, после чего порт мгновенно станет доступен.",{"question":466,"answer":467},"Почему порт остаётся занятым даже после закрытия приложения?","Это состояние `TIME_WAIT` в TCP/IP. Сокет временно резервируется для корректного завершения передачи данных и освобождается автоматически через 1–4 минуты.",[469,472,475,478],{"name":470,"text":471},"Определите номер порта и ОС","Уточните порт из логов приложения и выберите команды для вашей операционной системы.",{"name":473,"text":474},"Найдите блокирующий процесс","Запустите `netstat`, `ss` или `lsof` с правами администратора, чтобы узнать PID программы.",{"name":476,"text":477},"Завершите процесс","Используйте `taskkill /PID \u003Cid> /F` или `kill -9 \u003Cpid>` для принудительной остановки.",{"name":479,"text":480},"Перезапустите приложение","Запустите целевой сервис повторно, убедившись, что порт успешно освободился.","PT8M",[483,31,484,485,486,487,488,489],"порт уже используется","как найти процесс на порту","освободить порт 80","address already in use решение","netstat найти процесс","порт занят приложением","lsof порт","ru_RU",{},true,"/errors/general/port-already-in-use","general",[496,497,498],"/guides/general/network-diagnostic-tools","/errors/windows/failed-to-bind-port","/errors/linux/permission-denied-port","Сетевые ошибки",{"title":5,"description":453},"medium","errors/general/port-already-in-use","Эта статья объясняет, почему возникает ошибка «Address already in use», и предлагает проверенные команды для определения и освобождения занятого порта в любой операционной системе.",[505,506,31,507,508,509],"сети","порты","диагностика","netstat","troubleshooting","error","ZXJL255nDku3arVNE2RcOrdMdWxo8aPTYsO8lOK9t4A",{"data":513,"body":514},{},{"type":515,"children":516},"root",[517],{"type":518,"tag":21,"props":519,"children":520},"element",{},[521,524,530,532,538,540,546],{"type":522,"value":523},"text","Используйте команды ",{"type":518,"tag":25,"props":525,"children":527},{"className":526},[],[528],{"type":522,"value":529},"netstat -ano",{"type":522,"value":531}," (Windows) или ",{"type":518,"tag":25,"props":533,"children":535},{"className":534},[],[536],{"type":522,"value":537},"lsof -i :\u003Cпорт>",{"type":522,"value":539}," / ",{"type":518,"tag":25,"props":541,"children":543},{"className":542},[],[544],{"type":522,"value":545},"ss -tulpn",{"type":522,"value":547}," (Linux/macOS). Они выведут PID процесса, который нужно завершить.",{"data":549,"body":550},{},{"type":515,"children":551},[552],{"type":518,"tag":21,"props":553,"children":554},{},[555,557,562,563,569],{"type":522,"value":556},"Да, достаточно завершить зависший процесс через Диспетчер задач или команду ",{"type":518,"tag":25,"props":558,"children":560},{"className":559},[],[561],{"type":522,"value":235},{"type":522,"value":405},{"type":518,"tag":25,"props":564,"children":566},{"className":565},[],[567],{"type":522,"value":568},"taskkill",{"type":522,"value":570},", после чего порт мгновенно станет доступен.",{"data":572,"body":573},{},{"type":515,"children":574},[575],{"type":518,"tag":21,"props":576,"children":577},{},[578,580,585],{"type":522,"value":579},"Это состояние ",{"type":518,"tag":25,"props":581,"children":583},{"className":582},[],[584],{"type":522,"value":65},{"type":522,"value":586}," в TCP/IP. Сокет временно резервируется для корректного завершения передачи данных и освобождается автоматически через 1–4 минуты.",{"data":588,"body":589},{},{"type":515,"children":590},[591],{"type":518,"tag":21,"props":592,"children":593},{},[594],{"type":522,"value":471},{"data":596,"body":597},{},{"type":515,"children":598},[599],{"type":518,"tag":21,"props":600,"children":601},{},[602,604,609,610,616,617,623],{"type":522,"value":603},"Запустите ",{"type":518,"tag":25,"props":605,"children":607},{"className":606},[],[608],{"type":522,"value":508},{"type":522,"value":32},{"type":518,"tag":25,"props":611,"children":613},{"className":612},[],[614],{"type":522,"value":615},"ss",{"type":522,"value":196},{"type":518,"tag":25,"props":618,"children":620},{"className":619},[],[621],{"type":522,"value":622},"lsof",{"type":522,"value":624}," с правами администратора, чтобы узнать PID программы.",{"data":626,"body":627},{},{"type":515,"children":628},[629],{"type":518,"tag":21,"props":630,"children":631},{},[632,634,640,641,647],{"type":522,"value":633},"Используйте ",{"type":518,"tag":25,"props":635,"children":637},{"className":636},[],[638],{"type":522,"value":639},"taskkill /PID \u003Cid> /F",{"type":522,"value":196},{"type":518,"tag":25,"props":642,"children":644},{"className":643},[],[645],{"type":522,"value":646},"kill -9 \u003Cpid>",{"type":522,"value":648}," для принудительной остановки.",{"data":650,"body":651},{},{"type":515,"children":652},[653],{"type":518,"tag":21,"props":654,"children":655},{},[656],{"type":522,"value":480},[]]