edit-icon download-icon

netstat コマンドで ECS Linux ポート状態の確認方法

最終更新日: Sep 30, 2017

netstat コマンドで ECS Linux ポート状態の確認方法

netstat コマンドで、Linux OS 開放中のポート、該当ポートを占用するプロセス、ユーザー情報を確認できます。netstat コマンドに下記の引数があります。

パラメータ 説明
-t TCP ポートのみを表示
-u UDP ポートのみを表示
-l 接続待ち状態にあるソケットのみを表示
-p 各ソケットが属しているプログラムの PID と名前を表示
-n DNS解析せずに、数字のアドレスで表示

netstat コマンド引数の組合せ

コマンド 説明
netstat -na アクティブ状態のネットワーク接続を表示します。
grep、wc、sort などコマンドを併用して、接続状況、接続数を確認し、攻撃を受けているかどうかを判断できます。
netstat -an | grep :80 | sort 80 番ポートを利用中のネットワーク接続を表示し、リストします。80 番ポートは http ポートであるため、web サービスを監視できます。単一の IP から大量の接続がある場合、該当 IP から攻撃を受けていると判断できます。
netstat -n -p|grep SYN_REC | wc -l アクティブの SYNC_REC の接続数を表示します。通常値は 5 以下です。説明:DDos 攻撃を受けた場合、SYNC_REC の接続数は多くなる場合があります。ただし、並行プロセスが多いサーバーのSYNC_REC の接続数も多いので、攻撃かどうか場合によって判断する必要があります。
netstat -n -p | grep SYN_REC | sort -u 接続した記録がある IP アドレスを表示し、リストします。
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}' SYN_REC 接続ノードを送信した IP アドレスを表示します。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 各ホストからの接続数をホストごとで表示します。
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n UDP または TCP と接続している IP アドレスの数を表示します。
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr ESTABLISHED 接続をチェックし、IP アドレスごとの接続数を表示します。
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 80 番ポートに接続している IP アドレス、IP アドレスごとの接続数を表示します。
netstat -antp | awk '$4 ~ /:80$/ {print $4" "$5}' | awk '{print $2}'|awk -F : {'print $1'} | uniq -c | sort -nr | head -n 10 80 番ポートに接続している IP アドレス中、接続数前 10 位の IP アドレス、IP アドレスごとの接続数を表示します。単一の IP から大量の接続がある場合、該当 IP から攻撃を受けていると判断できます。

ポート占用解除の方法

  1. 下記のコマンド(例:9000 番ポート)で、ポート占用のプロセスを特定します。

    1. netstat -antp | grep 9000

    QQ???20151231065836.png

  2. PID 1070 のプロセスが 9000 番ポートを占用していますので、該当プロセスを停止します。