• Linux网络故障


    1 网络故障的一般处理流程:

    (1)网络硬件问题

    (2)检查网卡是否正常工作,检查网卡驱动是否正常加载、IP设置是否正确、系统路由设置是否正确

    (3)检查局域网间主机是否连通正常,可以通过ping自身IP、ping网关、ping局域网内其他主机IP来检查

    (4)检查DNS是否设置正确。通过检查/etc/resolv.conf和/etc/hosts文件进行确认。

    (5)服务套接字是否正常打开。通过telnet和ss命令进行确认

    (6)检查是否有访问权限。可以通过本机防火墙iptables、Linux内核强制访问控制策略来检查

    1.1 检查网卡是否正常工作

    1.1.1 检查网卡是否加载正常

    通过lspci命令和lsmod、modinfo等命令查看网卡设备信息

    [root@master ~]# yum install -y pciutils

    查看网卡基本信息(厂商和信号)

    [root@hehe ~]# lspci |grep -i ethernet
    00:05.0 Ethernet controller: Red Hat, Inc. Virtio network device
    
    [root@hehe ~]# lspci 
    00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
    00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
    00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
    00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
    00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
    00:02.0 VGA compatible controller: Cirrus Logic GD 5446
    00:03.0 Communication controller: Red Hat, Inc. Virtio console
    00:04.0 SCSI storage controller: Red Hat, Inc. Virtio block device
    00:05.0 Ethernet controller: Red Hat, Inc. Virtio network device
    00:06.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
    [root@hehe ~]# lspci |grep -i ethernet
    00:05.0 Ethernet controller: Red Hat, Inc. Virtio network device

    查看网卡详细信息

    [root@hehe ~]# lspci -vvv
    00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
        Subsystem: Red Hat, Inc. Qemu virtual machine
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    
    00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
        Subsystem: Red Hat, Inc. Qemu virtual machine
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    
    00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] (prog-if 80 [ISA Compatibility mode-only controller, supports bus mastering])
        Subsystem: Red Hat, Inc. Qemu virtual machine
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
        Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable)
        Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
        Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable)
        Region 4: I/O ports at c060 [size=16]
        Kernel driver in use: ata_piix
        Kernel modules: ata_piix, ata_generic
    
    00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01) (prog-if 00 [UHCI])
        Subsystem: Red Hat, Inc. QEMU Virtual Machine
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin D routed to IRQ 11
        Region 4: I/O ports at c000 [size=32]
        Kernel driver in use: uhci_hcd
    
    00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
        Subsystem: Red Hat, Inc. Qemu virtual machine
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 9
        Kernel driver in use: piix4_smbus
        Kernel modules: i2c_piix4
    
    00:02.0 VGA compatible controller: Cirrus Logic GD 5446 (prog-if 00 [VGA controller])
        Subsystem: Red Hat, Inc. QEMU Virtual Machine
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Region 0: Memory at fc000000 (32-bit, prefetchable) [size=32M]
        Region 1: Memory at febf0000 (32-bit, non-prefetchable) [size=4K]
        Expansion ROM at 000c0000 [disabled] [size=128K]
        Kernel driver in use: cirrus
        Kernel modules: cirrus
    
    00:03.0 Communication controller: Red Hat, Inc. Virtio console
        Subsystem: Red Hat, Inc. Device 0003
        Physical Slot: 3
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 10
        Region 0: I/O ports at c020 [size=32]
        Region 1: Memory at febf1000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] MSI-X: Enable+ Count=2 Masked-
            Vector table: BAR=1 offset=00000000
            PBA: BAR=1 offset=00000800
        Kernel driver in use: virtio-pci
    
    00:04.0 SCSI storage controller: Red Hat, Inc. Virtio block device
        Subsystem: Red Hat, Inc. Device 0002
        Physical Slot: 4
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Region 0: Memory at fe000000 (64-bit, prefetchable) [size=4K]
        Region 2: Memory at fe001000 (64-bit, prefetchable) [size=4K]
        Capabilities: [40] MSI-X: Enable+ Count=2 Masked-
            Vector table: BAR=2 offset=00000000
            PBA: BAR=2 offset=00000c00
        Kernel driver in use: virtio-pci
    
    00:05.0 Ethernet controller: Red Hat, Inc. Virtio network device
        Subsystem: Red Hat, Inc. Device 0001
        Physical Slot: 5
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Region 0: Memory at fe002000 (64-bit, prefetchable) [size=4K]
        Region 2: Memory at fe003000 (64-bit, prefetchable) [size=4K]
        Capabilities: [40] MSI-X: Enable+ Count=4 Masked-
            Vector table: BAR=2 offset=00000000
            PBA: BAR=2 offset=00000c00
        Kernel driver in use: virtio-pci
    
    00:06.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
        Subsystem: Red Hat, Inc. Device 0005
        Physical Slot: 6
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 10
        Region 0: I/O ports at c040 [size=32]
        Kernel driver in use: virtio-pci
    [root@hehe ~]# lspci -vvv

    查看网卡设备是否识别

    [root@master ~]# lspci -vv|grep -i eth
    02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

    查看网卡驱动和模块

    [root@master ~]# lspci -vv -s 02:01.0
    02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
        Subsystem: VMware PRO/1000 MT Single Port Adapter
        Physical Slot: 33
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0 (63750ns min), Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 19
        Region 0: Memory at fd5c0000 (64-bit, non-prefetchable) [size=128K]
        Region 2: Memory at fdff0000 (64-bit, non-prefetchable) [size=64K]
        Region 4: I/O ports at 2000 [size=64]
        [virtual] Expansion ROM at fd500000 [disabled] [size=64K]
        Capabilities: [dc] Power Management version 2
            Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
            Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
        Capabilities: [e4] PCI-X non-bridge device
            Command: DPERE- ERO+ RBC=512 OST=1
            Status: Dev=ff:1f.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=16 RSCEM- 266MHz- 533MHz-
        Kernel driver in use: e1000
        Kernel modules: e1000

    查看网卡模块信息(一般保存在/lib/modules/`uname -r`/kernel/drivers/net/ethernet目录下)

    [root@master ~]# lsmod |grep e1000
    e1000                 137574  0 
    [root@master ~]# modinfo e1000
    filename:       /lib/modules/3.10.0-862.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>
    retpoline:      Y
    rhelversion:    7.5
    srcversion:     04454A212DD89712602561D
    alias:          pci:v00008086d00002E6Esv*sd*bc*sc*i*
    alias:          pci:v00008086d000010B5sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001099sv*sd*bc*sc*i*
    alias:          pci:v00008086d0000108Asv*sd*bc*sc*i*
    alias:          pci:v00008086d0000107Csv*sd*bc*sc*i*
    alias:          pci:v00008086d0000107Bsv*sd*bc*sc*i*
    alias:          pci:v00008086d0000107Asv*sd*bc*sc*i*
    alias:          pci:v00008086d00001079sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001078sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001077sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001076sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001075sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001028sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001027sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001026sv*sd*bc*sc*i*
    alias:          pci:v00008086d0000101Esv*sd*bc*sc*i*
    alias:          pci:v00008086d0000101Dsv*sd*bc*sc*i*
    alias:          pci:v00008086d0000101Asv*sd*bc*sc*i*
    alias:          pci:v00008086d00001019sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001018sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001017sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001016sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001015sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001014sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001013sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001012sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001011sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001010sv*sd*bc*sc*i*
    alias:          pci:v00008086d0000100Fsv*sd*bc*sc*i*
    alias:          pci:v00008086d0000100Esv*sd*bc*sc*i*
    alias:          pci:v00008086d0000100Dsv*sd*bc*sc*i*
    alias:          pci:v00008086d0000100Csv*sd*bc*sc*i*
    alias:          pci:v00008086d00001009sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001008sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001004sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001001sv*sd*bc*sc*i*
    alias:          pci:v00008086d00001000sv*sd*bc*sc*i*
    depends:        
    intree:         Y
    vermagic:       3.10.0-862.el7.x86_64 SMP mod_unload modversions 
    signer:         CentOS Linux kernel signing key
    sig_key:        3A:F3:CE:8A:74:69:6E:F1:BD:0F:37:E5:52:62:7B:71:09:E3:2B:96
    sig_hashalgo:   sha256
    parm:           TxDescriptors:Number of transmit descriptors (array of int)
    parm:           RxDescriptors:Number of receive descriptors (array of int)
    parm:           Speed:Speed setting (array of int)
    parm:           Duplex:Duplex setting (array of int)
    parm:           AutoNeg:Advertised auto-negotiation setting (array of int)
    parm:           FlowControl:Flow Control setting (array of int)
    parm:           XsumRX:Disable or enable Receive Checksum offload (array of int)
    parm:           TxIntDelay:Transmit Interrupt Delay (array of int)
    parm:           TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int)
    parm:           RxIntDelay:Receive Interrupt Delay (array of int)
    parm:           RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int)
    parm:           InterruptThrottleRate:Interrupt Throttling Rate (array of int)
    parm:           SmartPowerDownEnable:Enable PHY smart power down (array of int)
    parm:           copybreak:Maximum size of packet that is copied to a new buffer on receive (uint)
    parm:           debug:Debug level (0=none,...,16=all) (int)
    [root@master ~]# modinfo e1000

    1.1.2 检查网卡配置文件

    检查IP配置是否正确。

    1.1.3 检查系统路由表是否正确

    一般都是由于网卡配置后,路由表有问题导致无法访问。例如:

    [root@master ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    default         192.168.100.1   0.0.0.0         UG    0      0        0 eth1

    由路由表可以看出,eth1网卡是内网网卡,而网卡的默认路由绑定在了内网网卡上,导致无法对外提供访问。

    可以删除此条路由,将默认路由添加到eth0上即可

    [root@master ~]# route delete default
    
    [root@master ~]# route add default gw 10.0.0.226

    1.2 检查DNS配置是否正确

    linux系统主要通过两个文件来指定系统寻找相关的解析库:/etc/host.conf 和  /etc/nsswitch.conf。/etc/host.conf 指定了系统如何解析主机名,通过域名解析库来获得主机名对应的IP。

    [root@master ~]# cat /etc/host.conf 
    #multi on
    order hosts,bind

    此文件默认配置为:

    multi on

    上面的配置表示:order决定了主机名查询顺序,这里是先找/etc/hosts文件对应的解析,如果没有找到对应的解析,再根据 /etc/resolv.conf 指定的域名服务器进行解析。

    nsswitch是有SUN公司研发。nsswitch已经取代了hosts.conf。

    关于nsswitch可以参考我的另一篇博客:https://www.cnblogs.com/zh-dream/p/12735152.html

    1.3 检查服务是否正常启动

    一般情况下通过telnet命令检查

  • 相关阅读:
    [Sass学习]Sass的安装和使用
    [CSS学习] padding属性讲解
    [CSS学习] line-height属性讲解
    IOS学习之路——Swift语言(2)——基本类型与函数
    IOS学习之路——Swift语言(1)——基本类型、运算符与逻辑控制语句
    上海 day23 -- 面向对象三大特征---多态 和 内置魔法函数
    上海 day22 -- 面向对象三大特征---- 封装
    上海 day21 -- 面向对象三大特征----继承
    上海 day20 -- 面向对象基础
    上海 day18~19 ATM+购物车(待更新)
  • 原文地址:https://www.cnblogs.com/zh-dream/p/12865909.html
Copyright © 2020-2023  润新知