PID: 4 sử dụng Cổng 80


53

Tôi đã cố gắng cài đặt Zend Server CE trên máy tính của mình nhưng khi tôi nhận ra vấn đề là tôi cần chọn cổng cho Máy chủ Web của mình thì thông báo: "Cổng máy chủ Web: 80 Chiếm". Vì vậy, tôi quyết định kiểm tra những gì đang sử dụng Cổng 80 với CMD bằng cách gõ: "netstat -o -n -a | findstr 0.0: 80":

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

Tôi kiểm tra PID: 4 trong Quy trình và Dịch vụ của Trình quản lý tác vụ. Có vẻ như PID 4 là "Hệ thống".

Vì vậy, điều tôi muốn biết là làm cách nào tôi có thể ngăn "Hệ thống" (PID: 4) sử dụng Cổng 80?

THÔNG TIN: Tôi đang sử dụng: Windows 7 64bit; Máy chủ Zend CE 5.5.0


Sẽ không hại khi telnet "GET / HTTP / 1.1" thành 127.0.0.1 và xem điều gì sẽ xảy ra.
LawrenceC

@ultrasawblade Làm thế nào chính xác để tôi làm điều đó?
apokaliptis

1
Chạy telnet 127.0.0.1 80và sau đó qua dòng đó và nhấn enter hai lần. Nếu bạn đang chạy Windows 7, trước tiên bạn cần cài đặt ứng dụng khách telnet từ "thêm và xóa các tính năng của Windows".
billc.cn

1
Dịch vụ xuất bản World Wide Web trong Windows 8 64 đối với tôi đã thực hiện thủ thuật này.

2
Trạng thái dịch vụ HTTP có thể giúp bạn xác định các dịch vụ đang chạy trong trường hợp PID 4. Chạy netsh http show servicestatevà xem các URL đã đăng ký hoặc Thông tin đăng nhập .
pazadev

Câu trả lời:


78

Ok, sau khi tìm kiếm trên web một lúc tôi đã tìm ra giải pháp cho vấn đề của mình.

Chỉ cần làm theo các bước sau để chẩn đoán và giải quyết vấn đề của bạn:

  1. Nhận pid đó là cổng nghe 80: netstat -nao | find ":80"

  2. Mở trình quản lý tác vụ, chuyển đến tab quy trình và kiểm tra trong bộ điều khiển PID Menu/View/Select Columns…, sau đó tìm quy trình bằng cách sử dụng PID được tìm thấy ở bước cuối cùng.

  3. Nếu đó là một ứng dụng hoặc IIS bình thường , hãy tắt nó hoặc gỡ cài đặt. Một số chương trình (như Skype) có tùy chọn để vô hiệu hóa việc sử dụng cổng 80.

  4. Nếu đó là một quy trình hệ thống EDPP 4, bạn cần phải tắt trình điều khiển HTTP.sys được khởi động theo yêu cầu của một dịch vụ khác, chẳng hạn như Windows Remote Management hoặc Print Spooler trên Windows 7 hoặc 2008.

    Có hai cách để vô hiệu hóa nhưng cách thứ nhất an toàn hơn:

    1.

    • Chuyển đến trình quản lý thiết bị, chọn các chương trình ẩn hiển thị trên các thiết bị ẩn, từ menu / chế độ xem, vào phần Non-Plug và chơi Driver Driver / HTTP, nhấp đúp vào nó để tắt nó (hoặc đặt thành thủ công, một số dịch vụ phụ thuộc vào nó).

    • Khởi động lại và sử dụng netstat -nao | find ":80"để kiểm tra nếu 80 vẫn được sử dụng.

    2.

    • Khởi chạy RegEdit.

    • Đi đến HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • Thay đổi giá trị của "bắt đầu" thành 4, có nghĩa là bị vô hiệu hóa.

    • Khởi động lại máy tính của bạn.

Giải pháp của tôi là bước 4 .


4
Cây "Trình điều khiển không cắm và chạy" ở đâu trong trình quản lý thiết bị của Windows Server 2012?
Maria Ines Parnisari

4
Phương pháp quản lý thiết bị không có sẵn từ Windows 8 trở đi.
Roddy

1
Giải pháp đăng ký đã hoạt động trên Win8. Tôi nhớ Linux.
AlikElzin-kilaka

5
Hãy tinh chỉnh điều này một chút. Vô hiệu hóa dịch vụ "HTTP" trong Windows sẽ vô hiệu hóa tất cả các phụ thuộc của nó. Dịch vụ cụ thể sử dụng cổng 80 là "W3SVC" (Dịch vụ xuất bản World Wide Web), phụ thuộc của "HTTP". Điều này có thể được xác minh bằng cách chạy "net stop W3SVC" từ Dấu nhắc lệnh hành chính, rồi 'netstat -n -o -a | tìm ": 80" 'để xác minh không có gì được liệt kê trên cổng 80 nữa. Thay vào đó, tôi khuyên bạn nên vô hiệu hóa Dịch vụ xuất bản web toàn cầu (W3SVC) (nếu bạn không muốn tắt SSDP, Bộ đệm in, Nhóm nhà và Khám phá chức năng).
chriv

