nc -zv でポートの接続性をテストする
前のステップでは、netstat
と ss
を使って開いているポートをリストする方法を学びました。今度は、nc
コマンド(netcat)を使って、特定のポートに実際に接続できるかどうかをテストしましょう。nc
は、TCP または UDP を使用してネットワーク接続から読み取り、書き込むことができる汎用的なネットワーキングユーティリティです。
nc
で以下のオプションを使用します。
-z
: nc
がリスニングしているデーモンをスキャンするだけで、それらにデータを送信しないことを指定します。これは、ポートが開いているかどうかを確認するのに便利です。
-v
: 詳細出力を有効にし、接続試行に関する詳細を表示します。
前のステップでリスニングしていることがわかったポート 22(SSH)への接続性をテストします。ローカルマシンへの接続をテストします。ローカルマシンは、IP アドレス 127.0.0.1
またはホスト名 localhost
で参照できます。
ターミナルが開いていない場合は、開きます。
次のコマンドを入力して Enter キーを押します。
nc -zv 127.0.0.1 22
次のような出力が表示されるはずです。
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
この出力は、nc
がローカルマシンのポート 22 に正常に接続できたことを確認しています。
次に、おそらく開いていないポート、たとえばポート 80(HTTP)をテストしてみましょう。この環境ではデフォルトでウェブサーバーが実行されていないためです。
次のコマンドを入力して Enter キーを押します。
nc -zv 127.0.0.1 80
接続が拒否されたかタイムアウトしたことを示す出力が表示されるでしょう。例えば、次のような出力です。
nc: connect to 127.0.0.1 port 80 (tcp) failed: Connection refused
この出力は、nc
がポート 80 に接続できなかったことを示しています。これは、そのポートでサービスがリスニングしていないため、予想される結果です。
nc -zv
を使用すると、現在の場所から特定のポートに到達可能で開いているかどうかを簡単に確認できます。
Continue をクリックしてこの実験を完了します。