ポート80のアクティブな接続の数を確認しますか?


27

私はウェブサーバーを持っています。その時点でサーバーの接続数を確認する必要があります。

私は次を使用しました

netstat -anp |grep 80 |wc -l

これは

2542

しかし、私のGoogleアナリティクスから、同時ユーザーが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 ?

を使用ssすると、ポートをフィルタリングして、少し速く状態を指定できますss -nt dport == :80 and state connected
17

接続数はユーザー数ではありません。各ユーザーブラウザーは、同時に複数の接続を開くことができます。反対に、まれですが、同じプロキシを使用している複数のユーザーは、1つの接続を介してのみ表示されます。
パトリックメヴゼク

回答:


50

ESTABLISHED接続を数えるだけにしてください:

netstat -anp | grep :80 | grep ESTABLISHED | wc -l

また、port grepステートメントでコロンを使用しないように注意してください。80を探すだけで、出力に文字80が含まれるpidやその他のポートから誤った結果が生じる可能性があります。


5
grep -w 80その問題を解決し、のようなものを排除し8093ます。
マイケルハンプトン

1
ええ、あなたは正しいです:80は、おそらく誤検知を引き起こす可能性があります。
d34dh0r53

@MichaelHampton grep -w 80と:80の両方は、もしあれば発信HTTP接続もカウントします。netstat -ntp | awk '{print $ 4}' | grep -w80。そして、はい、私は自転車置き場の色を気にしすぎです:) :)。

この1つはLIL向上します。.. netstatの-an | grep -w 80 | grep -iが確立されました| awk {'print $ 5'} | カット-d:-f1 | 並べ替え| uniq -c | sort -n
user169015 14

2

撮影d34dh0r53の@の回答(「広い」視点での答えに向かって)一歩「さらに」、あなたはまた、すべての接続には、次のとそれらの状態に応じてソート確認することができます。

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

それがお役に立てば幸いです。そして、あなたが上記について持っているどんな精巧さおよび/またはコメントを上げてください。

乾杯、

男。


1

複数のgreps、sed、awkをつなぎ合わせるのを心配する代わりに、そこにIPアドレスを入力するだけで済みます。

netstat -anp | grep -c $(hostname -i):80

を使用$(hostname -i)すると、任意のボックス、静的/動的IPなどでこのコマンドを使用できます。


0
ss -tn src :80 or src :443

これにより、ローカルポート80または443へのすべての接続が表示されます(必要に応じてポートを追加/変更します)。

免責事項:これは古い質問であると認識していますが、それはまだGoogleでの最高の結果であるため、現代のユーティリティを利用した答えに値すると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.