访问不了服务器端口问题
遇到一个问题:
客户反馈能够ping通服务器,但远程连接不上服务器(整个公司能有一两个client端能连上服务器),也访问不了服务器上的其他端口
排查过程如下:
1.让客户提供telnet端口报错信息,显示超时(通过超时能判断些问题)
2.判断网络连通性,client端可以ping通服务器
3.检查服务器端口是否监听,端口监听正常
4.是否系统内防火墙和pam模块有限制,检查发现系统内iptables/ufw和pam模块默认策略 没有问题
5.检查系统内hosts.deny和hosts.allow是否有对客户ip做相关限制,发现没有限制
6.检查系统内相关日志,也没有异常日志,但客户尝试登陆的日志并没有记录到auth.log里,从这里看估计请求都没有到达七层应用层面去,不然日志服务正常的话肯定会记录。
7.让客户连接然后在服务器端抓包发现,服务器能收到syn包,但是没有回应。这就能定位是系统层面限制导致的了,只要找到这个限制就行(结合第五条分析,基本判断限制是在系统层面的,不是应用层面的限制了)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
一番抓耳挠腮 N个小时之后,通过客户提供的主机权限,发现/etc/sysctl.conf文件在客户反馈问题的当天有做配置修改。
接着进行配置查看发现net.ipv4.tcp_rw_recycle = 1这个内核参数值为1,由于客户公司内网办公环境是通过NAT转换成一个固定公网ip外出访问,但开启了这个参数之后,服务器会对收到的包进行时间戳比对,但NAT环境中多台主机同时请求就会出现TPC/IP时间戳不连续,造成服务端丢弃数据包 不做响应,刚好克制这种NAT环境,让客户把rw_recycle的值改成0在测试就好了。
之前还问过客户有没有做相关配置改动,客户一个劲说 没有 没有啊!
进一步学习tcp_rw_recycle和tw_reuse参数可以参考这篇文章:
https://www.cnblogs.com/Tao9/p/8267121.html
请问世界上什么最硬?? 那肯定是客户的嘴啊!
不过这客户还是很有爱的哈哈哈