スポンサーリンク

Linuxからポートを指定してpingを打つ

ncat コマンドを実行することで、TCP/IP レベルの疎通を確認できます。

スポンサーリンク

1. 確認した環境

$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

$ ncat --version
Ncat: Version 7.50 ( https://nmap.org/ncat )

2. 利用方法

ncat コマンドを -zv オプションを指定して実行します。

書式

ncat -zv <ホスト名 or IPアドレス> <ポート番号>

  • z オプション: 3wayハンドシェイクを行い TCP/IP コネクションを確立後、データを送らずにコネクションを切断します。
  • v オプション: 詳細情報を表示します。

実行例

例1

当サイト linux-guide.com の 443 番ポートが開放されているか調べる場合は…

$ ncat -zv linux-guide.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 49.212.180.105:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.

Connected と表示されているので、443 番ポートと通信できています。

2

当サイト linux-guide.com の 23 番ポートが開放されているか調べる場合は…

$ ncat -zv linux-guide.com 23
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection timed out.

Connection timed out と表示されているので 23番ポートとの通信に失敗しています。

3. 補足

補足 1.

ポートが開放されているからといって、必ずしも ncat が成功するわけではないので注意してください。下記のエントリは Windows の Test-NetConnection コマンドに関する記事ですが nc コマンドについてもそのまま当てはまります。
※参考: ファイアウォールを開放しているのにTest-NetConnectionに失敗する

補足 2.

厳密にいうと ncat はpingではありません。なぜなら ping はICMPというプロトコルを利用したプログラムであり、ICMPにはポート番号という概念がないからです。ncat はその上位のトランスポート層レベルでの通信を確認しています。ポート番号とはトランスポート層に所属するプロトコルであるTCPやUDPに存在する概念です。

下の図はホストA からホストBに対して、ping と ncat を実行したときのイメージです。

参考:ping にポート番号はありません

コメント

タイトルとURLをコピーしました