阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下网络故障诊断

74次阅读
没有评论

共计 1846 个字符,预计需要花费 5 分钟才能阅读完成。

导读 由于实现网络服务器的层次结构比较多,因此当网络出现故障时,解决起来比较复杂。下面由我来为大家详细介绍 Linux 系统中可能出现的一些网络问题,如网卡硬件问题、网络配置问题、驱动程序问题,以及网络层、传输层、应用层问题等。

网卡故障可以分为硬件故障和软件故障,判断硬件故障最简单的方法是把该网卡插到其它计算机上使用,如果还是老毛病则网卡损坏,否则网卡正常。实际情况下,大部分网卡出现的故障都属于软件故障,软件故障一般分为两类:一类为设置故障;一类为驱动程序故障。

诊断网卡故障
[root@localhost ~]#dmesg | grep eth
eth0:registered as PCnet/PCI II 79C970A
eth0:link up
eth0:no IPv6 routers present
[root@localhost ~]#

以上命令列出了引导信息中包含 eth 字符串的行,如果出现类似与“eth0:link up”的提示,表示 Linux 已经检测到了网卡,并处于正常工作状态。还有一条 lspci 命令可以列出系统检测到所有 PCI 设备,如果使用的网卡是 PCI 总线的,应该能看到这块网卡的信息。最后可以用 ethtool 查看以太网的链路连接是否正常。

[root@localhost ~]#ethtool eth0
Settings for eth0:
       Current message level: 0x00000007 (7)
       Link detected:yes
[root@localhost ~]#

如果看到“Link detected:yes”一行,表明网卡也对方的网络线路连接是正常的。

网卡驱动程序

在 RHEL 6 中,需要先查看或者设置 /etc/modeprobe.cong 文件,它包含了有关模块的安装和别名信息。

[root@localhost ~]#more /etc/modeprobe.cong 
alias scsi_hostadapter mptbase 
... 
alias eth0 pcnet32 
[root@localhost ~]#

以上显示中,最后一行“alias eth0 pcnet32”表示为 pcnet32 定义了一个别名 eth0, 也就是说,目前使用的以太网卡接口 eth0 对应的模块是 pcnet32, 可以使用一下命令当前系统装载的模块中是否有 pcnet32 模块。

[root@localhost 2.6.18-8.e15]#lsmod | grep pcnet32
pcnet32       35269      0
mii            9409      1   pcnet32 
[root@localhost 2.6.18-8.e15]#

可以发现,pcnet32 已经安装。因此,如果网卡已经被 Linux 检测到,但执行“ipconfig -a”命令时却看不到 eth0 接口,可以按照以上方法把网卡的驱动程序模块找到,再看看这个模块是否已经安装。

诊断网络层问题

网络层问题诊断方法很简单,就是直接 ping 外网的某一个域名或者 IP,能正常连通的,则说明网络层没有问题。

引起 ping 不同的原因很多,可能会是网络线路、网络设置、路由和 ARP 等问题。建议先 ping 一下网关,看是否能通,如果与网关能通,一般就表明网络线路、自己机子的网络设置和 ARP 都没有问题。可以通过命令“route -n”显示路由表,然后得到网关的地址。如果路由表中没有设置默认网关,则表明路由设置有问题,此时需要设置默认网关。

有时,局域网内存在 ARP 攻击或者其它原因,使本机 ARP 缓存中的网关 IP 的 MAC 地址是错误的,这样也会造成与网关 ping 不通。此时,可以使用“arp -d < 网关 IP>”命令删除网关的 ARP 条目,或者通过“arp -a < 网关 IP>< 网关 MAC>”命令设置静态 ARP 条目。

诊断传输层和应用层问题

诊断传输层和应用层的故障最有效的一种手段是使用抓包工具抓取数据包进行分析。在 Linux 中,默认提供了 tcpdump 工具,利用它可以抓取所有访问本机或者从本机出去的数据包,并且可以通过规则只抓取感兴趣的数据包。

与操作系统有关的一种可能的故障原因是防火墙配置不当。在 Linux 中,默认情况下系统启动时会启用 iptables 防火墙,而且只放行少数几个端口。所以当在本机上配置了某种服务时,而这种服务需要通过 TCP 或 UDP 的某个端口才能访问,则要求防火墙开启相应的端口,否则,其它主机将不能访问本机的这种服务。

本文原创地址:ttp://www.linuxprobe.com/linux-network-troubleshooting.html 作者:冯琪,审核员:逄增宝

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1846字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中