マシンAが特定のポートでマシンBに接続できるかどうかをテストしようとしています。マシンAのシステム管理者は、telnet
コマンドを削除するのに適しています。便利な代替品は何ですか?マシンAはCentOSです。
私が思いついた方法:
$ ssh -f -N machineA -L 10123:machineB:123
$ telnet localhost 10123
失敗しましたが、それが実際に診断であるかどうかはわかりませんでした。さらにテストしたので、それは確かに診断です。
iirc、telnetはデフォルトでcentos 6マシンにインストールされなくなりました。 telnet
やnc
などのツールがない場合は、Pythonを使用していつでもネットワークソケットと通信できます。 (ただし、これが「便利な」要件に適合しているかどうかはわかりません...)
接続を確立できるかどうかを簡単にテストするには:
[gryphius@ut ~]$ python
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> conn=socket.create_connection(('gmail-smtp-in.l.google.com',25))
これまでにエラーがスローされなかった場合、接続は問題ありません。データの受信/送信もテストする場合は、次のように続けることができます。
>>> input=conn.makefile()
>>> print input.readline()
220 mx.google.com ESMTP p2si6911139eeg.7 - gsmtp
>>> conn.sendall('HELO example.com\r\n')
>>> print input.readline()
250 mx.google.com at your service
>>> conn.sendall('QUIT')
>>> conn.close()
>>>