Wie finde ich heraus, welche Anwendung meinen Port belegt? [geschlossen]

79

Ich kann GlassFish nicht starten, da immer wieder die folgende Fehlermeldung angezeigt wird:

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

Wie kann ich feststellen, welche Anwendungen welche Ports unter Windows Vista verwenden? Ich habe versucht, nmap zenmap mit dem folgenden Ziel zu verwenden:

http://127.0.0.1:8080

Aber alles was ich bekomme ist folgendes:

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
quelle
Dies hat meinen Tag gerettet, gehört aber zu superuser.com. Ich wünschte, es gäbe eine Möglichkeit, Fragen zwischen Stackexchange-Sites zu verschieben
SparK
Während der Entwicklung von Webdiensten in VS 2017 in C # hat mich diese Frage / Antwort daran gehindert, meinen Computer alle 2 Stunden neu zu starten. Obwohl sie für die Programmierung nicht direkt relevant ist, ist sie indirekt für uns alle, die Sockets entwickeln, äußerst hilfreich.
Miguel Mateo
Sie suchen also, welche Anwendung Port 8080 verwendet? Geben Sie diesen Befehl zunächst in cmd ..... netstat -ano | ein findstr: 8080 dies oder ähnliches sehen Sie TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4492 Jetzt kennen Sie die ID der Anwendung, die über Port 8080 diese App mit dem ID-Typ in diesem Code mit Ihrer ID findet (in meinem case it 4492) tasklist | findstr 4492 und los geht's. Tomcat9.exe 4492 Services 0 77.988 K
Konstantin F

Antworten:

112

Wie wäre es mit netstat?

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

Der Befehl lautet netstat -anob.

(Stellen Sie sicher, dass Sie den Befehl als Administrator ausführen.)

Ich bekomme:

C:\Windows\system32>netstat -anob

Aktive Verbindungen

     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]

Wenn Sie nach dem bestimmten Port suchen möchten, lautet der zu verwendende Befehl: netstat -aon | findstr 8080 vom selben Pfad

Peter Kellner
quelle
26
tat netstat -anob | findstr "8080", es gab mir die Task-ID. Es wäre jedoch schön zu wissen, welche Anwendung es von der PID verwendet. Gibt es einen Befehl, um dies zu tun? Übrigens: Nicht über den Task-Manager, ich hasse es, diese Liste
durchsuchen zu müssen
8
Mit dem tasklistBefehl können Sie eine Liste aller laufenden Prozesse mit ihrer PID anzeigen.
Amir Oveisi
3
Frage vom Thema markiert, aber diese Antwort hat mir den Tag gerettet, ich habe den Cuprit mit 8099 gefunden! Vielen Dank.
LaBracca
2
Dies hat bei mir funktioniert, aber nach der Verwendung taskkill /pid 8516hat ERROR: The process "8516" not found.sich herausgestellt, dass Windows den Socket behält, wenn ein untergeordneter Prozess ausgeführt wird. Durch das Beenden des untergeordneten Prozesses wurde der Socket freigegeben. serverfault.com/questions/181015/…
jtpereyda
In meinem Fall war Oracle TNS Listener der Schuldige: tasklist | findstr "5676" TNSLSNR.EXE 5676 Services 0 5.140 K
nicordesigns
10

So sehen Sie, welche Ports auf Ihrem Computer verfügbar sind:

C:>  netstat -an |find /i "listening"
Carlos Quintanilla
quelle
7

Möglicherweise wird keine andere Anwendung ausgeführt. Es ist möglich, dass der Socket von einer vorherigen Sitzung nicht sauber heruntergefahren wurde. In diesem Fall müssen Sie möglicherweise eine Weile warten, bevor TIME_WAIT für diesen Socket abläuft. Leider können Sie den Port erst verwenden, wenn dieser Socket abgelaufen ist. Wenn Sie Ihren Server nach einer Weile (einigen Minuten) starten können, liegt das Problem nicht an einer anderen Anwendung, die auf Port 8080 ausgeführt wird.

Ritesh
quelle
3

Führen Sie an der Eingabeaufforderung Folgendes aus:

netstat -nb
Jontsai
quelle
Wenn es nicht funktioniert, wird der Fehler "Die angeforderte Operation erfordert eine Erhöhung" angezeigt.
Sohail Qureshi