このトピックでは、Linux Elastic Compute Service (ECS) インスタンスで TCP または UDP ポートの接続性をテストする方法について説明します。
TCP ポートの接続性をテストする
テストするポートの状態に基づいて、テスト方法を選択します。
ポートがリッスンされている場合は、方法 1: Telnet を使用してリッスン中のポートの接続性をテストする を使用します。
ポートがリッスンされていない場合は、方法 2: ポートでリッスンを開始し、その接続性をテストする を使用します。
方法 1: Telnet を使用してリッスン中のポートの接続性をテストする
次のコマンドを実行して、Telnet を使用してポートの接続性をテストします。
たとえば、
121.11.XX.XXにある ECS インスタンスのポート1234の接続性をテストするには、sudo telnet 121.11.XX.XX 1234コマンドを実行します。# [$Host] を ECS インスタンスの IP アドレスに、[$Port] をテストするポートの番号に置き換えます。 sudo telnet [$Host] [$Port]次のコマンド出力は、ポート経由で接続が確立されたことを示しています。コマンド出力は、Linux システム環境によって異なる場合があります。
Connected to ...がコマンド出力に含まれている場合、接続は確立されています。説明ポートに到達できない場合は、ECS インスタンスのセキュリティグループでポートが許可されているかどうかを確認します。ポートが許可されていない場合は、セキュリティグループルールを追加して開きます。
Trying 121.11.XX.XX... Connected to 121.11.XX.XX. Escape character is '^]'.
方法 2: ポートでリッスンを開始し、その接続性をテストする
サーバーで TCP ポートの接続性をテストするために、2 つの ECS インスタンス(1 つはサーバー、もう 1 つはクライアント)を準備します。
サーバー: TCP ポートでリッスンを開始し、その接続性をテストする ECS インスタンス。
クライアント: サーバー上の TCP ポートへの接続に使用する補助 ECS インスタンス。
次の手順を実行します。
サーバーで、次のコマンドを実行して Python がインストールされているかどうかを確認し、そのバージョンを表示します。
python -VPython のバージョンが表示されている場合は、Python がインストールされています。
Python がインストールされていない場合は、インストールします。
サーバーで、次のコマンドを実行して、Python の組み込み Web サーバーを使用してポートで一時的にリッスンします。
たとえば、Python 3.x を使用してポート
1234でリッスンするには、sudo python3 -m http.server 1234コマンドを実行します。Python 2.x
# [$Port] をテストするポートの番号に置き換えます。 sudo python -m SimpleHTTPServer [$Port]Python 3.x
# [$Port] をテストするポートの番号に置き換えます。 sudo python3 -m http.server [$Port]
次のコマンド出力が返されます。
Serving HTTP on 0.0.0.0 port 1234 ...説明クライアントからのテストが完了したら、
Ctrl+Cを押してプロセスを停止します。クライアントで、次のコマンドを実行して、Telnet を使用してサーバーでリッスンしているポートの接続性をテストします。
たとえば、
121.11.XX.XXにあるサーバーのポート1234の接続性をテストするには、sudo telnet 121.11.XX.XX 1234コマンドを実行します。# [$Host] をサーバーの IP アドレスに、[$Port] をテストするポートの番号に置き換えます。 sudo telnet [$Host] [$Port]次のコマンド出力は、ポート経由で接続が確立されたことを示しています。コマンド出力は、Linux システム環境によって異なる場合があります。
Connected to ...がコマンド出力に含まれている場合、接続は確立されています。説明ポートに到達できない場合は、サーバーのセキュリティグループでポートが許可されているかどうかを確認します。ポートが許可されていない場合は、セキュリティグループルールを追加して開きます。
Trying 121.11.XX.XX... Connected to 121.11.XX.XX. Escape character is '^]'.
UDP ポートの接続性をテストする
サーバーで UDP ポートの接続性をテストするために、2 つの ECS インスタンス(1 つはサーバー、もう 1 つはクライアント)を準備します。
サーバー: UDP ポートの接続性をテストする ECS インスタンス。
クライアント: サーバー上の UDP ポートへの接続に使用する補助 ECS インスタンス。
次の手順を実行します。
サーバーとクライアントで、次のコマンドを実行して nc プログラムがインストールされているかどうかを確認します。
which nc次のコマンド出力は、nc プログラムがインストールされていることを示しています。
/usr/bin/nc説明nc プログラムがインストールされていない場合は、オペレーティングシステムに基づいて yum や apt-get などのコマンドでインストールします。例:
sudo yum install -y nc。サーバーで、次のコマンドを実行して、テストするポートでリッスンします。
たとえば、ポート
3333の接続性をテストするには、sudo nc -uvlp 3333コマンドを実行します。# [$Port] をテストするポートの番号に置き換えます。 sudo nc -uvlp [$Port]次のコマンド出力は、ポートがリッスンされていることを示しています。
Ncat: Version 7.92 ( https://nmap.org/ncat ) Ncat: Listening on :::3333 Ncat: Listening on 0.0.0.0:3333クライアントで、次のコマンドを実行して、サーバーでテストするポートに接続します。
たとえば、
111.22.XX.XXにあるサーバーのポート3333に接続するには、sudo nc -u 111.22.XX.XX 3333コマンドを実行します。# [$Host] をサーバーの IP アドレスに、[$Port] をテストするポートの番号に置き換えます。 sudo nc -u [$Host] [$Port]接続が確立されたら、クライアントでテスト文字(
testなど)を入力します。サーバーが文字を受信した場合、ポートに到達できます。説明ポートに到達できない場合は、サーバーのセキュリティグループでポートが許可されているかどうかを確認します。ポートが許可されていない場合は、セキュリティグループルールを追加して開きます。

