WindowsやUNIX系のOSではローカル、リモートのマシンで空いているポートを確認(ポートスキャン)するコマンドがある。 今回は、Windowsでローカル、リモート別にそれぞれで使えるポートスキャンコマンドについてまとめてみた。
ローカルマシンのポートチェックコマンド
ローカルマシン(コマンドを実行するマシン)のポートを確認するには、以下のコマンドが使える。
netstat
定番のコマンド。
コマンドを実行しているローカルマシン上のポートチェックを行うためのツールで、UNIX系OSにも搭載されている。
現在サポートされているWindowsであれば、標準で搭載されている。
使い方については、こちらのページを参考にするとわかりやすい。
リモートマシンのポートチェックコマンド
今回の記事のメインとなる、リモートマシンに対してのポートチェック(ポートスキャン)を行うためのツール。
telnet
ソフトのインストール無しで使えるポートチェックコマンドとしては定番。(まぁ、本来の用途では無いけど…)
使用する場合は、「コントロール パネル\すべてのコントロール パネル項目\プログラムと機能」から「Windowsの機能の有効化または無効化」からTelnetクライアントの機能を有効化する必要がある(Windows 7の場合)。
使用する場合は、以下のようにコマンドを実行する。
C:\>telnet 対象のホスト ポート番号
実行の結果、「接続に失敗しました」と表示された場合、そのポートは開いてない。
ftp
こちらも本来の用途ではないが、ポートを指定して実行することでポートチェックを行う事が出来る。
使用する際は、以下のようにコマンドを実行する。
C:\>ftp
ftp> open 対象のホスト ポート番号
実行の結果、何も表示されなかった場合はそのポートは開いていない事になる。
PSping
別途インストールが必要になるが、ポートを指定してPingを実行する事が出来るツール。
以前にも紹介したPSexecと同様に、PStoolsの中に含まれるプログラムだ。
こちらからヘルプの内容とツールのダウンロードを行う事が出来る。
使用する際は、以下のようにコマンドを実行する。
psping 対象のホスト:ポート番号
portqry
別途ダウンロード、インストールが必要だが、Windows用のポートスキャンコマンドとしては定番。
対象のホストと、チェック対象のポート番号を範囲指定してスキャンすることが出来る。
使用する際は、以下のようにコマンドを実行する。
portqry -n 対象のホスト -r チェック対象となるポートの開始番号:終了番号
以上がWindowsで主に使用出来るポートチェック、ポートスキャンのコマンドとなる。その他、Windows XPではバンドルされている「netsh」コマンドの「diag」オプションがポートスキャン可能だったが、どうもVista以降では無くなってしまったようだ。
その他使えるコマンドがあれば教えて下さい。