2016-10-02 7 views
2

Google Compute EngineでTCPソケットサーバーをホストしようとしていますが、GCEのファイアウォールルール(socket-port 0.0.0.0/0 tcp:11000に適用)に次のルールを追加しました。すべてのターゲット)が、公開IP(私の場合は一時的です)を使用して外部からまだアクセスできない状態です。GCEは特定のポートで着信トラフィックを許可します

この場合、さらに実行する必要はありますか?追加のルールを設定するには、VM自体でufwを使用する必要がありますか?

ご意見やご要望があれば幸いです。

EDIT: 1)ファイアウォールの設定:

NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS

デフォルト-許可-HTTPのデフォルト0.0.0.0/0 TCP:80、HTTPサーバ

デフォルト-許可-httpsデフォルト0.0.0.0/0 TCP:443 HTTPSサーバ

デフォルト・許可・ICMPのデフォルト0.0.0.0/0 ICMP

デフォルト-できるよう、内部のデフォルト10.128.0.0/9 TCP:0〜65535、UDP:0〜65535、ICMP

デフォルト-許可-RDPのデフォルト0.0.0.0/0 TCP:3389

default-許可-SSHデフォルト0.0.0.0/0 TCP:22 TCP

ソケットポートデフォルト0.0.0.0/0:

:11000

2)VM自体SocketListenerクラス(C#)とには、エラーを与えます

リクエストを割り当てることができませんIPEndpointは、マシンのパブリックIPで構成され、」

System.Net.Sockets.Socket.BindでSystem.Net.Sockets.Socket.DoBind(エンドポイントendPointSnapshot、のSocketAddressのSocketAddress) (エンドポイントlocalEP)のアドレス ポート11000

+0

1)ファイアウォール設定をここに貼り付けます。 2)どのようなエラーコードが表示されますか? 3)内部IP経由で同じネットワーク内の別のVMからアクセスして、サービスが稼動していることを確認します。 – Dagang

+0

@ Daagang私の質問を編集しましたが、現時点では別のVMからアクセスできません。 – Salem

答えて

1

これはGCEの古典的な問題です。外部IPではなく、サーバーソケットを0.0.0.0にバインドする必要があります。これが設計によるものなのかどうかわかりません。

外部IPは仮想IPです。インフラストラクチャは、IPをターゲットとするトラフィックをVMに向ける方法を知っていますが、VMのネットワークインターフェイスのどれにもバインドされていません。 VM内でsudo ifconfigを実行すると、eth0上の内部IPしか表示されません。

+0

すごい!ありがとう! – Salem

関連する問題