查看网络连接数
經(jīng)常檢查apache的連接數(shù),同樣會(huì)發(fā)現(xiàn)很多無用的time_wait連接。有人說這是正常的,是因?yàn)橐粋€(gè)請(qǐng)求中途中斷造成的;還有人說微軟的IE連接時(shí)產(chǎn)生的Time_wait會(huì)比用Firefox連接時(shí)多。個(gè)人認(rèn)為有一定的Time_wait是正常的,如果超過了連接數(shù)的比例就不是很正常,所以還是找來方法解決一下。
檢查net.ipv4.tcp_tw當(dāng)前值,將當(dāng)前的值更改為1分鐘: [root@aaa1 ~]# sysctl -a|grep net.ipv4.tcp_tw net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_tw_recycle = 0 [root@aaa1 ~]# vi /etc/sysctl.conf 增加或修改net.ipv4.tcp_tw值: net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1
使內(nèi)核參數(shù)生效: [root@aaa1 ~]# sysctl -p
[root@aaa1 ~]# sysctl -a|grep net.ipv4.tcp_tw net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1
設(shè)置這兩個(gè)參數(shù): reuse是表示是否允許重新應(yīng)用處于TIME-WAIT狀態(tài)的socket用于新的TCP連接; recyse是加速TIME-WAIT sockets回收
用netstat再觀察正常 這里解決問題的關(guān)鍵是如何能夠重復(fù)利用time_wait的值,我們可以設(shè)置時(shí)檢查一下time和wait的值 #sysctl -a | grep time | grep wait net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
結(jié)合DDOS和TIME_WAIT過多,建議增加如下參數(shù)設(shè)置:
# by supernic # Use TCP syncookies when needed net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_synack_retries=3 net.ipv4.tcp_syn_retries=3 net.ipv4.tcp_max_syn_backlog=2048 # Enable TCP window scaling net.ipv4.tcp_window_scaling: = 1 # Increase TCP max buffer size net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # Increase Linux autotuning TCP buffer limits net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # Increase number of ports available net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 300 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 5000 65000
查看當(dāng)前的連接數(shù)狀況可以使用:
netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n 這條語句返回結(jié)果如下 1 established 1 State 2 LAST_ACK 4 CLOSING 4 FIN_WAIT2 9 LISTEN 17 FIN_WAIT1 18 SYN_RECV 27 ESTABLISHED 811 TIME_WAIT
上面的命令可以幫助分析哪種tcp狀態(tài)數(shù)量異常
其中的SYN_RECV表示正在等待處理的請(qǐng)求數(shù);ESTABLISHED表示正常數(shù)據(jù)傳輸狀態(tài);TIME_WAIT表示處理完畢,等待超時(shí)結(jié)束的請(qǐng)求數(shù)。 返回的結(jié)果非常簡潔直接,就是句子有點(diǎn)長 -_-
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n 可以按IP連接數(shù)列出當(dāng)前狀況,發(fā)現(xiàn)異常的,可以封了這個(gè)IP
檢查net.ipv4.tcp_tw當(dāng)前值,將當(dāng)前的值更改為1分鐘: [root@aaa1 ~]# sysctl -a|grep net.ipv4.tcp_tw net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_tw_recycle = 0 [root@aaa1 ~]# vi /etc/sysctl.conf 增加或修改net.ipv4.tcp_tw值: net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1
使內(nèi)核參數(shù)生效: [root@aaa1 ~]# sysctl -p
[root@aaa1 ~]# sysctl -a|grep net.ipv4.tcp_tw net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1
設(shè)置這兩個(gè)參數(shù): reuse是表示是否允許重新應(yīng)用處于TIME-WAIT狀態(tài)的socket用于新的TCP連接; recyse是加速TIME-WAIT sockets回收
用netstat再觀察正常 這里解決問題的關(guān)鍵是如何能夠重復(fù)利用time_wait的值,我們可以設(shè)置時(shí)檢查一下time和wait的值 #sysctl -a | grep time | grep wait net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
結(jié)合DDOS和TIME_WAIT過多,建議增加如下參數(shù)設(shè)置:
# by supernic # Use TCP syncookies when needed net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_synack_retries=3 net.ipv4.tcp_syn_retries=3 net.ipv4.tcp_max_syn_backlog=2048 # Enable TCP window scaling net.ipv4.tcp_window_scaling: = 1 # Increase TCP max buffer size net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # Increase Linux autotuning TCP buffer limits net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # Increase number of ports available net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 300 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 5000 65000
查看當(dāng)前的連接數(shù)狀況可以使用:
netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n 這條語句返回結(jié)果如下 1 established 1 State 2 LAST_ACK 4 CLOSING 4 FIN_WAIT2 9 LISTEN 17 FIN_WAIT1 18 SYN_RECV 27 ESTABLISHED 811 TIME_WAIT
上面的命令可以幫助分析哪種tcp狀態(tài)數(shù)量異常
其中的SYN_RECV表示正在等待處理的請(qǐng)求數(shù);ESTABLISHED表示正常數(shù)據(jù)傳輸狀態(tài);TIME_WAIT表示處理完畢,等待超時(shí)結(jié)束的請(qǐng)求數(shù)。 返回的結(jié)果非常簡潔直接,就是句子有點(diǎn)長 -_-
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n 可以按IP連接數(shù)列出當(dāng)前狀況,發(fā)現(xiàn)異常的,可以封了這個(gè)IP
轉(zhuǎn)載于:https://blog.51cto.com/shenliyang/1364893
總結(jié)
- 上一篇: JPA的persistence.xml的
- 下一篇: 看到关于java资料比较全的,自己收藏