Linux网络故障排查

文章目录

    • 1、链路是否连通
    • 2、网卡和ip是否正常
    • 3、是否正确配置了网关
    • 4、测试DNS是否可用
    • 5、远程主机是否开放端口
    • 6、使用nmap工具检测端口开放情况
    • 7、网络慢排查: iftop

1、链路是否连通

目的:检查网卡与网络是否物理连通,网线是否插好且连接可用,很多时候不能立刻到机房确定物理连接

# 检查网卡与网络是否物理连通,网线是否插好且连接可用,很多时候不能立刻到机房确定物理连接
[root@linux-node1 django-docker]# ethtool eth0    
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s                                            # 当前网卡的速度,这是一个千兆网卡;
        Duplex: Full                                               # 当前网络支持全双工
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: off (auto)
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes                                         # 前网卡和网络的物理连接正常

2、网卡和ip是否正常

[root@linux-node1 django-docker]# ifconfig eth0                    # 查看网卡配置信息是否正确
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.11  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::20c:29ff:fe45:f27a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:45:f2:7a  txqueuelen 1000  (Ethernet)
        RX packets 696302  bytes 931683697 (888.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 191690  bytes 21641720 (20.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@linux-node1 django-docker]# systemctl restart network        # 重启网卡,如果报错可能是网卡配置有问题
[root@linux-node1 django-docker]# vim /etc/sysconfig/network-scripts/ifcfg-eth0   # 查看网卡配置是否正确
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
# UUID=3dacb9a3-62a4-41cc-b9ab-44a20ee9157e
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.56.11
NETMASK=255.255.255.0
GATEWAY=192.168.56.2

3、是否正确配置了网关

1) 如果网卡已经正常启动,需要确认目标网络接口是否正确配置网关

2)同时主机和网关之间的连接没有问题,通过route命令和ping命令结合完成这一阶段的排查

[root@linux-node1 django-docker]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.56.2    0.0.0.0         UG    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
172.22.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-d744c4d28e2f
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

4、测试DNS是否可用

注:通常很多网络问题是DNS故障或配置不当造成的,nslookup和dig命令能够用来排查DNS问题

[root@linux-node1 django-docker]# nslookup www.baidu.com      # yum install bind-utils
[root@linux-node1 django-docker]# cat /etc/resolv.conf        # 查看dns配置是否正常
nameserver 192.168.56.2

5、远程主机是否开放端口

telnet 192.168.56.11 80

6、使用nmap工具检测端口开放情况

[root@linux-node1 django-docker]# nmap -p 22 192.168.56.11
Starting Nmap 6.40 ( http://nmap.org ) at 2020-02-29 07:52 EST
Nmap scan report for linux-node1 (192.168.56.11)
Host is up (0.000089s latency).
PORT   STATE SERVICE
22/tcp open  ssh
# open       代表开发了22端口,并且没有被防火墙拦截
# filtered   代表虽然开发端口,但是被防火墙拦截
# closed     代表本机没有监听这个端口

7、网络慢排查: iftop

[root@linux-node1 django-docker]# iftop -n
interface: eth0
IP address is: 192.168.56.11
MAC address is: 00:0c:29:45:f2:7a

                        391Kb                   781Kb                977Kb
└───────────────────────┴───────────────────────┴─────────────────────────
源IP                   传输方向    目的IP
192.168.56.11           =>      192.168.56.1       752b    816b   1.10Kb
                        <=                         184b    184b    771b
255.255.255.255         =>      192.168.56.1         0b      0b      0b

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
TX(发送):             cum:   2.44MB   peak:   2.81Kb                                                 rates:    752b    816b   1.10Kb
RX(介绍):                    2.43MB           3.17Kb                                                           184b    405b    881b
TOTAL:                 4.87MB           5.98Kb                                                           936b   1.19Kb  1.96Kb

# 最上方的一行刻度是整个网络的带宽比例,
# 下面第1列是源IP,第2列是目标IP,箭头表示了二者之间是否在传输数据,以及传输的方向。
# 最后三列分别是2s、10s、40s时两个主机之间的数据传输速率。
# 最下方的TX、RX分别代表发送、接收数据的统计,TOTAL则是数据传输总量

你可能感兴趣的:(linux)