Linuxの中で、ncコマンドを使用してポートを一括でチェックする方法は何ですか?

Linuxでは、Shellスクリプトとncコマンドを組み合わせて、ポートを一括でチェックすることができます。

以下は簡単な例のスクリプトです。

#!/bin/bash

# 定义需要检测的IP地址和端口范围
IP_ADDRESS="192.168.0.1"
PORT_RANGE="1-100"

# 循环遍历端口范围
for PORT in $(seq $PORT_RANGE); do
  # 使用nc命令检测端口是否开放
  nc -zvw 1 $IP_ADDRESS $PORT
  
  # 检查nc命令的返回值,如果为0则端口开放,否则端口关闭
  if [ $? -eq 0 ]; then
    echo "端口 $PORT 开放"
  else
    echo "端口 $PORT 关闭"
  fi
done

スクリプトでは、まず検出する必要があるIPアドレスとポート範囲を定義します。次に、seqコマンドを使用してポート範囲のシーケンスを生成します。そして、nc -zvw 1コマンドを使用して各ポートが開いているかどうかを確認します。-zパラメータはポートスキャンのみを行うことを示し、-vパラメータは詳細な出力を表示します。-w 1パラメータはタイムアウト時間を1秒に設定します。最後に、ncコマンドの返り値に基づいてポートが開いているかどうかを判断し、結果を出力します。

port_check.shというスクリプトファイルを保存し、端末でsh port_check.shを実行すると、ポートを一括でチェックできます。IP_ADDRESSをチェックしたいIPアドレス、PORT_RANGEをチェックしたいポートの範囲に設定してください。

bannerAds