ฉันจะทราบได้อย่างไรว่าพอร์ตเปิดอยู่หรือไม่?


22

ฉันติดตั้งเซิร์ฟเวอร์ Apache บนคอมพิวเตอร์ Windows 7 ของฉันแล้ว ฉันสามารถแสดง index.php เริ่มต้นโดยพิมพ์http: // localhost /ในบรรทัดที่อยู่ของเบราว์เซอร์ของฉัน

อย่างไรก็ตามฉันยังคงไม่สามารถดูหน้านี้ได้โดยพิมพ์ที่อยู่ IP ของคอมพิวเตอร์ของฉัน (ไม่ใช่ภายในเครื่อง (จากคอมพิวเตอร์เครื่องเดียวกัน) ไม่มีทั่วโลก (จากคอมพิวเตอร์เครื่องอื่นที่เชื่อมต่อกับอินเทอร์เน็ต))

ฉันบอกว่าฉันต้องเปิดพอร์ต 80 ฉันทำมัน (ตามวิธีที่อธิบายไว้ที่นี่ ) แต่มันไม่ได้แก้ปัญหา

ก่อนอื่นฉันต้องการตรวจสอบพอร์ตที่เปิดอยู่และพอร์ตใดที่ไม่ใช่ ตัวอย่างเช่นฉันไม่แน่ใจว่าพอร์ต 80 ของฉันถูกปิดก่อนที่ฉันจะพยายามเปิด ฉันยังไม่แน่ใจว่าจะเปิดหลังจากฉันพยายามเปิด

ฉันพยายามเรียกใช้เว็บเซิร์ฟเวอร์ที่เรียบง่ายเขียนด้วย Python สำหรับสิ่งที่ฉันใช้พอร์ต 81 และใช้งานได้! และฉันไม่ได้พยายามเปิดพอร์ต 81 ดังนั้นมันจึงถูกเปิดโดยค่าเริ่มต้น ดังนั้นหากเปิด 81 ตามค่าเริ่มต้นทำไม 80 ถึงไม่ใช่? หรือมันคืออะไร?

ข้อมูลเพิ่มเติม:
1. ในไฟล์ httpd.conf ของฉันฉันมี "Listen 80"
2. ไซต์นี้บอกฉันว่าพอร์ต 80 บนคอมพิวเตอร์ของฉันเปิดอยู่
3. ฉันจะได้รับการตอบสนองที่แตกต่างกันถ้าฉันพยายามที่http: // MYIP: 80และhttp: // MYIP: 81 ในกรณีที่เบราว์เซอร์ (Chrome) เขียนให้ฉันว่าลิงก์เสียหาย ในกรณีแรกที่ฉันได้รับ: ห้ามคุณไม่ได้รับอนุญาตให้เข้าถึง / บนเซิร์ฟเวอร์นี้
4. IE เขียนว่า "เว็บไซต์ปฏิเสธที่จะแสดงหน้าเว็บนี้"


3
หากกรณีแรกแจ้งว่า "ต้องห้าม" ไดเรกทอรีรากหรือโฮสต์เสมือนของคุณไม่ได้ตั้งค่าอย่างถูกต้อง
Urda

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

คำตอบ:


16

หากคุณเป็นเพียงการตรวจสอบพอร์ตของคุณจากด้านนอก ใช้เครื่องมือนี้:

http://www.yougetsignal.com/tools/open-ports/

มันจะพยายามเชื่อมต่อกับที่อยู่ IP ของคุณบนพอร์ตเฉพาะและแจ้งให้คุณทราบว่ามีการเปิดหรือปิดกับโลกภายนอก

ปัญหาท้องถิ่นด้วยหรือไม่ ฟังดูเหมือนไฟร์วอลล์ Windows 7 กำลังตัดคุณอยู่ เพิ่มข้อยกเว้นด้วยบทช่วยสอนนี้ ...

http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html


ฉันจะตรวจสอบพอร์ตของฉันกับyougetsignal.com/tools/open-ports ไซต์นี้เขียนว่าพอร์ต 80 ของฉันเปิดอยู่ (ขณะที่ 79 และ 81 ปิด)
โรมัน

