Làm cách nào để biết ứng dụng nào đang sử dụng hết cổng của tôi? [đóng cửa]


79

Tôi không thể khởi động GlassFish vì nó vẫn hiển thị thông báo lỗi sau:

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

Làm cách nào để tìm ứng dụng nào đang sử dụng cổng nào trên Windows Vista? Tôi đã thử sử dụng nmap zenmap bằng mục tiêu sau:

http://127.0.0.1:8080

Nhưng tất cả những gì tôi nhận được là:

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.


Điều này đã tiết kiệm một ngày của tôi, nhưng nó thuộc về superuser.com, tôi ước có một cách nào đó để chuyển các câu hỏi qua các trang web
stackexchange

Trong khi phát triển các dịch vụ web trong VS 2017 bằng C #, câu hỏi / câu trả lời này đã ngăn tôi khởi động lại máy tính cứ sau 2 giờ ... mặc dù nó không liên quan trực tiếp đến lập trình, nhưng nó gián tiếp cực kỳ hữu ích đối với tất cả chúng ta đang phát triển các socket.
Miguel Mateo

Vậy bạn đang tìm ứng dụng nào đang sử dụng cổng 8080? Đầu tiên, nhập lệnh này trong cmd ..... netstat -ano | findstr: 8080 này hoặc tương tự bạn sẽ thấy TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4492 bây giờ bạn biết id của ứng dụng sử dụng cổng 8080, sau đó tìm ứng dụng đó bằng cách sử dụng loại id trong mã này với id của bạn, (trong của tôi case it 4492) tasklist | findstr 4492 và thông tin cho bạn đây. Tomcat9.exe 4492 Dịch vụ 0 77,988 K
Konstantin F

Câu trả lời:


112

Làm thế nào về netstat?

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

Lệnh là netstat -anob.

(Đảm bảo bạn chạy lệnh với tư cách quản trị viên)

Tôi có:

C:\Windows\system32>netstat -anob

Kết nối hoạt động

     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]

Và nếu bạn muốn kiểm tra một cổng cụ thể, lệnh sử dụng là: netstat -aon | findstr 8080 từ cùng một đường dẫn


26
netstat -anob đã làm | findstr "8080", nó đã cho tôi id tác vụ, Tuy nhiên, sẽ rất tuyệt nếu biết, ứng dụng nào đang sử dụng nó từ PID, có lệnh để thực hiện việc này không? btw: không thông qua trình quản lý tác vụ, tôi ghét phải tìm kiếm trong danh sách đó
Flethuseo

8
Bạn có thể sử dụng tasklistlệnh để xem danh sách tất cả các quy trình đang chạy với PID của chúng.
Amir Oveisi

3
câu hỏi bị đánh dấu lạc đề nhưng câu trả lời này đã cứu rỗi ngày của tôi, tôi tìm thấy cuprit bằng cách sử dụng 8099! Cảm ơn.
LaBracca

2
Điều này làm việc với tôi nhưng sau khi sử dụng taskkill /pid 8516, tôi nhận ERROR: The process "8516" not found.ra rằng nếu một tiến trình con đang chạy, Windows sẽ giữ ổ cắm xung quanh. Việc giết tiến trình con đã giải phóng ổ cắm. serverfault.com/questions/181015/…
jtpereyda

Trong trường hợp của tôi, Oracle TNS Listener là thủ phạm: tasklist | findstr "5676" TNSLSNR.EXE 5676 Dịch vụ 0 5.140 K
nicordesigns

10

Để xem cổng nào khả dụng trên máy của bạn chạy:

C:>  netstat -an |find /i "listening"

7

Có thể là không có ứng dụng nào khác đang chạy. Có thể ổ cắm không được tắt sạch từ phiên trước, trong trường hợp đó, bạn có thể phải đợi một lúc trước khi TIME_WAIT hết hạn trên ổ cắm đó. Thật không may, bạn sẽ không thể sử dụng cổng cho đến khi ổ cắm đó hết hạn. Nếu bạn có thể khởi động máy chủ của mình sau khi đợi một lúc (vài phút) thì vấn đề không phải do một số ứng dụng khác đang chạy trên cổng 8080.


3

Trên dấu nhắc lệnh, hãy thực hiện:

netstat -nb

Không hoạt động, nó khiến tôi gặp lỗi nói rằng "Thao tác được yêu cầu đòi hỏi độ cao".
Sohail Qureshi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.