无法连接网络时的处理方式(Linux)
  kIM7GUNpnV3x 2023年11月02日 70 0

一:概述

Linux系统提供了非常强大的网络服务器功能,比如Web服务器、DNS服务器、FTP服务器等,但是也会因此产生很多的网络问题。下面来讲解一下,网络出现问题时应该怎么解决。

二:排除系统网络接口问题

用户更改系统的网络设置或者连接到其他的网络环境时,可能会导致无法访问局域网中的服务器或者Internet上的服务器。通常这种情况,网络层次中的上层会依赖下层,按顺序从网络层次的下层到上层依次检查网络问题是排除网络故障问题比较好的方法。网络的层次模型如下图所示:

                                  无法连接网络时的处理方式(Linux)_服务器

可以根据者5个层次从下至上依次检查下面几点:

<1>检查电缆或者连接器是否已经连接(物理层)

<2>检查网络接口的数据链接是否已经上传(数据链路层)

<3>检查网络接口是否已经正确设置了IP地址和子网掩码(网络层)

如果不知道问题在哪,可以使用排除法,首先检查物理层,确保网线接口、各种电源插头之类的连接是否有问题,如果没有问题再依次向上排查。

如果已经确定了是网络接口出了问题:可以根据以下来解决:

使用ip link show命令检查网络接口的数据链路状态,如下表所示:

状态

说明

UP

接口状态设定为UP

LOWER_UP

物理层已连接,载波已检测,链路已建立(UP)

NO-CARRIER

物理层未连接,未检测到载波,链路已断开(DOWN)

state UP

接口已启动(链接UP,配置UP)

state DOWN

接口已关闭(链接DOWN,配置DOWN)

BROADCAST

启用广播

MULTICAST

启用组播

下面以enp0s3接口为例说明网路接口的检查顺序。检查网络接口enp0s3的链接状态,如下图所示,当前接口状态显示为UP、LOWER_UP、state UP,表示接口正在运行中。如果显示NO-CARRIER、UP、state DOWN,表示停止接口(设定为UP,但是链接为DOWN);如果不显示UP,只显示state DOWN表示当前接口处于停止状态。如果显示NO-CARRIER表示未检测到载波,需要检查电缆或连接器是否断开。

                                  无法连接网络时的处理方式(Linux)_IP_02

如果接口没有显示UP,这是由于该接口已设置关闭,需要使用ip link set enp0s3 up检查enp0s3接口是否已经启动。

使用ip addr show或ip a show命令检查网络接口enp0s3的IP地址,如下图所示。结果显示enp0s3的IP地址为192.168.0.20/16,网络掩码为255.255.0.0。如果没有显示IP地址,表示没有设置IP地址,可以使用网络命令设置IP地址。

                                  无法连接网络时的处理方式(Linux)_网络接口_03

设置网络接口的IP地址,可以通过动态(DHCP)获取静态的引用配置文件的方式进行。CentOS和Ubuntu中使用NetWorkManager的配置文件路径如下。

CentOS:   /etc/sysconfig/networkscript/ifcfg-*

Ubuntu:  /etc/NetworkingManager/system-connections/*

执行nmcli con show命令显示接口列表。通过指定enp0s3接口查看接口IP地址相关的配置信息,manual表示手动设置IP地址(静态),auto表示自动获取IP地址(),如下图所示.IP地址为192.168.0.20/16,网络掩码为255.255.0.0。网关为:192.168.255.254

                                  无法连接网络时的处理方式(Linux)_服务器_04

接下来查看enp0s3接口的连接状态,连接状态connnection.autoconnect为是表示接口在系统启动时自动启动运行,如下图所示。如果connection.autoconnect为否,表示除非使用ip命令将网络接口设置为UP,否则接口将不会启动。

                                  无法连接网络时的处理方式(Linux)_IP_05

三:接下来需要排除的地方

如果网络接口设置正确的IP地址也无法访问目标主机,你需要检查是否正确设置了路由表。另外,如果没有为网络接口设置正确的网络掩码,也无法正确识别网络。检查路由表可以通过ip route show 或 route命令检查路由表的设置,如下图所示。如果正确设置了默认路由,就可以访问指定目标的主机。如果未正确的设置默认路由,则无访问。

                                  无法连接网络时的处理方式(Linux)_网络接口_06

                                  无法连接网络时的处理方式(Linux)_网络接口_07

如果没有正确的设置路由,需要使用ip route命令再次进行正确的设置。重新配置默认路由如下图所示。路由需要根据你自己的IP地址和目标主机的IP地址设置。

ip route delete default
ip route add default via 192.168.0.0(正确的ip地址)

  正确设置了路由之后,按照以下步骤重新配置:

  • 如果使用DHCP自动获取接口的IP地址,且DHCP服务器提供了默认的路由信息,需要检查DHCP服务器的设置。
  • 如果使用静态的IP地址,需要使用nmcli命令设置正确的路由,例如nmcli con modify enp0s3 ipv4.method manual ipv4.gateway 192.168.110.1。
  • 大部分情况下,如果IP地址没有问题,不能访问主机的原因在于路由。

如果指定了IP地址,即使可访问目标主机,也无法解析从本机发送的数据包中的主机名,还需要进行名称解析才可以。进行名称解析时,需要检查/etc/hosts文件中是否已经注册IP地址与主机名的解析记录,如没有注册则需要进行注册。使用vi编辑器在/etc/hosts文件中添加主机解析记录,例如172.16.0.20 centos,hsot01,然后通过ping命令指定主机名,检测主机之间的连通性,如下图所示:

                                  无法连接网络时的处理方式(Linux)_IP_08

使用DNS解析域名时,必须在/etc/resolve.conf文件中注册要使用DNS服务器的IP地址,例如nameserver 8.8.8.8.如果使用DHCP服务器,则DNS客户端守护程序会自动将其写入/etc/resolv.conf文件中;如果未写入正确的IP地址,需要检查DNS服务器的谁知是否正确;如果未使用DHCP服务器,则需要编辑/etc/resolv.conf文件。但即使在该文件中设置了正确的DNS服务器的IP地址,也无法访问DNS服务器,除非正确设置了网络接口与路由。

如果要访问的目标主机的服务端口没有打开,也不是不可以访问目标主机。可以在客户端执行nmap命令检查服务器端是否提供了服务,确认端口是否已经打开。如使用nmap命令检查服务器是否提供SSH服务(端口号22)和http服务(端口号80),可执行nmap -p 22,80 centos.host02,其中centos.host02为服务器名称。

网络出现问题一般常见的情况都是接口的IP地址、子网掩码、路由信息等设置不正确。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  Yoru5qB4TSKM   2023年12月10日   39   0   0 服务器重启IP
  aYmIB3fiUdn9   2023年12月08日   50   0   0 客户端IPNATlvs
kIM7GUNpnV3x