Windows Firewall เปิดพอร์ต 80 แต่ป้องกัน Apache ไม่ให้ทำการเชื่อมต่อ


11

ฉันมีเครื่อง Windows 7 ที่ให้บริการหน้าเว็บ (แต่สำคัญ!) น้อยมาก ฉันมีข้อยกเว้นที่อนุญาตให้ทราฟฟิกใด ๆ ไปยังพอร์ต 80 * แต่ Apache 2.2 ยังคงไม่สามารถให้บริการหน้าเว็บได้ (แม้ว่าฉันจะเห็นพวกเขาจากเครื่องเอง) หากฉันปิดการใช้งาน Windows Firewall โดยสิ้นเชิงฉันสามารถ ping กล่องและโหลดหน้าเว็บได้

ฉันต้องกำหนดค่าอะไรอีกเพื่อให้ Apache สามารถทำงานได้

* อันที่จริงสิ่งเดียวกันเกิดขึ้นแม้ว่าฉันจะเปลี่ยนข้อยกเว้นเป็น "พอร์ตทั้งหมด" แทนที่จะเป็นเพียง 80


3
1. หยุดใช้ ping เป็นเครื่องมือทดสอบบริการ ไม่ว่าคุณจะสามารถปิงโฮสต์หรือไม่เกี่ยวข้องกับว่าเว็บไซต์กำลังทำงานและเข้าถึงได้หรือไม่ 2. โปรไฟล์เครือข่ายใดที่ทำงานอยู่ในไฟร์วอลล์ Windows และโปรไฟล์เครือข่ายใดที่คุณผูกไว้กับกฎ
joeqwerty

@ joeqwerty: ฉันพูดถึง ping เพียงเพื่อให้ข้อมูลเพิ่มเติม
ชาร์ลส์

คำตอบ:


10

ไม่ว่าพอร์ต 80 จะเปิดในไฟร์วอลล์ของคุณหรือไม่ไม่ได้หมายความว่า ping จะเริ่มทำงานหาก Apache ทำงานอย่างถูกต้อง Ping ใช้ ICMP ซึ่งเป็นโปรโตคอลของตัวเองที่จำเป็นต้องเปิดในไฟร์วอลล์เพื่อรับการตอบกลับ ping จากเครื่องของคุณ ดังนั้นอย่าพึ่งพา ping เพื่อตรวจสอบว่าการกำหนดค่า apache / การกำหนดค่าไฟร์วอลล์ของคุณใช้งานได้หรือไม่

ในการตอบสนองต่อกฎไฟร์วอลล์ของคุณสำหรับ tcp 80 โปรดไปที่คุณสมบัติของกฎและตรวจสอบว่ามีการทำเครื่องหมายในช่องทั้ง 3 (โดเมน, ส่วนตัว, สาธารณะ) และหากไม่ได้ตรวจสอบ ป้อนคำอธิบายรูปภาพที่นี่

นี่คือ HOWTO พร้อมขั้นตอนที่แน่นอนที่คุณต้องทำเพื่อเปิดพอร์ต 80 บน Windows 7: ลิงก์

ปรับปรุง:

โปรดตรวจสอบว่าคุณไม่ได้บล็อกกระบวนการ apache ด้วย Windows Firewall หรือไม่
1. ไปที่Control Panel
2. เลือกระบบและความปลอดภัย
3. ในส่วนของ Windows Firewall เลือกอนุญาตให้โปรแกรมผ่านไฟร์วอลล์ Windows
ป้อนคำอธิบายรูปภาพที่นี่
4. การยกเลิกการทำเครื่องหมายในช่องทางด้านซ้ายของชื่อแอปพลิเคชันไม่อนุญาตให้เข้าถึงทรัพยากรเครือข่ายในขณะที่ตรวจสอบว่าอนุญาตให้เข้าถึงได้
ป้อนคำอธิบายรูปภาพที่นี่
หาก Apache ไม่อยู่ในรายการคุณสามารถคลิกปุ่มอนุญาตโปรแกรมอื่น ...เพื่อเพิ่มและทำเครื่องหมายในช่องภายใต้หน้าหลัก / ที่ทำงานและสาธารณะ


ทั้งสามถูกตรวจสอบ เว็บไซต์จะไม่เปิดในเบราว์เซอร์ (ยกเว้นบนเซิร์ฟเวอร์เอง)
ชาร์ลส์

