修复一下系统试试
1、开机按F8不动到高级选项出现在松手,选“最近一次的正确配置”回车修复。
2、开机按F8进入安全模式后在退出,选重启或关机在开机,就可以进入正常模式(修复注册表)。
3、如果故障依旧,请你用系统自带的系统还原,还原到你没有出现这次故障的时候修复(如果正常模式恢复失败,请开机按F8进入到安全模式中使用系统还原)。
4、如果故障依旧,使用系统盘修复,打开命令提示符输入SFC /SCANNOW 回车(SFC和/之间有一个空格),插入原装系统盘修复系统,系统会自动对比修复的。
5、如果故障依旧,在BIOS中设置光驱为第一启动设备插入系统安装盘按R键选择“修复安装”即可。
6、如果故障依旧,建议重装 *** 作系统。
如果实在不行,建议选择修复安装,这样即修复了系统,又可使C盘的程序和文件不受损失。
宽带上网故障诊断方法如下(以ADSL为例)
(1) 首先检查电话线有无问题(可以拨一个电话测试),如果正常,接着检查信号分频器是否连接正常(其中电话线接Line口,电话机接Phone口,ADSL Modem接Modem口)。
(2) 如果信号分频器的连接正常,接着检查ADSL Modem的“Power(电源)”指示灯是否亮,如果不亮,检查`ADSL Modem电源开关是否打开,外置电源是否插接良好等。
(3) 如果亮,接着检查“LINK(同步)”指示灯状态是否正常(常亮为闪烁);如果不正常,检查ADSL Modem的各个连接线是否正常(从信号分频器连接到ADSL Modem的连线是否接在Line口,和网卡连接网线是否接在LAN口,是否插好),如果连接不正确,重新接好连接线。
(4) 如果正常,接着检查“LAN”或“PC”指示灯状态是否正常。如果不正常,检查ADSL Modem上的LAN口是否接好,如果接好,接着测试网线是否正常,如果不正常,更换网线;如果正常,将电脑和ADSL Modem关闭30秒后,重新开启ADSL Modem和电脑电源。
(5) 如果故障依旧,接着依次单击“开始/控制面板/系统/硬件/设备管理器”命令,打开“设备管理器”窗口中双击“网络适配器”选项,打开“网络适配器属性”对话框,然后检查网卡是否有冲突,是否启用,如果网卡有冲突,调整网卡的中断值。
(6) 如果网卡没有冲突,接着检查网卡是否正常(是否接触不良、老化、损坏等),可以用替换法进行检测,如果不正常,维修或更换网卡。
(7) 如果网卡正常,接着在“网上邻居”图标上单击鼠标右键,在打开的快捷菜单中选择“属性”命令,打开“本地连接属性”对话框。在“本地连接属性”对话框中检查是否有“Internet协议(TCP/IP)”选项。如果没有,则需要安装该协议;如果有,则双击此项,打开“Internet协议(TCP/IP)属性”对话框,然后查看IP地址、子网掩码、DNS的设置,一般均设为“自动获取”。
(8) 如果网络协议正常,则为其他方面故障,接着检查网络连接设置、浏览器、PPPOE协议等方面存在的故障。
局域网无法上网故障诊断方法
局域网中单台电脑无法上网诊断方法如下:
第1步:首先确定是单台电脑不能上网还是局域网中所有电脑都不能上网。如果是单台电脑不能上网,在Windows XP/2000 *** 作系统中,依次单击开始/所有程序/附件/通信/网络连接命令,打开“网络连接”窗口(也可以在网上邻居图标上单击鼠标右键选“属性”命令),
第2步:接着检查“本地连接”的状态。如果本地连接的图标是两个小电脑闪亮,提示“已连接上”,这代表从交换机HUB到电脑的线路是正常的,网卡基本能正常工作,不能上网是由于 *** 作系统设置不当或软件限制等原因引起的。用Ping命令Ping远程主机,看能否Ping通,如果能Ping通则说明网络连接正常,接着检查电脑中的防火墙设置、代理服务器设置等。
第3步:如果Ping不通,则可能是网络协议配置问题。检查电脑IP地址、网关、DNS等配置。
第4步:如果“网络连接”窗口中的本地连接图标是灰色,说明本地连接(网卡)被禁用了,这时只须双击本地连接图标重新启用即可。
第5步:如果“网络连接”窗口中本地连接图标提示“本地电缆被拔出”,则表明交换机或HUB到用户网卡的网线接头有一端松动了或网线有问题,接着检查网线是否接触良好,如果接触良好接着检查网线。ARP类病毒的解决方案
1、清空ARP缓存: 大家可能都曾经有过使用ARP的指令法解决过ARP欺骗问题,该方法是针对ARP欺骗原理进行解决的。一般来说ARP欺骗都是通过发送虚假的MAC地址与IP地址的对应ARP数据包来迷惑网络设备,用虚假的或错误的MAC地址与IP地址对应关系取代正确的对应关系。若是一些初级的ARP欺骗,可以通过ARP的指令来清空本机的ARP缓存对应关系,让网络设备从网络中重新获得正确的对应关系,具体解决过程如下:
第一步:通过点击桌面上任务栏的“开始”->“运行”,然后输入cmd后回车,进入cmd(黑色背景)命令行模式;
第二步:在命令行模式下输入arp -a命令来查看当前本机储存在本地系统ARP缓存中IP和MAC对应关系的信息;
第三步:使用arp -d命令,将储存在本机系统中的ARP缓存信息清空,这样错误的ARP缓存信息就被删除了,本机将重新从网络中获得正确的ARP信息,达到局域网机器间互访和正常上网的目的。如果是遇到使用ARP欺骗工具来进行攻击的情况,使用上述的方法完全可以解决。但如果是感染ARP欺骗病毒,病毒每隔一段时间自动发送ARP欺骗数据包,这时使用清空ARP缓存的方法将无能为力了。下面将接收另外一种,可以解决感染ARP欺骗病毒的方法。
2、指定ARP对应关系:其实该方法就是强制指定ARP对应关系。由于绝大部分ARP欺骗病毒都是针对网关MAC地址进行攻击的,使本机上ARP缓存中存储的网关设备的信息出现紊乱,这样当机器要上网发送数据包给网关时就会因为地址错误而失败,造成计算机无法上网。
第一步:我们假设网关地址的MAC信息为00-14-78-a7-77-5c,对应的IP地址为19216821。指定ARP对应关系就是指这些地址。在感染了病毒的机器上,点击桌面->任务栏的“开始”->“运行”,输入cmd后回车,进入cmd命令行模式;
第二步:使用arp -s命令来添加一条ARP地址对应关系, 例如arp -s 19216821 00-14-78-a7-77-5c命令。这样就将网关地址的IP与正确的MAC地址绑定好了,本机网络连接将恢复正常了;
第三步:因为每次重新启动计算机的时候,ARP缓存信息都会被全部清除。所以我们应该把这个ARP静态地址添加指令写到一个批处理文件(例如:bat)中,然后将这个文件放到系统的启动项中。当程序随系统的启动而加载的话,就可以免除因为ARP静态映射信息丢失的困扰了。
3、添加路由信息应对ARP欺骗:
一般的ARP欺骗都是针对网关的,那么我们是否可以通过给本机添加路由来解决此问题呢。只要添加了路由,那么上网时都通过此路由出去即可,自然也不会被ARP欺骗数据包干扰了。第一步:先通过点击桌面上任务栏的“开始”->“运行”,然后输入cmd后回车,进入cmd(黑色背景)命令行模式;
第二步:手动添加路由,详细的命令如下:删除默认的路由: route delete 0000;添加路由:
route add -p 0000 mask 0000 1921681254 metric 1;确认修改:
route change此方法对网关固定的情况比较适合,如果将来更改了网关,那么就需要更改所有的客户端的路由配置了。
4、安装杀毒软件:
安装杀毒软件并及时升级,另外建议有条件的企业可以使用网络版的防病毒软件。
建议你使用瑞星或卡巴斯基来查杀病毒。
用超级巡警35、360安全卫士来清理和维护系统,清除流氓软件和木马。
超级巡警 V35
>在平时的开发中,经常会碰到一些需要检测tcp连接是否正常的场景。比如一个分布式的应用,一个调度任务的节点管理一堆用来跑业务的节点。当调度节点进行调度的时候,需要把任务分发给它认为正常的业务节点去执行。业务节点是否正常,一个重要的参考依据就是调度节点和业务节点之间的tcp连接是否正常。这时候就需要调度节点主动地去检测tcp连接。常见的检测方法有以下几种
方案一、通过TCP协议的返回值进行判断
<1> 利用select,把socket设置为非阻塞。然后使用select等待该socket的可读事件。如果socket可读,但是recv的返回值是0,则说明socket已经被对端断开,这时候就可以调用close关闭socket。这里还要注意一点,recv还可能返回负数,这个代表socket *** 作出错。但是仍然应该判断一下errno是否为EINTR。如果errno是EINTR,则说明recv函数是被信号中断返回的,这时候不能判断socket的连接是否正常,也不应该调用close关闭socket。
<2> 利用poll的事件。poll本身提供了POLLHUP,POLLERR, POLLNVAL三个事件。如果文件描述符是socket,则POLLHUP代表socket已经断开了连接,在TCP底层就是已经收到了FIN报文。POLLERR表示socket出现了错误,一般情况下是收到了rst报文,或者已经发送了rst报文。这两种情况都应该调用close关闭socket。POLLNVAL代表socket没有打开,这时不能使用close关闭它,而应该根据自己的业务做一些其他的 *** 作。因为关闭一个未打开的socket会出错。
这两种方法都可以很精确地判断tcp连接是否正常,但是仍然有很明显的缺陷。就是它只可以根据TCP *** 作的返回值来进行判断。如果TCP四次握手没有正常被执行呢?比如连接对端机器直接挂了,那么就不会发送FIN报文给这一端,select不会返回socket可读,poll不会返回socket异常。那么这个死链接将会永远检测不到。直到写这个socket的时候,对端直接返回一个ret报文,这时才知道这个连接已经断掉了。这就意味着tcp连接异常可能永远检测不到,或者检测到的延迟非常大。这对于一些资源宝贵而且要求高性能的服务器是不能接受的,比如游戏服务器,比如搜索服务器。
方案二、在第一种方案的基础上设置socket的 keep alive 机制
方案一的主要缺陷在于检测不及时,或者根本检测不到。TCP协议提供了keep alive机制。如果开启了这个特性(暂时称开启了keep alive的一端为开启端),在默认情况下,开启的着一端的socket相关结构中会维护一个定时器,默认是2小时。如果在2小时内两端没有数据往来,那么开启端就会给另一端发送一个ack空报文。这时候分几种情况:
<1> 对端机器可达,而且TCP相关组件运行正常。那么对端就会给开启端发送一个ack空报文。这时开启端就知道对端是正常的,意味着tcp连接也没有问题。开启端会重新初始化定时器,等待下一个超时的到来。需要注意的是,如果两端之间有数据往来,定时器也会被重新初始化为2个小时。
<2> 对端挂了,或者正在重启,还没有完全起来。或者对端服务器不可达。 这种状态的对端是不会响应这个ack的。开启端的 keep alive 机制会把这种情况当探测超时来处理,并且重新发送ack到对端。当超时次数超过一定限制,keep alive 就认为这个tcp连接有问题。典型值是每次75秒,超时9次。
<3> 对端挂过,但是已经重启完成。这时候发送这个ack和写已经关闭的socket是一种情况,对端会返回一个rst报文,这样开启端就知道tcp连接出问题了。
可以看出 keep alive 机制弥补了方案一种不能判断没有进行正常四次挥手连接出现问题的缺陷。默认的发送超时和发送间隔都是可以调整的。
tcp_keepalive_time: KeepAlive的空闲时长,默认是2小时
tcp_keepalive_intvl: KeepAlive探测包的发送间隔,默认是75s
tcp_keepalive_probes: 在tcp_keepalive_time之后,没有接收到对方确认,继续发送保活探测包次数,默认是9次
这3个参数使用 setsockopt函数都是可以配置的。
方案二看似已经完美了,能够比较精确而且及时地发现有问题的连接。但是还有2个缺点。第一个是 keep alive 机制看似牛逼,但是很多人不建议使用。因为上面说的3个参数很难根据业务场景给出合适的值,设置不好很容易对tcp连接状态发生误判,关闭了一个本来正常的连接。而且没有一个主动通知应用层的方式。比如socket连接出错了,TCP协议接到了rst,fin,或者keep alive判断出socket有问题了,但是并不会主动去通知应用层,必须我们自己 recv socket或者等待错误事件才能得到这个错误。第二个是很多场景下,keep alive 检测仍然不够及时,比如对端挂了,最长需要等待 tcp_keepalive_intvl tcp_keepalive_probes时间才可以检测出来,而且这两个值还不能设置得太小,太小了容易误判。
方案三、应用层的心跳
这种形式的心跳设计就比较多样化了,而且灵活,可以很好地适应业务场景。唯一的缺点就是要自己写代码。我目前接触到的就是定期进行RPC调用。看RPC调用是否正常,如果返回错误或者抛出异常,就说明连接有问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)