Tường lửa Windows có cổng 80 mở nhưng ngăn Apache thực hiện kết nối


11

Tôi có một máy Windows 7 phục vụ rất ít trang (nhưng quan trọng!). Tôi có một ngoại lệ cho phép mọi lưu lượng truy cập vào cổng 80 *, nhưng Apache 2.2 vẫn không thể phục vụ các trang (mặc dù tôi có thể nhìn thấy chúng từ chính máy). Tuy nhiên, nếu tôi vô hiệu hóa hoàn toàn Tường lửa Windows, tôi có thể ping hộp và tải trang.

Tôi cần gì khác để cấu hình để Apache có thể thực hiện công việc của mình?

* Trên thực tế, điều tương tự xảy ra ngay cả khi tôi thay đổi ngoại lệ thành "tất cả các cổng" thay vì chỉ 80.


3
1. Ngừng sử dụng ping như một công cụ kiểm tra dịch vụ. Việc bạn có thể ping máy chủ hay không không liên quan đến việc trang web có chạy hay không. 2. Cấu hình mạng nào đang hoạt động trong tường lửa Windows và cấu hình mạng nào là quy tắc của bạn bị ràng buộc?
joeqwerty

@joeqwerty: Tôi chỉ đề cập đến ping để cung cấp thêm thông tin.
Charles

Câu trả lời:


10

Dù cổng 80 có mở trên tường lửa của bạn hay không, điều đó không có nghĩa là ping sẽ bắt đầu hoạt động nếu Apache chạy đúng. Ping sử dụng ICMP, một giao thức của riêng nó cần được mở trên tường lửa để nhận phản hồi ping từ máy của bạn. Vì vậy, đừng tin vào ping để xác minh xem cấu hình tường lửa / cấu hình apache của bạn có hoạt động không.

Để đáp ứng quy tắc tường lửa của bạn cho tcp 80, vui lòng truy cập các thuộc tính của quy tắc của bạn và kiểm tra xem tất cả 3 hộp kiểm (Tên miền, Riêng tư, Công khai) đã được chọn chưa và nếu không kiểm tra chúng. nhập mô tả hình ảnh ở đây

Đây là một HƯỚNG DẪN với các bước chính xác bạn cần thực hiện để mở cổng 80 trên Windows 7: link

Cập nhật:

Vui lòng kiểm tra xem bạn có đang chặn quá trình apache bằng Windows Firewall không.
1. Chuyển đến Bảng điều khiển
2. Chọn Hệ thống và Bảo mật
3. Trong phần Tường lửa của Windows, chọn Cho phép chương trình qua Tường lửa Windows .
nhập mô tả hình ảnh ở đây
4. Bỏ chọn hộp bên trái của tên ứng dụng sẽ không cho phép nó truy cập tài nguyên mạng, trong khi kiểm tra nó cho phép truy cập.
nhập mô tả hình ảnh ở đây
Nếu Apache không được liệt kê, bạn có thể nhấp vào nút Cho phép chương trình khác để thêm nó và sau đó chọn các hộp bên dưới Trang chủ / Công việc và Công cộng.


Cả ba đều bị đánh cắp. Trang web sẽ không mở trong trình duyệt (ngoại trừ trên chính máy chủ).
Charles

1
@Charles: Trong trường hợp đó, hãy thực hiện 5 điều sau: 1. Kích hoạt tính năng đăng nhập tường lửa trên máy Windows 7. 2. Cài đặt chương trình chụp gói trên máy Windows 7. 3. Bắt đầu chụp. 4. Cố gắng duyệt trang web từ một máy khác. 5. Dừng chụp và kiểm tra nó và nhật ký tường lửa để tìm manh mối về những gì đang xảy ra.
joeqwerty

Bạn có chắc chắn đã tạo quy tắc trong Inbound Ruleskhung bên trái?
George Tasioulis

@Charles vui lòng kiểm tra cập nhật của tôi.
George Tasioulis

1
@George: Thế thôi. Việc cho phép "Giám sát máy chủ Apache" (ngoài cổng 80 ngoại lệ) đã làm cho nó hoạt động.
Charles

2

Kiểm tra dịch vụ "Chi nhánh bộ đệm" và dừng nó nếu chạy.


1

Nếu vô hiệu hóa tường lửa hoàn toàn giải quyết vấn đề, nhưng các quy tắc ngoại lệ của bạn thì không, tôi sẽ mạo hiểm nói rằng các ngoại lệ của bạn bị lỗi.

Theo Microsoft , bước đầu tiên trong việc khắc phục sự cố tường lửa là xác minh hồ sơ hoạt động (Công khai, Riêng tư hoặc Miền).

Bước đầu tiên trong việc khắc phục sự cố Tường lửa của Windows là xác minh cấu hình nào đang hoạt động. Tường lửa Windows với Advanced Security là một ứng dụng nhận biết vị trí mạng. Khi các vị trí mạng mà máy tính được kết nối thay đổi, cấu hình Tường lửa của Windows sẽ thay đổi. Các cấu hình mô tả các cài đặt và quy tắc Tường lửa của Windows được áp dụng tùy thuộc vào loại vị trí mạng của các kết nối mạng đang hoạt động.

Vì vậy, một khả năng là bạn đã thực hiện đúng quy tắc nhưng trong hồ sơ sai.

Mong rằng sẽ giúp.


Suy nghĩ tốt, +1. Đây không phải là vấn đề của tôi nhưng tôi có thể thấy ai đó mắc lỗi này.
Charles

0

Httpd.conf của bạn có lẽ chỉ giới hạn cho các máy khách trên localhost hoặc mạng con cục bộ.

Trong bộ httpd.conf của bạn:

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

và cũng có thể là cái này:

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

Không phải vấn đề, bởi vì nếu tôi tắt tường lửa thì vấn đề sẽ biến mất. (Ngoài ra, trước khi nâng cấp lên Win7, cùng một httpd.conf đã hoạt động tốt trong nhiều năm.)
Charles

0

Tường lửa của bạn không cho phép bất kỳ kết nối mới nào để chia sẻ thông tin mà không có sự đồng ý của bạn. Điều duy nhất cần làm là đồng ý với tường lửa của bạn.

  1. Chuyển đến cài đặt Tường lửa trong Bảng điều khiển
  2. Nhấp vào Cài đặt nâng cao
  3. Nhấp vào Quy tắc trong nước và Thêm quy tắc mới.
  4. Chọn 'Loại quy tắc' vào Cổng.
  5. Cho phép điều này cho tất cả các chương trình.
  6. Cho phép quy tắc này được áp dụng trên tất cả Hồ sơ, ví dụ như Miền, Riêng tư, Công khai.
  7. Đặt quy tắc này bất kỳ tên.

Đó là nó. Bây giờ một PC và điện thoại di động khác được kết nối trên cùng một mạng có thể truy cập các trang web cục bộ. Hãy bắt đầu phát triển.

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.