zoukankan      html  css  js  c++  java
  • linux网络管理之网络排错

    网络问题可归纳为硬件问题和软件设置问题两类:

    硬件问题通常需要通过一些专门的设备来分析硬件。

    软件设置问题大多数是设置以及概念理解的问题。

    1.硬件问题

    (1)网线问题

    例如:网线被截断,网线过度扭曲变形造成信号不良,自制网络接头品质不良,网络接头与设备接触不良。

    (2)网卡,Hub以及Router等网络设备问题

    例如:网卡不稳定、质量不佳,或者与整体系统的兼容性不好。个网络设备的接头质量不佳,接触不良,造成信号衰减。网络设备所处环境恶劣导致宕机问题。各网络使用方法不良,造成设备功能衰减。

    (3)设备配置

    例如:架设的网线过长,导致信号衰减严重(以太网CAT5E的网线理论限制长度约90m,两设备之间距离大于90m时,信号就容易出现问题)。其他噪声干扰。局域网上,节点或其他设备过多。

    2.软件问题

    (1)网卡的IP/Netmask设置错误

    例如:IP冲突,子网掩码配置错误,网卡驱动程序使用错误,网卡的IRQ和I/O Address的设置冲突等。

    (2)路由问题

    例如:默认路由配置错误,路由接口与实际不符,使得数据包无法顺利发送。

    (3)通信协议不相符

    例如:两台linux机器要通过NFS通信协议传输数据时,两边都需要支持rpcbind这个启动RPC协议的程序才行。

    (4)网络负荷问题

    例如:同时有大量的数据包涌进同一个网络时,就有可能造成网络的停顿甚至故障。(思博伦打流测试等)

    (5)其他问题

    例如:一些port被防火墙阻挡,应用程序本身的bug,应用程序用户的网络设置,不同操作系统的兼容性等。

    3.处理思路

    (1)了解问题:是刚发生的问题,还是之前有人做了什么动作之后导致的无法连接。

    (2)确认局域网连接:用ping来沟通两台机器或路由器

    (3)确认对外连接

    (4)确认DNS查询:利用nslookup,host,或dig命令

    (5)确认Internet节点:利用traceroute检查各节点是否有问题。

    (6)确认服务器状态是否正常。

    (7)防火墙或者权限问题

    4.处理流程

    (1)网卡工作确认

    a.确认网卡是否已近驱动成功

    观察网卡信息是否被内核捕获

    [root@localhost ~]# dmesg |grep -in eth
    1740:[    2.275192] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:14:b5:f9
    1741:[    2.275204] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
    1783:[    6.039168] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    1784:[    6.044525] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    由1741行可知,网卡使用的模块为e1000,使用的芯片Intel,由1784行,可知1000M的全双模式。
    [root@localhost ~]# lspci |grep -i ethernet
    02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
    使用的是虚拟网卡

    查看网卡的模块

    [root@localhost ~]# lsmod |grep 1000
    e1000                 137500  0     #模块已近加载到内核
    [root@localhost ~]# modinfo e1000
    filename:       /lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/net/ethernet/intel/e1000/e1000.ko.xz   #内核模块位置(注意:不同内核版本使用的驱动程序是不一样的。所以,自己编译的驱动程序需要重新编译。)
    version:        7.3.21-k8-NAPI
    license:        GPL
    description:    Intel(R) PRO/1000 Network Driver
    author:         Intel Corporation, <linux.nics@intel.com>
    rhelversion:    7.4
    srcversion:     9E0A112E5D47C996E7C4A58
    alias:          pci:v00008086d00002E6Esv*sd*bc*sc*i*
    alias:          pci:v00008086d000010B5sv*sd*bc*sc*i*

    若驱动不成功,则需要编译网卡驱动程序。

    b.确认是否可以手动直接建立IP参数

    建立IP测试

    [root@localhost ~]# ifconfig eth0 192.168.42.200
    
    Connection closed by foreign host.
    
    Disconnected from remote host(192.168.42.181:22) at 12:06:08.
    
    Type `help' to learn how to use Xshell prompt.
    [c:~]$ ssh 192.168.42.200
    
    
    Connecting to 192.168.42.200:22...
    Connection established.
    To escape to local shell, press 'Ctrl+Alt+]'.
    
    WARNING! The remote SSH server rejected X11 forwarding request.
    Last login: Thu Nov 21 01:07:32 2019 from 192.168.42.1
    [root@localhost ~]# 

    能够正常检测并响应,则证明网卡设置是没有问题的。

    (2)局域网内各项链接设备检测

    a.明确局域网网段

    b.检查Gateway与DNS的设置

    (3)确认路由表规则

    使用ping来连接DNS解析服务器。

    [root@localhost ~]# cat /etc/resolv.conf
    # Generated by NetworkManager
    search localdomain
    nameserver 223.5.5.5
    [root@localhost ~]# ping 223.5.5.5
    PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
    64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=36.2 ms
    64 bytes from 223.5.5.5: icmp_seq=2 ttl=128 time=36.7 ms
    64 bytes from 223.5.5.5: icmp_seq=3 ttl=128 time=36.4 ms
    64 bytes from 223.5.5.5: icmp_seq=4 ttl=128 time=37.2 ms

    能通,则表明与外部网络连接没有问题。不通,则可能是防火墙或者路由的问题了。

    检查路由:

    [root@localhost ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.42.2    0.0.0.0         UG    100    0        0 eth0
    192.168.42.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0

    (4)主机名与IP查询的DNS错误

    [root@localhost ~]# ping 223.5.5.5
    PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
    64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=36.4 ms
    
    [root@localhost ~]# ping www.baidu.com

    DNS地址能通,但是不能访问域名,大多是DNS配置问题,检查/etc/resove.conf以及/etc/hosts文件。

    (5)公网问题

    使用traceroute跟踪路由

    (6)服务器问题

    上述均没有问题,却某台机器登录不不上,最大的可能是主机的配置问题。

    a.主机没有开发开该服务

    b.主机的权限设置错误

    c.安全机制配置错误

    例如SElinux是用来更细微的控制主机访问的一种核心机制,SElinux会阻挡服务的提供。此外,/etc/hosts.deny、PAM模块等,都可能造成用户无法登录的问题。

    d.防火墙设置问题

    可使用tcpdump来跟踪数据包,以便顺利的了解防火墙是否设置错误。

  • 相关阅读:
    小谢第18问:如何让element-ui的弹出框每次显示的时候初始化,重新加载元素?
    小谢第7问:js前端如何实现大文件分片上传、上传进度、终止上传以及删除服务器文件?
    小谢第36问:elemet
    小谢第35问:已经 git commit 的代码怎么回退到本地
    小谢第34问:vue中路由传参params 和 query区别
    小谢第33问:获取对象所有的属性值
    小谢第32问:git 可视化管理工具
    小谢第31问:git拉取所有分支
    小谢第30问:get拼接字符串常用接口含义
    小谢第29问:Vue项目打包部署到服务器上,调接口就报js,css 文件404
  • 原文地址:https://www.cnblogs.com/anttech/p/11904936.html
Copyright © 2011-2022 走看看