2
Tôi hoàn toàn không hiểu hướng dẫn này. Go to device manager, select “show hidden devices” from menu/view, go to “Non-Plug and Play Driver”/HTTP, double click it to disable it (or set it to manual, some services depended on it).Không có Non-Plug and Play Driver”/HTTPmục menu nào cả.
Martin Erlic

25

Tôi chỉ gặp vấn đề này sau khi cài đặt Windows 8 Pro - Build 9200. Tôi đã thử một số phương pháp nhưng không thể làm cho bất kỳ phương pháp nào hoạt động. Điều này, tuy nhiên, đã sửa nó.

Bạn cần thay đổi địa chỉ IP được liên kết cho HTTP.SYS

netsh http add iplisten ipaddress=::

http://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/


Giải pháp này rất tuyệt, khi bạn cần chạy cả máy chủ không sử dụng http.sys và máy chủ nào không sử dụng.
Thor Jacobsen

Cũng làm việc cho tôi. Nó thực sự làm gì mặc dù?
akame

1
Tôi nghĩ rằng điều này đã khắc phục vấn đề của tôi vì nó đã giải phóng cổng nhưng nó cũng có một số tác dụng phụ khác. Cụ thể, tôi không thể liên kết với tên máy chủ cụ thể qua IIS sau khi thay đổi này. Để hoàn tác tôi đã sử dụngnetsh http delete iplisten ipaddress=::
cchamberlain

Điều này làm việc cho tôi, nhưng có tác dụng phụ. Vui lòng xem câu trả lời của tôi dưới đây để biết một giải pháp thay thế có thể sử dụng cùng một lệnh, nhưng một địa chỉ IP khác.
Dave Morton

6

Trong trường hợp của tôi, đó là WebMatrix. Xem các giải pháp có thể (bao gồm cả giải pháp này) tại đây: http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Về cơ bản:

Mở các dịch vụ từ các công cụ quản trị và xác định vị trí Dịch vụ đại lý triển khai web của Google. Dừng dịch vụ và đặt loại khởi động của nó thành Hướng dẫn sử dụng.

Dịch vụ đại lý triển khai web được triển khai với WebMatrix và là nguyên nhân gây ra tai ương của tôi. Nó cũng có thể được phân phối với các ứng dụng khác được cài đặt bằng Trình cài đặt nền tảng web của Microsoft.


Ngoài ra vấn đề tôi gặp phải (trên Windows 10)
toby1kenobi

5

PID 4 được mã hóa cứng là quá trình "Hệ thống", là một phần của nhân hệ thống.

Nếu cổng bị chiếm bởi hệ thống, có lẽ bạn đã kích hoạt IIS. Xem https://stackoverflow.com/questions/1430141/port-80-is-being- used-by-system-pid-4-what-is-that


Tôi đã gỡ cài đặt IIS 7.5 Express với suy nghĩ sẽ giúp ích. Có lẽ tôi phải khởi động lại? Tôi sẽ thử nó.
apokaliptis

Không. Vấn đề vẫn còn tồn tại.
apokaliptis

Bạn có cài đặt IIS 7.0 (phiên bản được cài sẵn Windows 7) không? Thông thường nếu bạn chỉ dừng w3svc, cổng sẽ bị đóng.
billc.cn

Không. Và theo như tôi biết, tôi cũng không nên cài đặt bất kỳ máy chủ web nào khác.
apokaliptis

Bạn có thể chạy netstat một lần nữa nhưng chỉ đăng các cổng đang LẮNG NGHE?
billc.cn

1

Trong khi sử dụng lệnh netsh http add iplisten ipaddress=::đã thực sự cho phép Apache khởi động trên hệ thống Windows 10 64 bit của tôi, nó đã gây ra sự cố với việc truy cập localhost, vì điều đó bị ràng buộc ::thay vì 127.0.0.1, ngay cả với mục nhập thích hợp trong tệp máy chủ của tôi. Điều cuối cùng tôi đã làm là sử dụng lệnh này thay vào đó: netsh http add iplisten ipaddress=0.0.0.0 Điều này không chỉ hoạt động mà còn cho phép trình duyệt truy cập vào localhost. Đối với tôi đây là một giải pháp ưu việt.


0

Mở danh sách Dịch vụ Tìm "Dịch vụ xuất bản trên toàn thế giới" Dừng lại và đặt thành Thủ công

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.