zoukankan      html  css  js  c++  java
  • linux网络测试(必会)

    一、网络及服务故障的排查思路:

     例:假如http://www.cnblogs.com/zhuji/网址打不开

      第一步:查一下路径通不通

        ping -c3 -i2 -s512 www.cnblogs.com icmp 协议是否禁止

        -c:次数   -i:时间间隔    -s:发包大小

        tranceroute www.cnblogs.com       查看各个节点是否畅通

        telnet www.blogs.com 80     检查服务器web有没有开启,服务开没开,以及防火墙有没有挡住。

                     如果命令卡在第一行表示不通,卡在第二行表示通。

        综上,如果不通:

          1.80服务没开或端口不存在。

          2.服务被防火墙挡住了。

          3.服务监听的端口不在连接的IP上。(连接被限定了IP)

           例:#netstat -lntup | grep ssh

              0.0.0.0表示任意的IP地址都可以连接我的端口,也就是说我的服务并没有限制访问的IP;

              如果是192.168.1.0:22则只限定了192.168.1.0的网段才能够ssh连接我的端口。

          4.运营商默认不开,申请开端口。

    二、如果局域网的某个机器无法上网

      1.单机器无法上网

       (1)ping www.baidu.com

          如果通,但不能上网,可能是浏览器,中毒等问题。

       (2)ping 网关(目的是排除物理链路的问题)

    •   如果ping网关不通,则查看IP设置,然后ping自身IP或ping网关内其他机器IP;如果ping自身不通,检查网卡驱动,IP设置,物理链路。
    •        如果ping网关通,则检查DNS的设置是否正确,pingDNS地址看看通不通,或者nslookup看看公网的域名解析是否正常。

       (3)上网的路由器及ISP线路问题

               (4)辅助排查:IP地址冲突,ARP病毒,交换机环路,核心交换机是否损坏,看看其他人能否上网。

      2.大面积不能上网

        路由器,ISP,交换机环路,核心交换机,ARP病毒。

    三、客户端打开的网站慢,如何排查?

      (一)用户个例还是全部如此,如果全部如此,那么:

       (1)道路是否畅通的问题

    •  ping网站地址看看通不通

          如果能ping通,不丢包,就是服务器有问题(服务器宕机或过载)

        如果能ping通,但丢包,就是机房问题(带宽不稳定,各个线路不稳定)

        如果ping不通,那么ping百度看看,通不通,不通就是机房问题

    •     路由追踪,看看从客户端到服务器的线路节点是否有问题:

          traceroute -d (Linux)

          tracert -d (windows)

          -d:禁止反向解析(速度快)

       (2)机房业务是否OK

    •    telnet www.baidu.com 80       检查服务器有没有开启以及防火墙有没有挡住

                 nmap www.baidu.com -p 80      扫描端口

            curl www.baidu.com 或 wget www.baidu.com

    •   提供服务的服务器是否资源过载,服务器及服务连接数过多,负载高,CPU高,IO高等。

       (3)外部问题

    •   网站购买的带宽满了,通过流量监控服务查看
    •   内链外链(调用外部网站网址有问题)根据网站URL调试网站

          a、Google浏览器直接按F12

          b、火狐 fire bug等

         【没有错误,只是有点警告】

         【有错误,让开发看看是不是错误导致的】

       (4)集群架构问题

    •   web服务器问题
    •        数据库问题
    •        登录数据库看看是否有慢查询语句:show proceslist 调整MySQL配置,优化SQL语句
    •        存储等问题
    •        是不是存储服务器,如NFS、MFS的负载及磁盘IO高

    四、合格的Linux运维必会

      1.TCP/IP协议三次握手和四次断开的过程

      2.http协议的工作原理

       1)地址解析

        如客户端浏览:http://zhuji:8080/index.html

          协议名:http         主机名:zhuji        端口:8080          对象路径:/index.html

        在这一步需要域名系统DNS解析域名zhuji.com 得到主机的IP地址。

          2)封装HTTP请求数据包、

        把第一步的解析结果在结合自己本机的信息,封装成一个HTTP请求数据包。

          3)封装成TCP包,建立TCP连接

        TCP的三次握手

          4)客户机发送请求命令

        建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符,客户机信息许可内容。

          5)服务器响应

    •     服务器接到请求后,给予相应的响应信息,格式为一个状态行,包括信息的协议版本号,一个成功或错误的代码,后边是MIME信息包括服务信息,实体信息和可能的内容。
    •     实体消息是服务器向浏览器发送头部信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据.

          6)服务器关闭TCP连接

        一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码Connection:Keep-alive。TCP连接在发送后将                              仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立连接所需要的时间,还节约了网络带宽。

      3.机器无法上网(详见上方)

      4.网站打开慢(详见上方)

      5.DNS解析原理

                

    1. 在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
    2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
    3. 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
    4. 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
    5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面动作,进行查询,直至找到www.qq.com主机。
    6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转发请求转至上上级,以此循环。不管是本地DNS服务器用的是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

      6.OSI七层网络模型

                  

      7.route如何添加一个网络路由

       添加到主机的路由:

         # route add –host 192.168.1.10 dev eth0

         # route add –host 192.168.1.10 gw 192.168.1.1

       添加到网络的路由:

         # route add –net 192.168.1.0  netmask 255.255.255.0 eth0

         # route add –net 192.168.1.0  netmask 255.255.255.0 gw 192.168.1.1

         # route add –net 192.168.1.0/24 eth1

       添加默认网关:

         # route add default gw 192.168.1.1

       删除路由:

         # route del –host 192.168.1.10 dev eth0

       添加永久路由方法: 

         方法一:

          # vi /etc/rc.local(添加到末尾)

          语句: route add -net 192.168.3.0/24 dev eth0

             route add -net 192.168.2.0/24 gw 192.168.2.254

         方法二:

          # vi /etc/sysconfig/network (添加到末尾)

          语句:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

         方法三:

          # vi /etc/sysconfig/static-routes (没有static-routes的话就手动建立一个这样的文件)

          语句:any net 192.168.3.0/24 gw 192.168.3.254

             any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129

         方法四:

          开启 IP 转发:# echo "1" >/proc/sys/net/ipv4/ip_forward (临时)

                # vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久开启)

      8.如何查看已知端口对应的服务名:

        根据端口号查找对应的服务名

          1)grep -w 端口号 /etc/services

          2)grep "端口号" /etc/services

        根据服务名查找对应的端口号

          1)grep -w 服务名 /etc/services

          2)grep "服务名" /etc/services

        其中-w表示只显示全字符合的列,即精确匹配;""表示匹配一个字边界,即字与空格间的位置。例如,“er”匹配“never”中的“er”,但不匹配“verb”中的“er”(若匹配“verb”中的“er”可                                                使用"B"进行非字边界匹配)。

  • 相关阅读:
    d is less efficient than [0-9]
    How to navigate back to the last cursor position in Visual Studio Code?
    Is there a short-hand for nth root of x in Python 开n次方
    Disable source maps in Chrome DevTools
    Disable map files on SASS
    快速理解脏读,不可重复读,幻读
    AWR学习
    oracle set命令详解
    TimescaleDB上手和性能测试
    Centos 7.5 通过yum安装GNOME Desktop时出现:file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x86_64 conflicts with file from package grub2-common-1:2.02-0.65.el7.centos.2.noarch
  • 原文地址:https://www.cnblogs.com/mashuang/p/9997982.html
Copyright © 2011-2022 走看看