1.TCP连接的一方A发起终止请求,并更为FIN-WAIT-1状态。
2.另一方B接受请求,并向返回确认,并更为CLOSE_WAIT
3.当A接受到B返回的确认后,状态由FIN-WAIT-1变为FIN-WAIT-2
4.A进入FIN-WAIT-2的定时器,这个时间就是由net.ipv4.tcp_fin_timeout设置的
5.B会再次向A发送终止请求,并变更为LAST-ACT
6.A接受请求,并向B返回确认,变更为TIME-WAIT
7.B接受到A返回的确认后,关闭连接,变更为CLOSED
8.A进入TIME-WAIT的定时器,超时后,连接终止,变更为CLOSED
此时TCP连接正式关闭
2.另一方B接受请求,并向返回确认,并更为CLOSE_WAIT
3.当A接受到B返回的确认后,状态由FIN-WAIT-1变为FIN-WAIT-2
4.A进入FIN-WAIT-2的定时器,这个时间就是由net.ipv4.tcp_fin_timeout设置的
5.B会再次向A发送终止请求,并变更为LAST-ACT
6.A接受请求,并向B返回确认,变更为TIME-WAIT
7.B接受到A返回的确认后,关闭连接,变更为CLOSED
8.A进入TIME-WAIT的定时器,超时后,连接终止,变更为CLOSED
此时TCP连接正式关闭
ssh到服务器端乱码,vim显示乱码解决方案
[ 2010-12-11 20:13:02 | 作者: admin ]
解决思路:
1、首先要确定系统中文显示是否正常,修改LANG
linux终端tty1-tty6环境是不支持显示中文的,即使你修改LANG为gbk,你看到的还是乱码,除非安装有中文化接口软件
如果是windows主机,通过远程联机软件到服务器端,命令行界面是可以看到中文的,只需设置LANG正确
2、vim可以将字符配置到~/.vimrc文件中,运行vim的时候会先读取改文件配置,例如:加入
set fileencodings=utf-8,gbk,ucs-bom,cp936
encoding:encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer、消息文字等。在Unix环境下,encoding的默认设置等于locale;Windows环境下会和当前代码页相同。在中文Windows环境下encoding的默认设置是cp936(GBK)。
...
阅读全文…
1、首先要确定系统中文显示是否正常,修改LANG
linux终端tty1-tty6环境是不支持显示中文的,即使你修改LANG为gbk,你看到的还是乱码,除非安装有中文化接口软件
如果是windows主机,通过远程联机软件到服务器端,命令行界面是可以看到中文的,只需设置LANG正确
2、vim可以将字符配置到~/.vimrc文件中,运行vim的时候会先读取改文件配置,例如:加入
set fileencodings=utf-8,gbk,ucs-bom,cp936
encoding:encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer、消息文字等。在Unix环境下,encoding的默认设置等于locale;Windows环境下会和当前代码页相同。在中文Windows环境下encoding的默认设置是cp936(GBK)。
...
阅读全文…
LINUX下解决time_wait连接过多和同一IP连接过多的问题
[ 2010-12-11 20:10:47 | 作者: admin ]
经常检查apache的连接数,会发现很多无用的time_wait连接。有人说这是正常的,是因为一个请求中途中断造成的;还有人说微软的IE连接时产生的Time_wait会比用Firefox连接时多。个人认为有一定的Time_wait是正常的,如果超过了连接数的比例就不是很正常,所以还是找来方法解决一下。
先检查一下time wait的值:
[root@aaa1 ~]#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
...
阅读全文…
先检查一下time wait的值:
[root@aaa1 ~]#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
...
阅读全文…
nginx 的 tcp_nopush 和 tcp_nodelay
[ 2010-12-11 00:51:15 | 作者: admin ]
TCP_NODELAY 和 TCP_CORK,
这两个选项都对网络连接的行为具有重要的作用。许多UNIX系统都实现了TCP_NODELAY选项,但是,TCP_CORK则是Linux系统所独有的 而且相对较新;它首先在内核版本2.4上得以实现。此外,其他UNIX系统版本也有功能类似的选项,值得注意的是,在某种由BSD派生的系统上的 TCP_NOPUSH选项其实就是TCP_CORK的一部分具体实现。
TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。 John Nagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参 看IETF RFC 896)。他解决的问题就是所谓的silly window syndrome ...
阅读全文…
这两个选项都对网络连接的行为具有重要的作用。许多UNIX系统都实现了TCP_NODELAY选项,但是,TCP_CORK则是Linux系统所独有的 而且相对较新;它首先在内核版本2.4上得以实现。此外,其他UNIX系统版本也有功能类似的选项,值得注意的是,在某种由BSD派生的系统上的 TCP_NOPUSH选项其实就是TCP_CORK的一部分具体实现。
TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。 John Nagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参 看IETF RFC 896)。他解决的问题就是所谓的silly window syndrome ...
阅读全文…
日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者等等。正因为如此,抚琴煮酒特的将它整理成一篇比重跟硬件篇、网络篇并列的文章,作为《明明白白你的Linux服务器》系列的第三篇,希望大家能从中学习到对自己有用的东西。
一、配置syslog(gyl4802959同学撰写)
目前,linux依旧使用syslogd作为日志监控进程,对其进行必要的配置能减少很多麻烦,并且可更有效的从系统日志监控到系统的状态。理解并完善一个syslog的配置,对于系统管理员来说显得尤为重要。
/etc/syslog.conf根据如下的格式定义规则: facility.level action
设备.优先级 动作facility.level 字段也被称为sele...
阅读全文…
一、配置syslog(gyl4802959同学撰写)
目前,linux依旧使用syslogd作为日志监控进程,对其进行必要的配置能减少很多麻烦,并且可更有效的从系统日志监控到系统的状态。理解并完善一个syslog的配置,对于系统管理员来说显得尤为重要。
/etc/syslog.conf根据如下的格式定义规则: facility.level action
设备.优先级 动作facility.level 字段也被称为sele...
阅读全文…
明明白白你的Linux服务器-硬件篇
[ 2010-12-11 00:41:32 | 作者: admin ]
《明明白白你的Linux服务器》系列的第一篇
一、如何查看服务器的CPU
今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cpu工作模式也需要确切的知道linux服务器到底有多少个逻辑cpu,不过现在服务器那是相当的彪悍,直接上worker_processes 8吧。
判断依据:
1.具有相同core id的cpu是同一个core的超线程。(Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.)
2.具有相同physical ...
阅读全文…
一、如何查看服务器的CPU
今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cpu工作模式也需要确切的知道linux服务器到底有多少个逻辑cpu,不过现在服务器那是相当的彪悍,直接上worker_processes 8吧。
判断依据:
1.具有相同core id的cpu是同一个core的超线程。(Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.)
2.具有相同physical ...
阅读全文…
linux下TIME_WAIT过多的解决办法(ip_local_port_range)
[ 2010-12-11 00:19:03 | 作者: admin ]
p.s. 最近nginx不正常,表现为首次打开的时候会很慢或者干脆打不开,要刷新下才能继续。fast-cgi的TIME_WAIT比较多5百左右,占到总连接4分之1。试试是不是ip_local_port_range问题,原则就是不与本地已经使用的端口范围冲突,设置端口 2**** 到 4**** 。 (重启系统需要重新设置)
如果使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短链接的方式和后端交互的原因,使得nginx 和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的 TIME_WAIT。查阅TIME_WAIT资料,发现这个状态很多也没什么大问题,但可能因为它占用了系统过多的端口,导致后续的请求无法获取端口而造成障碍。
...
阅读全文…
如果使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短链接的方式和后端交互的原因,使得nginx 和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的 TIME_WAIT。查阅TIME_WAIT资料,发现这个状态很多也没什么大问题,但可能因为它占用了系统过多的端口,导致后续的请求无法获取端口而造成障碍。
...
阅读全文…