web-dev-qa-db-ja.com

Google Compute Engineで9090などの特定のポートを開く方法

2つのGoogle Compute Engineインスタンスがあり、両方のインスタンスでポート9090を開きたいです。ファイアウォールのルールをいくつか追加する必要があると思います。

どうしたらいいですか。

159
Subhradip Bose

必要がある:

  1. Cloud.google.comにアクセスしてください。

  2. 私のコンソールに行く

  3. プロジェクトを選択してください

  4. [ネットワーキング]> [VPCネットワーク]を選択します。

  5. 「ファイアウォールルール」を選択してください

  6. 「ファイアウォールルールを作成する」を選択してください

  7. ルールを適用してVMインスタンスを選択するには、[ターゲット]> [指定したターゲットタグ]を選択し、[ターゲットタグ]にタグの名前を入力します。このタグは、新しいファイアウォールルールをどのインスタンスにも適用するために使用されます。次に、インスタンスにネットワークタグが適用されていることを確認します。

  8. ポート9090への着信TCP接続を許可するには、[プロトコルとポート]にtcp:9090と入力します。

  9. 作成をクリック

これがお役に立てば幸いです。

更新docs を参照してルールをカスタマイズしてください。

290
Carlos Rojas

これは、この質問に答えるためのコマンドラインアプローチです。

gcloud compute firewall-rules create <rule-name> --allow tcp:9090 --source-tags=<list-of-your-instances-names> --source-ranges=0.0.0.0/0 --description="<your-description-here>"

これにより、指定したインスタンスのポート9090が開きます。 --source-tags--source-rangesを省略すると、すべてのインスタンスにルールが適用されます。詳細は Gcloudのドキュメントfirewall-rule createコマンドマニュアル にあります。

これまでの答えは素晴らしいですが 、Googleではgcloudコマンドの代わりに新しいgcutilコマンドを使用することをお勧めします

シモンズ:グーグルのファイアーウォールルールを理解するために、gcloud compute firewall-rules listを実行して、あなたのファイアーウォールルールをすべて見てください

69
modulitos

インスタンスへのtcp:9090へのインバウンドアクセスを開くためのファイアウォールルールを追加する必要があります。 2つ以上のインスタンスがあり、それら2つに対して9090だけを開きたい場合は、それら2つのインスタンスが共有するタグがあることを確認する必要があります。コンソールまたはコマンドラインからタグを追加または更新できます。 GUIはsetinstancetagsでread-modify-writeサイクルを処理するので、必要に応じてGUIを使用することをお勧めします。

すべてのインスタンスに対してポート9090を開く場合は、次のようなファイアウォールルールを作成できます。

gcutil addfirewall allow-9090 --allowed=tcp:9090

これはあなたのすべてのインスタンスに適用されます。

アプリケーションにサービスを提供している2つのインスタンスに対してポート9090だけを開きたい場合は、それらにmy-appのようなタグがあることを確認してから、次のようにファイアウォールを追加します。

gcutil addfirewall my-app-9090 --allowed=tcp:9090 --target_tags=my-app

GCEでのファイアウォールの作成と管理はこちら についてもっと読むことができます。

9
E. Anderson

私はあなたと同じ問題を抱えていたので、@ CarlosRojasの指示に従って多少の違いはありますが解決することができました。新しいファイアウォールルールを作成する代わりに、私はdefault-allow-internalを編集してどこからのトラフィックも受け入れるようにしました。新しいルールを作成しても何の違いもないからです。

7
Nevershowmyface

この質問は古く、 Carlos Rojas の答えは良いですが、私はポートを開こうとする際に心に留めておくべきことをいくつか投稿すべきだと思います。

最初に覚えておくべきことは、Networking sectionはVPC Networkingに改名されたということです。ですから、Firewall Rulesオプションがどこにあるのかを知りたいのであれば、VPC Networkingを見てください。

2つ目は、Linux VMでポートを開こうとしている場合は、絶対に ufw コマンドを使用してポートを開こうとしないでください。私はそれを使ってみたがVMへのsshアクセスを失った。だから私の過ちを繰り返さないでください。

3つ目は、Windows VMでポートを開こうとしている場合、VM内にもファイアウォールルールを作成する必要があるということです。 Windowsファイアウォール に沿ってとVPCネットワーキング - >ファイアウォールルール。 Linux VMとは異なり、ポートは両方のファイアウォールルールで開く必要があります。そのため、VMの外部からポートにアクセスできない場合は、GCPコンソールとWindowsファイアウォールの両方でポートを開いているかどうかを確認してください。

最後の(明白な)ことは、不必要にポートを開かないでください。不要になったら、ポートを閉じます。

この答えが役に立つことを願っています。

6
noob

