2016-02-23 7 views
6

まずGCEインターフェイスではなく、私の目的を達成するために純粋にgcloudコマンドを使用したいのですが、GUIを使って回答を提供しないでください!VMインスタンスでhttpトラフィックを許可するgcloudコマンドとは何ですか?

VMインスタンスに接続されたディスクからイメージを作成しました。そのためには、画像を作成するためのGoogleドキュメントごとにインスタンスを削除する必要がありました。その後、イメージを使用してインスタンスを再作成しました。

httpとhttpsトラフィックがインスタンスで無効になっていることを除いて、ほぼすべてがそのプロセスから完全に機能しているようです。私はもはやVM上でホストされているWebサイトを参照することはできません。もうドメインにpingを実行しても応答が得られません。

私はGCEのGUIで見て(見ているだけ - !何も変更しない)私は、「HTTPトラフィックを許可する」とインスタンスに対してチェックされない「トラフィックは、HTTPSを許可する」のチェックボックスことがわかります。それは私の問題に関連している必要があるようです。

サーバ(ipTables)上のファイアウォールルールと、そのVMに関連付けられているGoogleネットワーク上のファイアウォールルールを確認しました。これらのいずれかに間違いはありません(VMは確かにそのネットワークに割り当てられています)。サーバー上でtcpdumpを使用してポート80でリッスンし、ドメインを参照すると、要求がサーバーに届いていることがわかるため、受信ファイアウォールによってブロックされません。私は明白にApacheを再起動しましたが、それが問題ではないことを確認してください。

代わりに、送信ベースでポート80と443のブロックを解除する必要がありますか?これはSELinuxのことですか?イメージはディスク上のものを正確に表す必要があるため、そうではありません。 GCE側になければなりません、彼らは、Googleのネットワーク上のサーバーやファイアウォールルールのiptablesのを編集していない場合は...

は、これらのチェックボックスは、実際のインスタンスのために何をしますかと思われますか?これらのスイッチを設定するgcloudコマンドとは何か、またはインスタンス作成コマンドで理想的に指定しますか?

答えて

13

解決済み。舞台裏で何が起こっているのか完全に理解していませんが、これに対する解決策には、VMインスタンスとネットワーク上の孤立したFirerulesが使用する「タグ」を使用する必要があります。この時点では、これはhttpとhttpsにのみ関連しています。この追加の部分がなければ、ネットワークとVM上で開いている他のポートも機能しているようです。

あなたのファイアウォールルールを表示した場合、あなたはおそらく、ポート80と443のルールは、それぞれのタグ「HTTPサーバ」と「HTTPSサーバ」を持って表示されます。そうでない場合は、それらのタグ(または選択した他のタグ)を追加する必要があります。インスタンスには、それらに追加されたタグが必要であることが分かります。こののgcloudコマンドを使用して、既存のVMインスタンスにタグを追加するには

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

インスタンスの作成時にタグを追加するには、あなたの文の中でそのフラグを含める:

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

あなたはGCEのGUIで見れば、あなたはそれらが「HTTPトラフィックを許可する」とチェックボックスのことをやった後にチェックされている「トラフィックは、HTTPSを許可する」を参照してくださいます。要求と応答は、期待どおりポート80と443を横切って流れます。

関連する問題