|
|
sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle : No such file or directory0 j3 m5 e; B7 f3 W8 J
8 I, B3 n! b9 n
; j9 T W+ c& k最近发现一个奇怪的问题,一台服务器上部署的网站,用外网访问是正常的,但是使用公司内网访问就访问不上,不仅网站访问不上,连服务器有时候都连接不上。8 N1 h9 W, ]/ N0 U& s
原因是在内核优化时启用了net.ipv4.tcp_tw_recycle参数
" [; Z6 y6 F! o4 m$ o. ?这个参数是默认关闭的,之所以打开是由于这个参数开启后,可以使TCP连接中TIME-WAIT sockets的快速回收,但是在NAT网络下,导致大量的TCP连接建立错误、9 g& w/ H5 b+ d, [+ f) I! ^5 G- Y9 t2 m
所以在公司内部有时候能访问,有时候访问不上
/ u# X, p% j, Y& o& D1.先确定参数
, z: |! O: t' g8 r% h% S依次执行如下命令,查看当前内核配置,确认该参数值为“1”。
1 r* Z/ x' M: C: }0 W+ m5 O
8 ~: Q) J/ Q4 X$ W6 [, gcat /proc/sys/net/ipv4/tcp_tw_recycle- d0 @/ ^. [' | S1 s
cat /proc/sys/net/ipv4/tcp_timestamps) D) i7 R% f0 Q
, ]3 J, B( b) ]& |/ k2.在/etc/sysctl.conf配置文件添加如下内容。. i O4 _0 i% W1 s. `4 p
$ \/ h2 n; N, I- {! H" _net.ipv4.tcp_tw_recycle=0
" x A" s4 D# |5 @net.ipv4.tcp_timestamps=07 ~* y/ y3 M; a* A/ B0 M
A$ Y7 A* c# {6 }( _. U3.执行如下命令,使配置生效。" `- s9 ~( t" j# ~- `2 B
# e! O3 L% h7 B* i1 h) S1 ]sysctl -p
: T3 h u' @3 m' r) `) Q3 c' v1 a/ r4 s7 i# p. m
修改完成后,在公司中访问就正常了
) `8 z/ p0 }! J9 _记录下,对于网上提供的调优参数还是要多注意3 b& K4 J) \( Q/ Y. D/ y
" H" ^, S" n5 H4 _9 H
6 a. p( p& f# L/ G/ J) Q' b% y3 L |
|