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) 



コメント

このブログの人気の投稿

vSwitchにSTPが不要な理由

ESXi に DNS サーバを何個まで登録できるか

障害でVDSから切断されたVCSAの復旧方法