ファイアウォールルールを作成する

GCPのファイアウォールルールに慣れていない場合は、ファイアウォールルールコンポーネント[1]を確認してください。ファイアウォールルールはネットワークレベルで定義され、それらが作成されたネットワークにのみ適用されます。ただし、それぞれに付ける名前はプロジェクトごとに異なる必要があります。

クラウドコンソールの場合:

  1. Google Cloud Platform Consoleの[ファイアウォールルール]ページに移動します。
  2. [ファイアウォールルールを作成する]をクリックします。
  3. ファイアウォールルールの名前を入力してください。この名前はプロジェクトに対して一意である必要があります。
  4. ファイアウォールルールが実装されるネットワークを指定します。
  5. ルールの優先順位を指定してください。数字が小さいほど、優先順位が高くなります。
  6. トラフィックの方向には、入力または出力を選択します。
  7. アクションが一致した場合は、許可または拒否を選択します。
  8. ルールのターゲットを指定してください。

    • ネットワーク内のすべてのインスタンスにルールを適用する場合は、[ネットワーク内のすべてのインスタンス]を選択します。
    • ネットワーク(ターゲット)タグで選択したインスタンスにルールを適用する場合は、[特定のターゲットタグ]を選択してから、ルールを適用するタグを[ターゲットタグ]フィールドに入力します。
    • 関連付けられたサービスアカウントでインスタンスの選択にルールを適用する場合は、[指定されたサービスアカウント]を選択し、サービスアカウントが現在のプロジェクト内にあるか、サービスアカウントスコープの下にあるかを指定します。アカウントフィールド.
  9. 入力規則の場合は、Sourceフィルタを指定します。

    • IP範囲を選択し、CIDRブロックをSource IP範囲フィールドに入力して、着信トラフィックの送信元をIPアドレス範囲で定義します。任意のネットワークからのソースには0.0.0.0/0を使用してください。
    • [サブネット]を選択し、[サブネット]ポップアップボタンから必要なものを選択して、着信トラフィックの送信元をサブネット名で定義します。
    • ネットワークタグで送信元を制限するには、[送信元タグ]を選択し、[送信元タグ]フィールドにネットワークタグを入力します。ソースタグ数の制限については、「VPCのクォータと制限」を参照してください。ソースタグによるフィルタリングは、ターゲットがサービスアカウントで指定されていない場合にのみ使用できます。詳細については、サービスアカウントとネットワークタグによるフィルタリングを参照してください。
    • サービスアカウントでソースを制限するには、[サービスアカウント]を選択し、サービスアカウントが現在のプロジェクト内にあるか、[サービスアカウントの範囲]で別のアカウントにあるかを指定します。ソースサービスアカウントによるフィルタリングは、ターゲットがネットワークタグで指定されていない場合にのみ使用できます。詳細については、サービスアカウントとネットワークタグによるフィルタリングを参照してください。
    • 必要に応じて、二次光源フィルタを指定します。セカンダリソースフィルタは、プライマリフィルタと同じフィルタ基準を使用できません。
  10. 出力規則の場合は、宛先フィルターを指定します。

    • IP範囲を選択し、宛先IP範囲フィールドにCIDRブロックを入力して、IPアドレス範囲で発信トラフィックの宛先を定義します。至る所を意味するために0.0.0.0/0を使用してください。
    • [サブネット]を選択し、[サブネット]ポップアップボタンから必要なものを選択して、送信トラフィックの宛先をサブネット名で定義します。
  11. ルールが適用されるプロトコルとポートを定義します。

    • すべてのプロトコルとポートにルールを適用するには、アクションに応じて[Allow all]または[Deny all]を選択します。

    • 特定のプロトコルとポートを定義します。

      • TCPプロトコルとポートを含めるには、tcpを選択します。 20-22、80、8080など、ポートのすべてまたはコンマ区切りのリストを入力します。
      • UDPプロトコルとポートを含めるには、udpを選択します。 67-69、123など、ポートのすべてまたはカンマ区切りのリストを入力します。
      • Icmpやsctpなどのプロトコルを含めるには、[その他のプロトコル]を選択します。
  12. (オプション)実施状態を無効に設定することで、ファイアウォールルールを作成できますが、実施しないことができます。 [ルールを無効にする]をクリックして、[無効]を選択します。

  13. (オプション)ファイアウォールルールのログ記録を有効にできます。

    • [ログ]> [オン]をクリックします。
    • 電源を入れるをクリックします。
  14. 作成をクリックします。

リンク:[1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components

3
Kervin L

優先度を下げる(それを高くする)ことでこれを修正する必要がありました。これにより、すぐに応答しました。私が期待していたものではありませんでしたが、うまくいきました。

0
justbob