2つのGoogle Compute Engineインスタンスがあり、両方のインスタンスでポート9090を開きたい。ファイアウォールルールをいくつか追加する必要があると思います。
どうすればそれを行うことができますか?
2つのGoogle Compute Engineインスタンスがあり、両方のインスタンスでポート9090を開きたい。ファイアウォールルールをいくつか追加する必要があると思います。
どうすればそれを行うことができますか?
回答:
必要がある:
cloud.google.comにアクセスします
コンソールに移動
プロジェクトを選択してください
[Networking]> [VPC network]を選択します
「ファイアウォールルール」を選択します
「ファイアウォールルールの作成」を選択します
ルールを適用してVMインスタンスを選択するには、[ターゲット]> [指定されたターゲットタグ]を選択し、[ターゲットタグ]にタグの名前を入力します。このタグは、新しいファイアウォールルールを任意のインスタンスに適用するために使用されます。次に、インスタンスにネットワークタグが適用されていることを確認します。
ポート9090への着信TCP接続を許可するには、「プロトコルとポート」に次のように入力します。 tcp:9090
作成をクリックします
これがお役に立てば幸いです。
更新ルールをカスタマイズするには、ドキュメントを参照してください。
allow http
とallow https
私は、新しいファイアウォールルールを追加しましたが、私はそれを見つけるように見えることはできません。それが役に立てば、私も無料枠にいます。
この質問に答えるためのコマンドラインアプローチは次のとおりです。
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
ます。
PS:Googleのファイアウォールルールを理解するには、gcloud compute firewall-rules list
すべてのファイアウォールルールを実行して表示してください
--description
パーツを使用すると苦情が出ますが、それ以外の場合は問題ありません。
source
は着信トラフィックを意味target
しますが、ルールを適用するインスタンスを指します。
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission
@modulitos
telnet :instance_ip :port
かnmap -p :port :instance_ip
?
tcp:9090
インスタンスへのインバウンドアクセスを開くには、ファイアウォールルールを追加する必要があります。3つ以上のインスタンスがあり、それらの2つに対してのみ9090を開く場合は、これら2つのインスタンスが共有するタグがあることを確認する必要があります。コンソールまたはコマンドラインを介してタグを追加または更新できます。必要に応じてGUIを使用することをお勧めします。GUIはで読み取り/変更/書き込みサイクルを処理するためsetinstancetags
です。
すべてのインスタンスに対してポート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でのファイアウォールの作成と管理について詳しくは、こちらをご覧ください。
gcutil
使用できなくなりました; を使用してコマンドラインを書き直してくださいgcloud
。
この質問は古く、Carlos Rojasの答えは良いですが、ポートを開こうとするときに心に留めておくべきことをいくつか投稿する必要があると思います。
最初に覚えておくべきことは、Networkingセクションの名前がVPC Networkingに変更されていることです。ファイアウォールルールオプションが利用できる場所を見つけようとしている場合は、VPCネットワークを参照してください。
2つ目は、Linux VMでポートを開こうとする場合は、いかなる状況でもufw
コマンドを使用してポートを開こうとしないことを確認してください。私はそれを使ってみました、そして、VMへのsshアクセスを失いました。だから私の間違いを繰り返さないでください。
3つ目は、Windows VMでポートを開こうとする場合は、VPCネットワーク->ファイアウォールルールとともに、WindowsファイアウォールでもVM内にファイアウォールルールを作成する必要があることです。Linux VMとは異なり、両方のファイアウォールルールでポートを開く必要があります。そのため、VMの外部からポートにアクセスできない場合は、GCP ConsoleとWindowsファイアウォールの両方でポートを開いているかどうかを確認してください。
最後の(明白な)ことは、ポートを不必要に開かないことです。不要になったらすぐにポートを閉じます。
この回答がお役に立てば幸いです。
ufw
コマンドを使用して特定のポートをいくつか開いていて、まだsshアクセスできることを除いて、良いヒントです。
私はあなたと同じ問題を抱えていたので、@ CarlosRojasの指示に従って少し違いをもって解決することができました。新しいファイアウォールルールを作成する代わりに、新しいルールをdefault-allow-internal
作成しても違いはないので、どこからでもトラフィックを受け入れるように編集しました。
ファイアウォールルールの作成
GCPのファイアウォールルールに慣れていない場合は、ファイアウォールルールコンポーネント[1]を確認してください。ファイアウォールルールはネットワークレベルで定義され、それらが作成されたネットワークにのみ適用されます。ただし、それぞれに選択する名前はプロジェクトに固有である必要があります。
Cloud Consoleの場合:
ルールのターゲットを指定します。
上りルールの場合、送信元フィルターを指定します。
下りルールの場合、宛先フィルターを指定します。
ルールを適用するプロトコルとポートを定義します。
アクションに応じて、[すべて許可]または[すべて拒否]を選択して、ルールをすべてのプロトコルとポートに適用します。
特定のプロトコルとポートを定義します。
(オプション)ファイアウォールルールを作成できますが、施行状態を無効に設定することで施行できません。[ルールを無効にする]をクリックし、[無効]を選択します。
(オプション)ファイアウォールルールのロギングを有効にできます。
作成をクリックします。
リンク:[1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components