ESXiからのTCP Connectionをチェックする方法
背景
トラブルシューティングの際に、TCPの疎通確認をしたいことは多々あります。TCPの疎通確認といえば、Telnetやcurlコマンドで実施するのが非常に簡単です。
しかし、ESXiには残念ながらこのどちらも含まれておらず、そのほかのマイナーなコマンドやecho >/dev/tcp/<HOST>/<PORT> などでも実施できないため、手段に窮してしまいます。
そこで本記事ではESXiに標準搭載されるpython を利用した確認方法を紹介します
nc -z が利用可能でした。
やり方
ESXiにSSHでログインして、python コマンドで対話モードを起動します。
あとは以下の通りに打ち込むだけです。
import socket
import sys
# Create a TCP/IP socket
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect the socket to the port where the server is listening
server_address = ('<ip>', <port>)
clientSocket.connect(server_address)
接続ができると何も返ってきません。明示的に確認したい場合は、もう一つSSHでログインして、esxcli network ip connection list などで確認するとよいでしょう。
接続に失敗した場合は、しばらくたってTimeoutになるか、すぐにConnection Refused になるかのどちらかです。
成功時
失敗時(Connection Refused)
失敗時(Time Out)
コメント
コメントを投稿