'nc'コマンドを使用してリモートポートが到達可能であるかを確認する方法
ポートは、Linuxオペレーティングシステム上のアプリケーションまたはプロセスに関連付けられた通信のエンドポイントとして機能する論理エンティティです。ポートがどれだけオープンで、ターゲットマシン上で実行中のサービスを知っておくことは、使用する前に役立ちます。
ローカルマシンでnetstatやNMAPなどのいくつかのLinuxコマンドを使用して、Linuxのオープンポートを簡単にリストアップできます。
このガイドでは、シンプルな netcat (短縮して nc) コマンドを使用して、リモートホストのポートが到達可能であるか、開いているかを判断する方法を示します。
netcat(略してnc)は、LinuxにおけるTCP、UDP、またはUNIXドメインソケットに関連するほぼすべての用途に使用できる強力で使いやすいユーティリティです。
# yum install nc [On CentOS/RHEL]
dnf install nc [On Fedora 22+]
sudo apt-get install netcat [On Debian/Ubuntu]
私たちはそれを使用して、TCP接続を開いたり、任意のTCPおよびUDPポートでリッスンしたり、UDPパケットを送信したり、IPv4およびIPv6の両方でポートスキャンを行ったりすることができます。
netcatを使用すると、単一または複数のオープンポートやポートの範囲を以下のように確認できます。下記のコマンドを使用して、ホスト192.168.56.10のポート22が開いているかどうかを確認できます:
$ nc -zv 192.168.1.15 22
上記のコマンドでは、フラグ:
-z– ncを、実際にデータを送信することなく、リスニングデーモンを単にスキャンするように設定します。-v– 詳細モードを有効にします。
次のコマンドは、リモートホスト192.168.5.10でポート80、22、および21が開いているかどうかをチェックします(ホスト名を使用することもできます):
nc -zv 192.168.56.10 80 22 21
スキャンするポートの範囲を指定することも可能です:
$ nc -zv 192.168.56.10 20-80
netcat コマンドのさらなる例や使い方については、以下の記事をご覧ください。
- netcat コマンドを使用して Linux サーバー間でファイルを転送する
- Linuxネットワーク設定とトラブルシューティングコマンド
それが全てです。この記事では、リモートホスト上のポートが到達可能かつオープンであるかを確認するためのシンプルなnetcatコマンドの使い方を説明しました。このヒントについてのご意見は下のコメント欄を使ってお知らせください。