ฉันจะทำให้พอร์ต 80 ของฉันว่างบน localhost Windows ได้อย่างไร


124

ฉันติดตั้ง XAMPP 1.6.8 และด้วยเหตุผลบางประการมันไม่ทำงาน รู้ทีหลังว่าพอร์ต 80 ไม่ฟรีหรือไม่ฟัง ฉันจะปล่อยหรือทำให้ฟรีได้อย่างไร

ขอบคุณมาก!




ฉันเชื่อว่านี่เป็นคำถามที่ซ้ำกันของ (โปรดหาคำตอบที่นั่น) -> stackoverflow.com/questions/1430141/…
Dung

ซ้ำกันหรือไม่ นี้เป็นครั้งแรกบนGoogle
Bitterblue

คำตอบ:


113

ความทุกข์ทรมานนั้นได้รับการแก้ไขสำหรับฉันแล้ว ฉันพบว่าสิ่งที่เข้าครอบครองพอร์ต 80 คือบริการ http api ฉันเขียนใน cmd:

net stop http

ถามฉันว่า "บริการต่อไปนี้จะหยุดให้บริการคุณต้องการดำเนินการต่อหรือไม่" กด y

มันหยุดบริการจำนวนหนึ่งจริง

จากนั้นเขียนlocalhostและวอลลาห์ Apache พร้อมใช้งานบนพอร์ต 80
หวังว่านี่จะช่วยได้

สำคัญ : Skype ใช้พอร์ต 80 โดยค่าเริ่มต้นคุณสามารถเปลี่ยนตัวเลือกนี้ได้ในตัวเลือก skype> ขั้นสูง> การเชื่อมต่อ - และยกเลิกการเลือก "ใช้พอร์ต 80"


ใน Windows 7 ฉันไม่สามารถหยุดกระบวนการได้เนื่องจาก "การเข้าถึงถูกปฏิเสธ" แต่มันแสดงชื่อของกระบวนการที่จะถูกฆ่าถ้าฉันมีสิทธิ์ (ฉันไม่มีสิทธิ์สำหรับ netstat -a -b)
Pavel V.

1
@PavelV คุณควรเรียกใช้พรอมต์คำสั่งด้วยสิทธิ์ของผู้ดูแลระบบ เปิด start และเขียนค้นหา "cmd" คลิกขวาที่ cmd แล้วเลือก Run as administrator
MuhFred

67

netstat -ano

ซึ่งจะแสดง PID ของกระบวนการที่กำลังฟังอยู่บนพอร์ต 80 หลังจากนั้นเปิดแท็บตัวจัดการงาน -> กระบวนการ จากView -> Select Columnsเมนูเปิดใช้งานPIDคอลัมน์และคุณจะเห็นชื่อของกระบวนการที่กำลังฟังอยู่บนพอร์ต 80


1
นี่เป็นสิ่งที่ดีเนื่องจากอาจมีกระบวนการอื่นที่มีชื่อเดียวกัน ฉันสงสัยว่ามีคำสั่ง kill ใน windows ที่ฉันสามารถเรียกใช้กับ PID ที่พบแทนที่จะทำผ่านตัวจัดการงาน
Sundeep

taskkill ไม่ได้ฆ่างาน ยังคงแสดงพอร์ต 80 ทำงานอยู่ @Jijo
Aakash Thakur

1
คุณสามารถลองใช้ / f / t ในตอนท้ายได้ไหมมันจะฆ่างานนี้อย่างจริงจังฉันกำลังใช้ระบบ linux ไม่ได้รับการตรวจสอบ
Jijo

41

netstat -a -b

ควรบอกคุณว่าโปรแกรมใดที่ผูกไว้กับพอร์ต 80


1
มันแค่ให้ไบต์ยูนิคาสต์และอื่น ๆ ไม่ได้ให้สิ่งที่ผูกไว้กับพอร์ต 80 ฉันพลาดอะไรไปหรือเปล่า?

6
ntoskrnl.exe - แล้วเป็นอย่างไร
Tim Lovell-Smith

1
ฉันลองสิ่งนี้และมันบอกว่า "การดำเนินการที่ร้องขอต้องการการยกระดับ"
createcape

คุณคือพระเจ้า! โค้งลงโดยนี้ฉันก็สามารถที่จะหาชื่อบริการที่เกิดขึ้นจริงที่มีหมายเลขกระบวนการเดียวกันกับคนอื่น ๆ จึงไม่สามารถคิดออกก่อนที่จะมีการให้บริการที่เกิดขึ้นจริงจะฆ่าจากผู้จัดการงาน ขอบคุณจริงๆ!
divy3993

