连接不上打印服务器错误,一直都是timeout错误,求助

连不通服务器服务怎么办——理论篇 - 推酷
连不通服务器服务怎么办——理论篇
当你访问不到自己web服务器数据,当你ssh登陆被拒,当你pop3读取邮件失败…一句话,当你连不通你的服务器服务,你该怎么办?本文总结出通用而简单的步骤来指导你.
足够简单的思路
本地机器与远端服务器建立连接,消费服务的整个链路可显而易见划分为三部分,本机到网关部分,互联网部分,服务器网关到服务器部分.当然就大部分情况而言一般都是服务器部分的原因:出于安全问题的考虑,我们总会在服务器端进行访问限制,添加防火墙,设置security forbidden.好吧,无论问题的原因是什么,我们查找问题的步骤如下:
嗅探源:利用最简单的网络工具嗅探问题源为三部分的哪个& (服务器&本地&互联网)
定位:找到源后查看相关防火墙及具体服务的status, configuration && access log等
注意:本文中问题源是指你连接服务数据包终止断掉的地方,而非最后采取措施解决问题的一方
来嗅探问题源吧
从log中挖掘信息
当我们的某项服务不能访问时,我们做的第一件事是什么?看log!不会看log的程序员不是好ops.Log中往往直接了当的报告问题所在,结合具体这项服务的相关知识积累能帮你更好的定位问题源,甚至一下子找到.
1.当你在命令行中访问某万维网资源时,不能正常得到结果而返回了403错误,返回的状态码就可以看作服务在客户端给你的log,利用http协议基础你便知道问题源为服务器端,是服务器程序将我们的请求出于安全考虑而禁止,我们便可以进行第二步,登陆服务器查看相关配置寻找具体原因.
2.当你远程安全登陆某主机时被拒,如果你熟悉ssh建立通信的过程便可以用
来查看ssh服务连接时的详细log,从而判断出是最初的tcp建立连接失败还是交换key失败,还是身份验证通过但仍被服务器拒绝…,从而定位问题源.
能从服务在客户端提供的log直接找到问题当然是最高效的方法,但有时你可能仅仅找到
Connection refused
的log或仍让你困惑不已的信息,情参考和使用下列工具.
先来ping一下
PING(Packet Internet Groper)是一款基于ICMP的网络测试工具,用来测试两个主机间的网络连通性.这款工具是应用层直接使用了网络层协议,而没有通过运输层的TCP或UDP,因此不能做端口测试.这是一个最基本的工具,几乎人人都会用,我们先用此命令来ping一下服务器:
命令行命令为:
ping ip (domain name)
ping通:可以证明远程服务器对本地主机处于网络开放状态且两机之间的网络通畅,服务连接不通的问题将更可能集中于权限,端口被禁或端口,密码错误等
ping不通:不能证明服务器网络不可达,因为有可能只是服务器禁止接收响应ICMP包.此时本机可以通过各种简单的方法(如打开浏览器,ping一个已知启用了ICMP的网站等)来测试本机与Internet网络连接是否正常.
经历完此步后可以确定因为网络连通性而导致问题的问题源或证明网络连通.
telnet测试服务端口是否开放
PING主要对主机进行测试,涉及不到端口,而有时可能是服务具体端口受限,此时我们就可以用telnet来测试一下服务具体端口是否开放可用.
telnet address port
telnet成功,证明服务器,防火墙及相关服务端口对本机开放,问题源基本定位于服务器,问题更倾向于与服务的具体业务与配置有关,如服务本身的安全限制,消费服务的数据不合法等.
若ping成功,telnet失败,则是端口出问题,可能被防火墙禁止.此时,问题源可能是服务器的防火墙入口,也有可能是本机或本机所在局域网的NAT的防火墙的出口,请根据自己的实际情况优先查看一端的防火墙状态,其次另一端.
通过telnet具体端口测试后,可以确定问题是否为两个主机部分的防火墙引起,也可以基本定位问题源.
traceroute观察包流动
相比上面两个工具,此工具能让你亲眼观察数据包的流动状况,traceroute可以列出你访问某一服务器的数据包传递的路由状况,timeout时显示***.可以通过该命令查看数据包是否通过本地网关及整个传递过程的信息.命令为:
traceroute address
此命令可以辅助telnet更好的定位是服务器端防火墙还是本地防火墙阻挡了数据包.
来定位具体问题
查看主机防火墙
当你定位问题源是服务器或本机的防火墙时,那么就可以登陆主机查看和修改防火墙配置了.
查看服务log
当你定位到时服务器端具体服务的安全设置或业务导致的问题时则请登陆服务器查看相关服务的log.Linux的主机的log文件目录一般为
下.比如说,如果你请求的是万维网服务,服务器程序为apache,则可以查看
/var/log/apache/error.log
/var/log/apache/access.log
查看服务配置
最后可以具体查看服务相关配置,因为只有找到具体的问题点才能恰当的解决问题.配置文件则一般在各自服务的目录下查找,比如说ssh的配置文件为
/etc/ssh/sshd_config
最后说两句
本篇为查找和解决问题的理论篇,即将一些基本而简单的探测工具和方法以一个清晰的脉络来应用,如感兴趣请关注下一文——实践篇,将会结合理论介绍一些”栗子”.总之,去做一名ops或dev-ops,对分析问题时获得的信息敏感度很重要,拿到问题时心中能有百种怀疑只待一一验证,这应该是最让人感到踏实的事情了.
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致求助啊,服务器发生了异常情况_百度知道
求助啊,服务器发生了异常情况
提问者采纳
务器各种异常发生,服务器主机崩溃重启后,原因留给所有运行的进程一小段时间来清除和终止),该信号默认行为是终止进程,然后将服务器的子进程杀死,它所打开的所有文件描述符关闭,如果中间路由器判定服务器主机不可达。4服务器主机关机Unix系统关机,利用kill命令,客户阻塞与readline调用,于是相应一个RST,内核想该进程发送一个SIGPIPE信号(写操作将返回EPIPE错误)。当客户收到RST,以上是客户主动发送而获悉的服务器崩溃的事实.服务器主机崩溃情况导致客户端TCP持续重传数据分节,这时会导致向客户发送一个FIN,过一段固定时间,给所有运行的进程发送SIGKILL信号(不能捕获,而客户则相应一个ACK,当服务器的TCP接受到来自客户的数据时,由于之前打开那个套接字的子进程已终止,此时在第二次,客户发送数据,服务器将由SIGKILL信号终止,这就是TCP连接终止工作的前半部分,因此服务器TCP对于所接收到的来自客户的数据分节响应一个RST,我们通过netstat -a命令发现服务器处于CLOSE_WAIT状态,情况分析《UNIX网络编程第五章的笔记》[@more@]《UNIX网络编程第五章的笔记》1,则响应“destination unreachable”ICMP消息,随后发生的见上面第1中情况,导致范围ECONNRESET错误,客户端处于FIN_WAIT2状态:同时开启服务器和客户端.服务器主机崩溃后重启(从网络上断开,而RST是由第一次写操作引发的。这时由客户继续向服务器发送数据,此时服务器主机TCP丢失了崩溃前的所有连接信息,将其关机重启)之间建立连接并传输过数据,如果不捕获SIGTEAM信号。3,可通过tcpdump来观察如果客户连续两次针对服务器进行写操作。所返回的错误时ETIMEOUT,返回的错误是EHOSTUNREACH和ENETUNREACH,init进程给所有进程发送SIGTEAM信号(可捕获)。2.服务器进程终止情况RST的产生,作为一个TCP数据分节发送给服务器主机,试图从服务器上接受一个ACK
电脑网络爱好者
其他类似问题
为您推荐:
服务器的相关知识
其他1条回答
什么情况?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 服务器500错误 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信