目次:
- bashと
timeout
- 使用する
nc
- コマンド
- RHEL 6(nc-1.84)
- RHEL 7(nmap-ncat-6.40)
- 備考
bashとtimeout
:
timeout
RHEL 6+に存在するか、GNU coreutils 8.22に存在することに注意してください。MacOSでは、brew install coreutils
を使用してインストールし、として使用しますgtimeout
。
コマンド:
$ timeout $TIMEOUT_SECONDS bash -c "</dev/tcp/${HOST}/${PORT}"; echo $?
ホストとポートをパラメータ化した場合、としてそれらを指定してください${HOST}
と${PORT}
、上記のようです。$HOST
and としてのみ$PORT
、つまり中括弧なしで指定しないでください。この場合は機能しません。
例:
成功:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/80"; echo $?
0
失敗:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
124
の終了ステータスを保持する必要がある場合bash
、
$ timeout --preserve-status 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
143
使用nc
:
の下位互換性のないバージョンがnc
RHEL 7にインストールされることに注意してください。
コマンド:
以下のコマンドは、RHEL 6とRHEL 7の両方で同一であるという点でユニークであることに注意してください。異なるのは、インストールと出力だけです。
$ nc -w $TIMEOUT_SECONDS -v $HOST $PORT </dev/null; echo $?
RHEL 6(nc-1.84):
インストール:
$ sudo yum install nc
例:
成功:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Connection to canyouseeme.org 80 port [tcp/http] succeeded!
0
失敗:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
nc: connect to canyouseeme.org port 81 (tcp) timed out: Operation now in progress
1
ホスト名が複数のIPにマップされている場合、上記の失敗したコマンドはそれらの多くまたはすべてを循環します。例えば:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
1
RHEL 7(nmap-ncat-6.40):
インストール:
$ sudo yum install nmap-ncat
例:
成功:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 52.202.215.126:80.
Ncat: 0 bytes sent, 0 bytes received in 0.22 seconds.
0
失敗:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection timed out.
1
ホスト名が複数のIPにマップされている場合、上記の失敗したコマンドはそれらの多くまたはすべてを循環します。例えば:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection to 104.43.195.251 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.100.122.175 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.96.52.53 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 191.239.213.197 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection timed out.
1
備考:
-v
(--verbose
)の引数とecho $?
コマンドは、例示のみのために当然です。