EC2セキュリティグループポート通信確認


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

EC2セキュリティグループポート通信確認

初めに

EC2を構築時にセキュリティグループをアタッチしないといけないです。今回は構築したEC2のポート疎通確認について記載します。

通信ツールをインストールしたり、ICMPを使うことで通信確認を行いますが、場合により、社内制限などツールをインストールできないこともあります。今回は、デフォルトで入っているツールを利用して通信確認する方法をご紹介します。

Test-NetConnection

確認環境(Windows 10 ,Windows Server)

PowershellのTest-NetConnectionコマンドを利用して通信確認を行います。

成功時

「TcpTestSucceeded : True」のレスポンスがあります。

PS C:\Users\Administrator> Test-NetConnection <ip address> -Port 22
ComputerName     : <ip address>
RemoteAddress    : <ip address>
RemotePort       : 22
InterfaceAlias   : xxx
SourceAddress    : xxxx.xxxx.xxxx.xxxx
TcpTestSucceeded : True
失敗時

通信確認中にコンソールに緑色の「Waiting for response」がしばらく表示されます。 「TcpTestSucceeded : False」になっていることを確認します。

PS C:\Users\Administrator> Test-NetConnection <ip address> -Port 80
警告: TCP connect to (3.112.194.175 : 80) failed

ComputerName           : <ip address>
RemoteAddress          : <ip address>
RemotePort             : 80
InterfaceAlias         : xxxx
SourceAddress          : xxxx.xxxx.xxxx.xxxx
PingSucceeded          : True
PingReplyDetails (RTT) : 55 ms
TcpTestSucceeded       : False

curl

確認環境 (Amazon Linux2,Ubuntu 20.04.1 LTS)

curlを使用してGET、POSTしたり、APIのテストをよくやると思いますが、curlを利用することでPortの通信確認もできます。

最近のLinuxには始めからcurlがインストールされていると思いますが、ない場合はaptやyumなどを使用してインストールしてください。

成功時
[Linux: ~ ]$ curl -m 5 -v telnet://<ip address>:80
*   Trying <ip address>...
* TCP_NODELAY set
* Connected to <ip address> (<ip address>) port 80 (#0)
#### 「Connected」が表示され、Ctrl+Cで中止します。
失敗時
[Linux: ~ ]$ curl -m 5 -v telnet://<ip address>:80
*   Trying <ip address>:80...
* TCP_NODELAY set
* Connection timed out after 5001 milliseconds
* Closing connection 0
curl: (28) Connection timed out after 5001 milliseconds
#### 5Sでタイムアウトすると設定したで5S経ったら、タイムアウトになることを確認します。

最後

他に以下のツールも通信確認に良く利用されています。

telnet, nc(netcat)

ただし、事前にインストール必要があるので、インストール方法と利用方法Googleでよいと思います。

Last modified: 2024-02-02

Author