คุณตรวจสอบข้อยกเว้นไฟร์วอลล์ Windows 7 ของคุณแล้วหรือยัง มันจะอธิบายว่าทำไมคุณสามารถเข้าถึงผ่านทางlocalhostและไม่ใช่จากคอมพิวเตอร์เครื่องอื่น
Urda

Urda ผมได้เปิดพอร์ต 80 ในลักษณะนี้maximumpcguides.com/windows-7/... ดังนั้นควรเปิดสำหรับ IP ทั้งหมด ยิ่งกว่านั้นเว็บไซต์ที่คุณให้ฉันบอกว่าพอร์ต 80 เปิดอยู่
โรมัน

1
หากกรณีแรกแจ้งว่า "ต้องห้าม" ไดเรกทอรีรากหรือโฮสต์เสมือนของคุณไม่ได้ตั้งค่าอย่างถูกต้องในกรณีส่วนใหญ่ คุณได้รับลิงก์ที่เสียหายเนื่องจาก 81 ไม่สามารถแก้ไขได้
Urda

1
@ Kirk มันเป็นเว็บไซต์ที่ยอดเยี่ยมที่สุด!
Urda

13

การรันnetstat -a -nหรือss -a -nจากพรอมต์คำสั่งจะแสดงการเชื่อมต่อเครือข่ายทั้งหมดที่เปิดอยู่และพอร์ตการฟังในเครื่องของคุณ 0.0.0.0:80จะหมายถึงว่ากำลังรับฟังพอร์ต80ของที่อยู่ IP ทั้งหมด (localhost และที่อยู่ IP สาธารณะ / ส่วนตัวของคุณ) ซึ่ง127.0.0.1:80จะหมายถึงว่ากำลังรับฟังเฉพาะที่ localhost คุณสามารถเพิ่ม-bคำสั่งและมันจะแสดงว่าปฏิบัติการที่ใช้พอร์ตนั้น คุณสามารถรับข้อมูลเดียวกันได้โดยใช้การตรวจสอบทรัพยากรใน Windows 7 ภายใต้ส่วนการฟังพอร์ตของแท็บเครือข่าย


5

หากคุณต้องการดูว่าเปิดจากเซิร์ฟเวอร์อื่นคุณสามารถทำได้telnet serverName 80และดูว่าเปิดเซสชันหรือไม่ ถ้าไม่เช่นนั้นเซิร์ฟเวอร์จะไม่ฟังหรือพอร์ตถูกบล็อกโดยไฟร์วอลล์

หากเปิดขึ้นมาและปิดทันที Windows อย่างน้อย 2003 ซอฟต์แวร์ (เช่น Exchange) อาจไม่ได้รับการกำหนดค่าให้ฟังบนอินเทอร์เฟซหรือ IP เฉพาะนั้น แต่กำลังฟังพอร์ตอื่น ฉันได้เห็น IIS ทำงานในลักษณะนี้เพราะมันโง่ Apache อาจไม่


2

คุณเขียน:

ในกรณีแรกที่ฉันได้รับ: ห้ามคุณไม่ได้รับอนุญาตให้เข้าถึง / บนเซิร์ฟเวอร์นี้

แม้ว่าสิ่งนี้อาจฟังดูแปลก แต่คุณไม่มีปัญหากับพอร์ตที่เปิด (แต่ด้วย Apache config)

ข้อความ "ต้องห้าม" นั้นมาจากเซิร์ฟเวอร์ Apache ของคุณ ก็หมายความว่าเว็บเซิร์ฟเวอร์ของคุณคือสามารถเข้าถึงได้จากอินเทอร์เน็ต

คุณต้องกำหนดค่า Apache ให้อนุญาตการให้บริการกับโฮสต์ทั้งหมดมิฉะนั้นพวกเขาจะได้รับหน้า "ต้องห้าม" IIRC, Apache ถูกตั้งค่าให้อนุญาตเฉพาะการร้องขอจากเครื่องคอมพิวเตอร์เท่านั้น

