次の例では、次のコマンドを使用して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など)。
答え1
インターネット猫(nc
)はオプションです。
nc -zv kafka02 6667
-z
=実際にデータを送信せずにリスニングデーモンのみをスキャンするようにncを設定します。-v
=詳細モードを有効にする
答え2
Bash Shellを使用している場合は、その機能を使用してポートが開いているか閉じているかを確認できます。
(timeout 1 bash -c '</dev/tcp/127.0.0.1/17500 && echo PORT OPEN || echo PORT CLOSED') 2>/dev/null
PORT OPEN
(timeout 1 bash -c '</dev/tcp/127.0.0.1/7500 && echo PORT OPEN || echo PORT CLOSED') 2>/dev/null
PORT CLOSED
1秒後にサーバーが応答しない場合はタイムアウトに達し、それらの間のコマンドは中断され、何も'
印刷されません。
答え3
「カール」は人生をより簡単にすることができます。ルートは必要ありません。カールはすべてのLinuxシステムで簡単に動作します。
ポートが開いていない場合は、次の出力が表示されます。
[niti@SourceServerName ~]$ curl -vv telnet://DestinationServerName:80 * About to connect() to DestinationServerName port 80 (#0) * Trying 192.168.0.100...
ポートが開いている場合は、次の出力が表示されます。
[niti@SourceServerName ~]$ curl -vv telnet://DestinationServerName:443 * About to connect() to DestinationServerName port 443 (#0) * Trying 192.168.0.100... * Connected to DestinationServerName (192.168.0.100) port 443 (#0)
Ctrl + Cやめる。
答え4
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!