绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
linux网络故障排查步骤与思路
2019-09-10 17:59:06

当linux操作系统产生网络故障时,应先从硬件到软件、从自身到全局。

1,检查网线、网卡

到机房里检查网线两端是否都亮灯,普通服务器的话应该是绿灯常亮为正常,交换机绿灯闪烁表示正在传输数据。

也可以通过命令ethtool ethX来查看某一网卡的链路是否物理连通。

输出中,speed是当前网卡的速度,表示这是一个千兆网卡;Duplex显示了当前网络支持全双工;link detected表示当前网卡和网络的物理连接状态,yes就是正常。通常网速和全/半双工状态是主机和网络协议商自动协商的,也就是auto-negotiation。


2.确定网线是通的之后,再看物理网卡

ifconfig可以看到已成功加载的网卡,用ethtool -i ethX可以看到网卡驱动。lspci可以看到所有连接到pci总线的设备,lsmod显示所有已加载的模块, 加载成功的模块也会在/proc/modules中显示。一般情况下,成功加载网卡后,用ifconfig就可以看了。如果此时找不到网卡,那么应该查看物理网卡有没有连接到pci总线上,lspci检测不到的话很有可能就是网卡坏了。还有一种情况是没有加载网卡模块,先去lspci里找到对应厂商和型号:Ethernet Controller,再用modprobe尝试加载正确的模块,比如modprobe 3c509。如果出现错误,说明该模块不存在。这时候你应该找到正确的模块并且重新编译。


3.网卡物理层没有问题之后,再看网卡配置

用ifconfig就可以看到ip、掩码等等,永久修改网卡信息在/etc/sysconfig/network-scripts/ifcfg-ethX(有些linux发行版不一定是这个文件名,但路径多差不多。它上一层中的network文件是修改hostname的),这个文件也是放入DNS的正确地方。修改之后重启network。

4.检查自身路由表是否正确。用route -n查看内核路由表,通过route命令查看内核路由,检验具体的网卡是否连接到目标网路的路由,之后就可以尝试ping 网关,排查与网关之间的连接。如果无法ping通网关,可能是网关限制了ICMP数据包,或者交换机设置的问题。一个很常见的问题:两块网卡分别提供内网和外网服务,如果默认网关是内网网卡,那么外网服务是访问不到的。这时需要删除再添加默认网关。用route delete/add default gw 命令。

现在自身问题已经检查了一遍,看全局。


5、检查DNS

首先看DNS,在/etc/resolve.conf可看到指定域名服务器,但是这里是不能修改的这个文件又networkManager自动产生,修改要去etc/sysconfig/network-scripts/ifcfg-ethX。

光看是没有用的,nslookup可以用来诊断DNS服务器。

server是本机所指向的DNS服务器地址,大家可以把自己的DNS地址换成114.114.114.114试一试。


6、检查路由

如果DNS也没有问题,接下来就要检查是否可以正常路由到某一台主机,或者说当连接不到某一台远端主机时,应该如何追踪路由。traceroute 是用来跟踪从发出数据包的主机到目标主机之间所经过的网关的工具。

参数选项:

-i 指定网络接口,对于多个网络接口有用。比如 -i eth1 或-i ppp1等;

-m 把在外发探测试包中所用的最大生存期设置为max-ttl次转发,默认值为30次;

-n 显示IP地址,不查主机名。当DNS不起作用时常用到这个参数;也可以在检查时排除DNS的问题。


记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间。星号表示防火墙封掉了ICMP的返回信息。大家感兴趣可以挨个百度下显示的ip,比如我用的是世纪互联提供的公共  DNS(114.114.114.114),那么上图中211.99.171.25一查就是世纪互联的网关。


7、端口检查

接下来要检查的是远端主机的服务端口是否打开。可以用telnet和nmap来检查,没有这两个工具的话自行yum安装。比如我们要看下百度的80端口是否打开了:

状态STATE是open表示开启,如果是filtered表示被防火墙过滤了,大家可以试下百度的22端口,肯定是filtered状态。

也可以查看自身的端口有没有打开,不多举例了。自身端口用的比较多的命令是netstat。

其中第一列是套接字通信协议,第2列和第3列显示的是接收和发送队列,第4列是主机监听的本地地址,反映了该套接字监听的网络;第6列显示当前套接字的状态,最后一列显示打开端口的进程。

8、防火墙问题

如果网络还有问题的话就要检查iptables策略和SELinux了。定位问题前最好将SELinux关了,用iptables -L可查看iptables的规则。

分享好友

点击获得分享链接,复制给好友成功购买后您可以获得2成返利哦~

蚂蚁课堂
创建时间:2019-09-10 17:14:59
本小栈是蚂蚁老师专门为广大读者、课程学员提供的有偿技术答疑论坛,主要提供Linux运维、集群、大数据、虚拟化、docker容器等方向知识点级别的技术答疑(不提供完整的配置方案服务),其它方面尽可能解答,但大家可以在里面自由交流。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 蚂蚁课堂
    栈主

小栈成员

查看更多
  • 小尾巴鱼
  • 栈栈
  • ?
戳我,来吐槽~