บางที่ในการกำหนดค่า Apache ของคุณอาจมีส่วนเช่นนี้ (ไดเรกทอรีจริงอาจแตกต่างกัน):

<Directory "/home/piskvor/www">
    Allow from 127.0.0.1
    Deny from all
(...)

หากคุณต้องการที่จะอนุญาตให้คอมพิวเตอร์ใด ๆ เพื่อดูหน้าเว็บของคุณคุณจะต้องเปลี่ยนไปDeny from all ดูเอกสารโมดูลการเข้าถึงสำหรับข้อมูลเพิ่มเติมAllow from all


1

หากต้องการดูพอร์ตที่เปิดอยู่คุณควรใช้ nmap เนื่องจากมีรุ่น Windows: http://nmap.org/dist/nmap-5.21-setup.exe

ยังไม่พอถ้าคุณเห็นพอร์ต 80 ของคุณเปิดจาก localhost - อาจมีบางอย่างที่ขวางทางถ้าคุณลองจากที่อื่นนั่นคือเหตุผลที่ฉันแนะนำ nmap

จากไคลเอนต์คุณพิมพ์: nmap ip-of-your-server


1

หากคุณต้องการทดสอบสิ่งนี้บนเครือข่ายท้องถิ่นของคุณให้ไปดาวน์โหลดnmapหากคุณต้องการดูสภาพอากาศพอร์ตสามารถเข้าถึงได้จากโลกภายนอกให้ไปสแกนที่ https://www.grc.com/x/ne.dll?bh0bkyd2


0

พอร์ตเซิร์ฟเวอร์สามารถผูกกับที่อยู่ IP เดียวหรือทุกที่อยู่ IP ที่มีอยู่ ดูเหมือนว่าการติดตั้ง Apache ของคุณจะถูกผูกติดกับ 127.0.0.1 เท่านั้นและคุณจำเป็นต้องตั้งค่าให้ผูกกับ * ใน httpd.conf ของคุณ (ในของ Apache ไดเรกทอรี conf) มองหาเส้นเหมือนและเปลี่ยนเป็นListen localhost:80Listen 80


1
ฉันพบไฟล์ httpd.conf ของฉัน ในไฟล์ฉันมี "ฟัง 80"
โรมัน

0

telnet <host> <port>เป็นเพื่อนของคุณ. มันมีข้อดีของการติดตั้งบนคอมพิวเตอร์ทุกเครื่องในโลก

แก้ไขหลังจากอ่านคำถามอีกครั้ง:

นี่คือเคล็ดลับการวินิจฉัยที่มีประโยชน์

  1. หากคุณสามารถเข้าถึงไซต์ผ่าน localhost แต่ไม่ใช่ผ่านทาง IP ในพื้นที่ของคุณ (192.168. *) จากโฮสต์อื่น ๆ ในเครือข่ายของคุณอาจเป็นปัญหาไฟร์วอลล์ windows

  2. หากคุณสามารถเข้าถึงไซต์จากเครื่องภายในไซต์อื่น ๆ แต่ไม่ใช่จากอินเทอร์เน็ตสู่ IP สาธารณะของคุณนั่นเป็นปัญหาการกำหนดค่าเราเตอร์ / การส่งต่อพอร์ต


0

จากประเภทพรอมต์คำสั่ง:

netstat -ano, look for 0.0.0.0:80 

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


0

หากคุณอยู่ใน Windows ใช้SysInternals TCPView มันสามารถบอกคุณได้ว่าโปรแกรมใดใช้พอร์ตอะไร

Screenshto


ขอบคุณ Dio Phung ยูทิลิตี้ windows นั้นมีประโยชน์จริงๆ

-2

ในคำสั่ง DOS:

C:\Windows\system32>netstat -a -b

使用中連線

  協定   本機位址               外部位址               狀態
  TCP    0.0.0.0:80             801781-N1:0            LISTENING     [Skype.exe]
  TCP    0.0.0.0:135            801781-N1:0            LISTENING      RpcSs      [svchost.exe]
  TCP    0.0.0.0:443            801781-N1:0            LISTENING     [Skype.exe]
...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.