Как мне узнать, какое приложение использует мой порт? [закрыто]

79

Я не могу запустить GlassFish, потому что он продолжает показывать это сообщение об ошибке:

SEVERE: Shutting down v3 due to startup exception : No free port within range: 8080=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@ed7d1

Как я могу узнать, какие приложения используют какие порты в Windows Vista? Я пробовал использовать nmap zenmap, используя следующую цель:

http://127.0.0.1:8080

Но все, что я получаю, это:

Starting Nmap 5.51 ( http://nmap.org ) at 2011-08-05 12:05 Central Daylight Time

NSE: Loaded 57 scripts for scanning.

Read data files from: C:\Program Files\Nmap
Nmap done: 0 IP addresses (0 hosts up) scanned in 4.55 seconds
           Raw packets sent: 0 (0B) | Rcvd: 0 (0B)
WARNING: No targets were specified, so 0 hosts scanned.
Flethuseo
источник
Это спасло мне день, но он принадлежит superuser.com, я бы хотел, чтобы был способ переместить вопросы между сайтами
stackexchange
При разработке веб-сервисов в VS 2017 на C # этот вопрос / ответ не позволил мне перезагружать компьютер каждые 2 часа ... хотя он не имеет прямого отношения к программированию, он косвенно чрезвычайно полезен для всех, кто разрабатывает сокеты.
Мигель Матео
Итак, вы ищете, какое приложение использует порт 8080? Сначала введите эту команду в cmd ..... netstat -ano | findstr: 8080 этот или аналогичный вы увидите TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4492 теперь вы знаете идентификатор приложения, которое использует порт 8080, а затем находите это приложение, используя тип идентификатора в этом коде с вашим идентификатором (в моем case it 4492) список задач | findstr 4492 и готово. Tomcat9.exe 4492 Services 0 77.988 K
Константин Ф

Ответы:

112

Как насчет netstat?

http://support.microsoft.com/kb/907980

Команда есть netstat -anob.

(Убедитесь, что вы запускаете команду от имени администратора)

Я получил:

C:\Windows\system32>netstat -anob

Активные соединения

     Proto  Local Address          Foreign Address        State           PID
  TCP           0.0.0.0:80                0.0.0.0:0                LISTENING         4
 Can not obtain ownership information

  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       692
  RpcSs
 [svchost.exe]

  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       7540
 [Skype.exe]

  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 Can not obtain ownership information
  TCP    0.0.0.0:623            0.0.0.0:0              LISTENING       564
 [LMS.exe]

  TCP    0.0.0.0:912            0.0.0.0:0              LISTENING       4480
 [vmware-authd.exe]

И если вы хотите проверить конкретный порт, используйте следующую команду: netstat -aon | findstr 8080 по тому же пути

Питер Келлнер
источник
26
сделал netstat -anob | findstr "8080", он дал мне идентификатор задачи. Было бы неплохо узнать, какое приложение использует его из PID, есть ли команда для этого? кстати: не через диспетчер задач, ненавижу искать в этом списке
Flethuseo
8
Вы можете использовать tasklistкоманду, чтобы увидеть список всех запущенных процессов с их PID.
Амир Овейси 01
3
вопрос отмечен не по теме, но этот ответ спас мне день, я нашел куприт, используя 8099! Благодарю.
LaBracca,
2
Это сработало для меня, но после использования taskkill /pid 8516я получил ERROR: The process "8516" not found.Оказывается, если дочерний процесс запущен, Windows сохранит сокет. Убийство дочернего процесса освободило сокет. serverfault.com/questions/181015/…
jtpereyda 06
В моем случае виновником был Oracle TNS Listener: tasklist | findstr "5676" TNSLSNR.EXE 5676 Services 0 5,140 K
nicordesigns
10

Чтобы узнать, какие порты доступны на вашем компьютере, запустите:

C:>  netstat -an |find /i "listening"
Карлос Кинтанилья
источник
7

Возможно, другое приложение не запущено. Возможно, что сокет не был полностью отключен из предыдущего сеанса, и в этом случае вам, возможно, придется подождать некоторое время, прежде чем истечет TIME_WAIT на этом сокете. К сожалению, вы не сможете использовать порт до истечения срока действия этого сокета. Если вы можете запустить свой сервер после некоторого ожидания (несколько минут), проблема не в другом приложении, запущенном на порту 8080.

ритеш
источник
3

В командной строке выполните:

netstat -nb
Jontsai
источник
Не работает, выдает ошибку: «Запрошенная операция требует повышения».
Сохаил Куреши,
@SohailQureshi Просто запустите командную строку от имени администратора.
Ревник Роберт-Ник,