1
@Charles: ในกรณีนี้ให้ทำ 5 สิ่งต่อไปนี้: 1. เปิดใช้งานการบันทึกไฟร์วอลล์บนเครื่อง Windows 7 2. ติดตั้งโปรแกรมจับแพ็คเก็ตบนเครื่อง Windows 7 3. เริ่มการจับภาพ 4. พยายามเรียกดูเว็บไซต์จากเครื่องอื่น 5. หยุดการดักจับและตรวจสอบและบันทึกไฟร์วอลล์เพื่อหาเบาะแสว่าเกิดอะไรขึ้น
joeqwerty

คุณแน่ใจหรือว่าคุณได้สร้างกฎในInbound Rulesบานหน้าต่างด้านซ้าย
George Tasioulis

@Charles โปรดตรวจสอบการอัปเดตของฉัน
George Tasioulis

1
@ George: แค่นั้นแหละ การอนุญาต "Monitor Apache Server" (นอกเหนือจากข้อยกเว้นพอร์ต 80) ทำให้ใช้งานได้
ชาร์ลส์


1

หากการปิดใช้งานไฟร์วอลล์สามารถแก้ไขปัญหาทั้งหมดได้ แต่กฎข้อยกเว้นของคุณไม่ได้ทำเช่นนั้นฉันจะกล้าพูดว่าการยกเว้นของคุณเกิดข้อผิดพลาด

ตาม Microsoftขั้นตอนแรกในการแก้ไขปัญหาไฟร์วอลล์คือการตรวจสอบโปรไฟล์ที่ใช้งานอยู่ (สาธารณะส่วนตัวหรือโดเมน)

ขั้นตอนแรกในการแก้ไขปัญหา Windows Firewall คือการตรวจสอบโปรไฟล์ที่ใช้งานอยู่ Windows Firewall พร้อม Advanced Security เป็นแอปพลิเคชั่นที่ทราบตำแหน่งเครือข่าย เมื่อตำแหน่งเครือข่ายที่คอมพิวเตอร์เชื่อมต่ออยู่นั้นมีการเปลี่ยนแปลงส่วนกำหนดค่า Windows Firewall จะเปลี่ยนไป โปรไฟล์อธิบายการตั้งค่าและกฎ Windows Firewall ที่ใช้ขึ้นอยู่กับประเภทตำแหน่งเครือข่ายของการเชื่อมต่อเครือข่ายที่ใช้งานอยู่

ดังนั้นสิ่งหนึ่งที่เป็นไปได้ก็คือคุณทำถูกกฎ แต่ผิดรูปแบบ

หวังว่าจะช่วย


คิดดี +1 นี่ไม่ใช่ปัญหาของฉัน แต่ฉันเห็นคนที่ทำผิดพลาด
ชาร์ลส์

0

httpd.conf ของคุณอาจ จำกัด ลูกค้าใน localhost หรือเครือข่ายย่อยในท้องถิ่นเท่านั้น

ในชุด httpd.conf ของคุณ:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

และอาจเป็นเช่นนี้:

<Directory "E:/Apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Allow from all
</Directory>

ไม่ใช่ปัญหาเพราะถ้าฉันปิดไฟร์วอลล์ปัญหาจะหายไป (นอกจากนี้ก่อนที่จะอัปเกรดเป็น Win7 httpd.conf เดียวกันก็ใช้งานได้ดีมานานหลายปี)
Charles

0

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

  1. ไปที่การตั้งค่าไฟร์วอลล์ในแผงควบคุม
  2. คลิกที่การตั้งค่าขั้นสูง
  3. คลิกที่กฎขาเข้าและเพิ่มกฎใหม่
  4. เลือก 'ประเภทของกฎ' ถึงพอร์ต
  5. อนุญาตให้ใช้สำหรับโปรแกรมทั้งหมด
  6. อนุญาตให้ใช้กฎนี้กับทุกโปรไฟล์เช่นโดเมน, ส่วนตัว, สาธารณะ
  7. ตั้งชื่อให้กฎนี้

แค่นั้นแหละ. ขณะนี้พีซีและโทรศัพท์มือถือเครื่องอื่นที่เชื่อมต่ออยู่ในเครือข่ายเดียวกันสามารถเข้าถึงไซต์ท้องถิ่นได้ ให้เริ่มการพัฒนา

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