|
|
sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle : No such file or directory
& L4 N: W4 V* y% x. P$ V0 N8 B4 M' @& |- r: ^
4 ]- f6 Y2 w3 b# m7 w5 f# W最近发现一个奇怪的问题,一台服务器上部署的网站,用外网访问是正常的,但是使用公司内网访问就访问不上,不仅网站访问不上,连服务器有时候都连接不上。/ m9 q5 Q" V; m# t+ {& K6 y
原因是在内核优化时启用了net.ipv4.tcp_tw_recycle参数. J1 c8 P& |. u, {- v* c1 q
这个参数是默认关闭的,之所以打开是由于这个参数开启后,可以使TCP连接中TIME-WAIT sockets的快速回收,但是在NAT网络下,导致大量的TCP连接建立错误、! c) L. k! H: c& I, U
所以在公司内部有时候能访问,有时候访问不上
# b3 a$ k0 |( _1.先确定参数
" `+ X6 f4 |8 a0 T7 ]& ]依次执行如下命令,查看当前内核配置,确认该参数值为“1”。3 w, n/ u, t" P" g- S8 v# F5 [9 y
+ S4 |6 K, n4 X4 r W5 ]2 C; vcat /proc/sys/net/ipv4/tcp_tw_recycle% z8 J5 C8 D% r& o
cat /proc/sys/net/ipv4/tcp_timestamps% G' \9 u& z6 G: I
; c. k0 P3 [/ H* e, x* A+ K2.在/etc/sysctl.conf配置文件添加如下内容。8 a$ @4 f2 Z& R
7 l( z" f$ K! ^- I. X. j7 I) H
net.ipv4.tcp_tw_recycle=0
`" F2 A$ U1 p7 h9 z0 S; gnet.ipv4.tcp_timestamps=0
! e" G: Z% k' _+ o5 U% p- o1 J* c2 O8 R! d, I
3.执行如下命令,使配置生效。
* ]1 T& `! \8 {7 |3 g$ o
- l* S& a1 z$ J/ y0 c7 F/ j5 q3 hsysctl -p! X8 [5 q( C& b& u
, r; v) q/ E, N) O. G& D" A1 n修改完成后,在公司中访问就正常了: M, l. u8 Y: ~) T6 z5 o
记录下,对于网上提供的调优参数还是要多注意
# y& h( B" H0 n% O9 C
$ y$ p2 X Y% `% o9 g6 _9 t( Q# D' V; X' E" H& L7 ?7 X4 l
|
|