質問: telnet以外に、開いているポートを確認する代替手段は何ですか? telnet viaポートをテストするために、以下を使用できます。次の例では、ポート6667をテストします。[root@kafka03 ~]# telnet kafka02 6667 trying 103.64.35.86... connected to kafka02. escape character is '^]'. ^cconnection closed by foreign host 一部のマシンでは(内部的な理由により)telnetを使用できないため、telnetとしてポートをチェックする代替手段は何ですか?
回答: perlがオプションの場合、その io::socket 特定のホストとポートへの接続をテストするモジュール。以下のスクリプトは、プロトコルとしてハードコードtcp=です(これはtelnetが使用するものです):#!/usr/bin/perl -w # tries to connect to the given ip and port (tcp) use strict; use io::socket; my $desthost = shift or die "usage: $0 host port\n"; my $destport = shift or die "usage: $0 host port\n"; gethostbyname($desthost) || die "invalid host given\n"; my $handle = io::socket::inet->new( peeraddr => $desthost, peerport => $destport, proto => 'tcp') or die "can't connect to $desthost:$destport: $!\n"; close $handle; print "success!\n" 閉じたポートからの出力例:$ ./above-script kafka02 6667 can't connect to kafka02:6667: connection refused 開いているポートからの出力例:$ ./above-script kafka02 4200 success!