私はウェブサーバーを持っており、特定の時間にサーバー内の接続数を確認する必要があります。
私は以下を使用しました
netstat -anp |grep 80 |wc -l
これは
2542
しかし、Google Analytics から、同時ユーザー数は 100 人を超えていないことがわかります。
is this correct ?
if not how to i get the active number of connections ?
is this sign of a victim of DOS attack how do i know that ?
答え1
確立された接続だけを数えてみましょう:
netstat -anp | grep :80 | grep ESTABLISHED | wc -l
また、ポートの grep ステートメントでコロンを使用しないように注意してください。単に 80 を検索すると、出力に文字 80 が含まれる pid やその他のポートから誤った結果が返される可能性があります。
答え2
ss -tn src :80 or src :443
これにより、ローカル ポート 80 または 443 へのすべての接続が表示されます (必要に応じてポートを追加/変更します)。
免責事項: これは古い質問であることは承知していますが、Google ではまだトップの結果になっているため、最新のユーティリティを使用して回答する価値があると思います。
答え3
撮影翻訳者一歩「さらに」答えるには(「より広い」視点での答えに向かって)、次のようにして、状態に応じてソートされたすべての接続を確認することもできます。
netstat -ant | grep :<port_num> | awk '{print $6}' | sort | uniq -c | sort -n
例えば:
netstat -ant | grep :8000 | awk '{print $6}' | sort | uniq -c | sort -n
出力は次のようになります。
1 CLOSING
1 established
1 FIN_WAIT2
1 Foreign
2 CLOSE_WAIT
6 FIN_WAIT1
7 LAST_ACK
7 SYN_RECV
37 ESTABLISHED
44 LISTEN
297 TIME_WAIT
これがお役に立てば幸いです。また、上記についての詳細やコメントがあればぜひお寄せください。
乾杯、
男。
答え4
これは、次のような最新のユーティリティでも実行できます。ss
たとえば、ポート8080で確立されたすべてのTCP接続を取得しようとすると、
ss -tn src :8080 | grep -i "estab" | wc -l