36

ก่อนหน้านี้ฉันมีปัญหานี้

หากคุณเห็นตัวจัดการงาน (หลังจากเปิดใช้งานมุมมองสำหรับ PID) คุณจะพบว่า PID = 4 คือ "พอร์ต 80 ที่ใช้งานโดย NT Kernel & System;"

เพียงไปที่

  1. แผงควบคุม
  2. โปรแกรม
  3. เปิด / ปิดคุณสมบัติของ Windows
  4. ตรวจสอบว่ามีการเลือกด้านWorld wide web servicesล่างหรือIISไม่

ในกรณีนี้ให้ยกเลิกการเลือกและ netstat (หรือ TCPVIEW) อีกครั้งเพื่อดูว่า 80 ว่างหรือไม่


2
Win7: เมนูเริ่มค้นหา "IIS" จะแสดง "ตัวจัดการ IIS" ซึ่งคุณสามารถปิดใช้งานเซิร์ฟเวอร์ได้
Philipp

34

ใช้netstat -banoในพรอมต์คำสั่งที่ยกระดับเพื่อดูว่าแอปใดกำลังฟังพอร์ตใดอยู่

แต่โดยปกติแอปพลิเคชันต่อไปนี้จะใช้พอร์ต 80 ใน windows

  1. IIS
  2. บริการเผยแพร่เวิลด์ไวด์เว็บ
  3. บริการผู้ดูแลระบบ IIS
  4. บริการรายงานเซิร์ฟเวอร์ SQL
  5. บริการ Web Deployment Agent

หยุดแอปพลิเคชั่นด้านบนหากรันและตรวจสอบ !!!


คุณรู้หรือไม่ว่าจะตรวจสอบให้แน่ใจได้อย่างไรว่าบริการเหล่านี้ไม่ใช้พอร์ต 80?
rahoolm


6

ตัวเลือกอื่นที่ควรลองคือหยุดบริการรายงานเซิร์ฟเวอร์ SQL


ขอบคุณสำหรับฉันมันเป็น SQL Server Reporting Services (MSSQLSERVER) ไม่รู้ว่าทำไม แต่เมื่อฉันยกเลิกโดยคอนโซลบริการให้ประมวลผลด้วย pid 4 เลิกผูกตั้งแต่ 0.0.0.0:80
Vladimir Shmidt

6

คุณสามารถใช้net stop httpมันจะแสดงว่ากำลังใช้กระบวนการใด กำลังใช้บริการเว็บทั่วโลกของ Moslty


6

ลอง

netstat -anb -p tcp

ที่แสดงพอร์ตและกระบวนการ


