2016-02-23 16 views
6

Trước tiên, tôi muốn sử dụng các lệnh gcloud thuần túy để đạt được mục tiêu của mình - KHÔNG phải giao diện GCE - vì vậy vui lòng không cung cấp câu trả lời bằng GUI!Lệnh gcloud để cho phép lưu lượng truy cập http trên một cá thể VM là gì? (Không phải tạo quy tắc tường lửa!)

Tôi đã tạo một hình ảnh từ một đĩa được gắn với một cá thể VM. Để làm như vậy, tôi phải xóa cá thể, theo tài liệu của Google để tạo hình ảnh. Sau đó, tôi tạo lại ví dụ của mình bằng hình ảnh.

Hầu hết mọi thứ dường như đã hoạt động hoàn hảo từ quy trình đó ngoại trừ lưu lượng truy cập http và https hiện bị tắt trong trường hợp! Tôi không còn có thể duyệt đến trang web được lưu trữ trên máy ảo. Tôi cũng không thể nhận được phản hồi bằng cách ping miền nữa.

Khi tôi nhìn vào GCE gui (chỉ tìm kiếm - không sửa đổi bất cứ điều gì!) Tôi có thể thấy rằng các hộp kiểm cho "Cho phép lưu lượng truy cập http" và "Cho phép lưu lượng truy cập https" không được chọn cho ví dụ. Có vẻ như nó phải liên quan đến vấn đề của tôi.

Tôi đã kiểm tra các quy tắc tường lửa trên máy chủ (ipTables) và trên mạng Google được phân phối với máy ảo. Không có gì sai với một trong số đó (và máy ảo chắc chắn được kết hợp với mạng đó). Nếu tôi nghe trên cổng 80 bằng cách sử dụng tcpdump trên máy chủ và tôi duyệt đến miền của mình, tôi có thể thấy các yêu cầu đang đến máy chủ, do đó chúng không bị chặn bởi tường lửa đến. Tôi cũng đã khởi động lại Apache, chỉ cần chắc chắn rằng đó không phải là vấn đề.

Vì vậy, có điều gì tôi cần làm để bỏ chặn cổng 80 và 443 trên cơ sở đi thay thế không? Đây có phải là một điều SELinux không? Kể từ khi hình ảnh nên đại diện chính xác những gì đã được trên đĩa nó không nên. Có vẻ như điều này phải ở phía bên GCE ...

Các hộp kiểm đó thực sự làm gì cho cá thể nếu chúng không chỉnh sửa iptables trên máy chủ hoặc các quy tắc tường lửa trên mạng Google? Lệnh gcloud để thiết lập các switch đó là gì, hoặc lý tưởng chỉ rõ rằng với một lệnh tạo cá thể?

Trả lời

13

Đã giải quyết. Tôi không hoàn toàn hiểu những gì đang xảy ra đằng sau hậu trường, nhưng giải pháp cho điều này đòi hỏi phải sử dụng "thẻ" mà assoicate firerules trên mạng với trường hợp VM. Theo tôi có thể thấy tại thời điểm này, điều này chỉ thích hợp cho http và https. Các cổng khác được mở trên mạng và VM dường như hoạt động mà không có phần bổ sung này.

Nếu bạn xem quy tắc tường lửa của mình, có thể bạn sẽ thấy các quy tắc cổng 80 và 443 có các thẻ "http-server" và "https-server" tương ứng. Nếu không, bạn sẽ cần phải thêm những thẻ đó (hoặc các thẻ khác mà bạn chọn). Hóa ra trường hợp cũng cần các thẻ được thêm vào nó.

Để thêm thẻ vào một thể hiện VM hiện có, sử dụng lệnh gcloud này:

gcloud compute instances add-tags [YOUR_INSTANCE_NAME] --tags http-server,https-server 

Để thêm thẻ tại thời điểm thành lập dụ, bao gồm cờ mà trong bản Tuyên Bố của bạn:

gcloud compute instances create [YOUR_INSTANCE_NAME] --tags http-server,https-server 

Nếu bạn nhìn vào guồng GCE, bạn sẽ thấy các hộp kiểm "Cho phép lưu lượng truy cập http" và "Cho phép lưu lượng truy cập https" được chọn sau khi thực hiện điều đó. Các yêu cầu và phản hồi sau đó chạy qua các cổng 80 và 443 như mong đợi.

Các vấn đề liên quan