2つのGoogle Compute Engineインスタンスがあり、両方のインスタンスでポート9090を開きたいです。ファイアウォールのルールをいくつか追加する必要があると思います。
どうしたらいいですか。
必要がある:
Cloud.google.comにアクセスしてください。
私のコンソールに行く
プロジェクトを選択してください
[ネットワーキング]> [VPCネットワーク]を選択します。
「ファイアウォールルール」を選択してください
「ファイアウォールルールを作成する」を選択してください
ルールを適用してVMインスタンスを選択するには、[ターゲット]> [指定したターゲットタグ]を選択し、[ターゲットタグ]にタグの名前を入力します。このタグは、新しいファイアウォールルールをどのインスタンスにも適用するために使用されます。次に、インスタンスにネットワークタグが適用されていることを確認します。
ポート9090への着信TCP接続を許可するには、[プロトコルとポート]にtcp:9090
と入力します。
作成をクリック
これがお役に立てば幸いです。
更新docs を参照してルールをカスタマイズしてください。
これは、この質問に答えるためのコマンドラインアプローチです。
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
を実行して、あなたのファイアーウォールルールをすべて見てください
インスタンスへの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でのファイアウォールの作成と管理はこちら についてもっと読むことができます。
私はあなたと同じ問題を抱えていたので、@ CarlosRojasの指示に従って多少の違いはありますが解決することができました。新しいファイアウォールルールを作成する代わりに、私はdefault-allow-internal
を編集してどこからのトラフィックも受け入れるようにしました。新しいルールを作成しても何の違いもないからです。
この質問は古く、 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ファイアウォールの両方でポートを開いているかどうかを確認してください。
最後の(明白な)ことは、不必要にポートを開かないでください。不要になったら、ポートを閉じます。
この答えが役に立つことを願っています。
ファイアウォールルールを作成する
GCPのファイアウォールルールに慣れていない場合は、ファイアウォールルールコンポーネント[1]を確認してください。ファイアウォールルールはネットワークレベルで定義され、それらが作成されたネットワークにのみ適用されます。ただし、それぞれに付ける名前はプロジェクトごとに異なる必要があります。
クラウドコンソールの場合:
ルールのターゲットを指定してください。
入力規則の場合は、Sourceフィルタを指定します。
出力規則の場合は、宛先フィルターを指定します。
ルールが適用されるプロトコルとポートを定義します。
すべてのプロトコルとポートにルールを適用するには、アクションに応じて[Allow all]または[Deny all]を選択します。
特定のプロトコルとポートを定義します。
(オプション)実施状態を無効に設定することで、ファイアウォールルールを作成できますが、実施しないことができます。 [ルールを無効にする]をクリックして、[無効]を選択します。
(オプション)ファイアウォールルールのログ記録を有効にできます。
作成をクリックします。
リンク:[1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components
優先度を下げる(それを高くする)ことでこれを修正する必要がありました。これにより、すぐに応答しました。私が期待していたものではありませんでしたが、うまくいきました。