สถานะแอปพลิเคชัน xampp ของฉันแสดงทั้งสถานะ apache และ mysql 1 start 1 service 1 แต่เบราว์เซอร์ยังไม่แสดง localhost ทำไมล่ะ? คำแนะนำใด ๆ :(

5

นี่เป็นเพียงการคาดเดา แต่เนื่องจากพอร์ต 80 เป็นพอร์ตทั่วไปสำหรับ HTTP คุณอาจมีเว็บเซิร์ฟเวอร์ที่ทำงานบนระบบของคุณ IIS ใช้งานอยู่หรือไม่

หากคุณกำลังเรียกใช้ IIS คุณอาจให้บริการเว็บฟาร์มทำงานอยู่ นั่นคือสิ่งที่ฆ่า xampp ของฉัน


1
ไม่ฉันไม่มี IIS ฉันใช้ xampp มาก่อนและได้ผล ฉันเดาว่าบริการอื่น ๆ กำลังนั่งอยู่บนพอร์ต 80 และไม่อนุญาตให้ติดตั้งบริการ Apache ใหม่อีกครั้ง

2
Skype ชอบขโมยพอร์ต 80 ซึ่งเป็นผู้ร้ายที่ไม่คาดคิดโดยทั่วไป!
Simon_Weaver

5

พิมพ์ "netstat -ano" ในบรรทัดคำสั่งของคุณ ฉันเห็นว่ามันแสดงบางอย่างสำหรับพอร์ต Local Address 0.0.0.0:80

ปัญหาของฉันเกิดจากฉันมี SQL Server Reporting Services บนพอร์ต 80 ดังนั้นฉันจึงทำตามคำแนะนำเหล่านี้และเปลี่ยนพอร์ต # จาก 80 เป็น 81:

http://seankilleen.com/2012/11/how-to-stop-sql-server-reporting-services-from-using-port-80-on-your-server-field-notes/

นี่คือภาพของบรรทัดคำสั่งของฉันหลังจากที่ฉันเปลี่ยนหมายเลขพอร์ตสำหรับ SQL Server Reporting Services:

ใส่คำอธิบายภาพที่นี่

หากคุณยังคงประสบปัญหาเดิมโปรดอ่านฟอรัมนี้:

http://forum.wampserver.com/read.php?2,66196,66233#REPLY



4

ฉันก็มีปัญหาเดียวกัน net stop httpไม่ได้ช่วยและตัวเลือกบริการทั่วโลกภายใต้IISในแผงควบคุมของ Windows ไม่ถูกเลือก ดังนั้นในแผงควบคุม XAMPP ฉันเพิ่งตรวจสอบช่องทำเครื่องหมาย Svc ใกล้ปุ่มเริ่ม Apache (ติดตั้ง Apache เป็นบริการ) และรีบูต Windows และตอนนี้ทุกครั้งที่ Windows เริ่มต้น Apache จะเริ่มทำงานโดยอัตโนมัติและใช้พอร์ต 80 ก่อนบริการอื่น ทำงานให้ฉัน!


2

บริการ Windows ที่รู้จักซึ่งฟังบนพอร์ต 80

จาก Services Manager (เรียกใช้: services.msc) ให้หยุดและปิดใช้งาน Windows Services เหล่านี้ซึ่งเป็นที่ทราบกันดีว่าผูกกับพอร์ต 80

ดับเบิลคลิกบริการและเปลี่ยน 'Startup Type' เป็น 'Disabled' ...

  1. บริการรายงานเซิร์ฟเวอร์ SQL (ReportServer)
  2. บริการ Web Deployment Agent (MsDepSvc)
  3. BranchCache (PeerDistSvc)
  4. บริการซิงค์แบ่งปัน (SyncShareSvc)
  5. บริการเผยแพร่ทั่วโลก (W3SVC)
  6. เซิร์ฟเวอร์ข้อมูลทางอินเทอร์เน็ต (WAS, IISADMIN)

skype ยังใช้พอร์ต 80 เป็นค่าเริ่มต้นและคุณสามารถยกเลิกการเลือกได้

คุณอาจติดตั้งและเรียกใช้บริการเหล่านี้บางส่วนหรือไม่ก็ได้

ในกรณีของฉัน "SQL Server Reporting Services" กำลังเปิดพอร์ต 80


0

สำหรับฉันปัญหานี้เริ่มขึ้นเมื่อฉันโฮสต์การเชื่อมต่อ VPN บนคอมพิวเตอร์ Windows 8 ของฉัน

เพียงแค่ลบการเชื่อมต่อจาก"Control Panel \ Network และ Internet \ Network Connections" ก็สามารถแก้ปัญหาได้


0

ฉันพยายามติดตั้งnginxจากที่นี่ - http://nginx.org/en/docs/windows.html

ไปที่http: // localhost / จะแสดงบางสิ่งบางอย่างอย่างน้อยข้อความ "not found" ที่
ถูกต้องเนื่องจาก 80 เป็นพอร์ตเริ่มต้นและถูกใช้โดยกระบวนการอื่น

ตอนนี้เรียกใช้คำสั่งด้านล่าง:

net stop http

    // Above command stopped below services  
    // - SSDP Discovery  
    // - Print Spooler  
    // - BranchCache  
    // - Function Discovery Resource Publication  
    // - Function Discovery Provider Host  

ตอนนี้ไปที่http: // localhost / จะล้มเหลวด้วยข้อความหน้าลิงก์ที่ใช้งานไม่ได้

กระบวนการหลักคือกระบวนการBranchCache
นี้หลังจากหยุดแล้วจะรีสตาร์ทในไม่กี่วินาที
ดังนั้นเราต้องเรียกใช้คำสั่งอื่น ๆ ที่เราต้องการเร็ว ๆ นี้ตัวอย่างด้านล่าง:

// this will stop
net stop http

// immeidately run other command you want to
start nginx

ตอนนี้ไปที่http: // localhost / ให้ฉัน:

Welcome to nginx!

หวังว่าจะช่วยได้


0

ฉันประสบปัญหาเดียวกันและแก้ไขโดยทำการเปลี่ยนแปลงเล็กน้อยในhttpd.confไฟล์ซึ่งสามารถรับได้โดยคลิกปุ่ม config พร้อมกับตัวเลือก Apache

การเปลี่ยนแปลงที่ฉันทำคือการแทนที่ฟัง 80 ด้วยฟัง 8080


-1

ในกรณีของฉันหน้าต่าง iis เพื่อหยุด Web Deployment Agent Service พิมพ์ cmd

 net stop msdepsvc 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.