CentOS网络故障排查秘笈:实战指南

前言

作为一名热爱折腾 Linux 的技术达人,我深知网络故障会让人抓狂!在这篇文章里,我和你分享了我的心得体会,从如何分析问题、识别瓶颈,到利用各种神器解决网络难题。不管你是新手小白还是老鸟大神,这里都有适合你的解决方案。赶紧看一看吧,让网络故障成为你的过去式!

我平时使用CentOS系统比较多,所以我在写这篇文章的时候所使用的操作系统是CentOS7,如果你使用的是Ubuntu,也没有关系,排除网络故障的过程是一样的,不同的是可能使用命令工具、配置文件会有所不同,希望我的分享给能你带来一些帮助。

网络故障的常见原因

导致网络发生故障的原因有很多,但是常见的却不多,如果你的系统发生网络故障,可以先从下面这些方面开始检查,这些是一此常见的原因:

  • 网络接口配置错误:
    • IP 地址、子网掩码、网关配置错误。
    • DNS 配置错误或 DNS 服务器不可达。
  • 网络硬件故障:
    • 网络线缆连接不良或损坏。
    • 网络接口卡硬件故障。
  • 网络交换机或路由器故障。
    • 防火墙配置错误:
    • 防火墙规则设置错误,导致阻止了必要的网络流量。
    • 防火墙服务未启动或异常。
  • 服务未启动或配置错误:
    • 网络服务(如网络管理器、网络接口服务等)未启动。
    • 服务配置文件错误导致服务无法正常工作。
  • 路由配置错误:
    • 路由表配置错误。
    • 网关配置错误或不可达。
  • DNS 解析问题:
    • DNS 解析配置错误。
    • DNS 服务器不可达或不可用。
  • 网络流量拥塞:
    • 网络带宽使用过大导致网络拥堵。
    • 网络设备过载导致网络性能下降。
  • 安全策略限制:
    • SELinux 或其他安全策略阻止了必要的网络访问。
    • 安全软件或防病毒软件过滤了网络流量。

排除网络故障的基本流程

有问题一点不可怕,可怕是手心脚乱地瞎搞,没有解决问题反而产生更大的问题,所以遇到问题不要慌!先想想处理这个问题的基本流程是什么。在CentOS中,排除网络故障可以遵循以下的基本流程:

  1. 检查网络连接:首先,检查网络连接是否正常。可以使用ping命令测试与远程主机之间的连通性,如果无法ping通目标主机,则可能存在网络故障。
  2. 检查IP地址和网关设置:确认本地主机的IP地址和网关设置是否正确。可以使用ifconfig或ip命令检查当前网络接口的配置,并确认其IP地址和网关是否正确。
  3. 检查DNS解析:如果网络故障是由于DNS解析问题导致的,则需要使用nslookup或dig命令查询域名的IP地址,以确认DNS解析是否正常。
  4. 检查防火墙设置:如果网络故障是由于防火墙设置导致的,则需要使用iptables命令查看防火墙规则是否正确配置。如果需要更新规则,则需要使用iptables命令进行添加或删除规则。
  5. 检查网络服务:确认网络服务是否正常运行。可以使用systemctl命令检查网络服务的状态,如果网络服务未启动,则需要使用systemctl命令启动它。
  6. 检查网络设备:如果所有上述步骤都无法解决问题,那么可能是网络设备(如路由器、交换机等)或网络线路出现了问题。可以考虑更换网络线路或联系网络设备供应商进行进一步检查。

基本流程是清楚的,但是具体要怎么做呢?那就先从一些常见的检查项开始,一步一步来,不要急。当然,如果你已经明确知道问题出在了哪里,那另当别论。下面是一些排除网络故障时的常见检查项:

常见检查项

验证网络物理连接

这个就相对简单一些,检查一下网线是否插好、接插入的接口是否正确以及相关的网络设备,如交换机、路由器的指示灯状态是否正常。

检查网络连接状态

检查网络连接状态有很多方法,这里分享比较常用的几种:

  • 使用ping命令
  • 使用curl命令
  • 使用 ip link 命令

使用ping命令

使用 ping 命令可以测试与指定主机之间的连通性。例如,要检查与 baidu 的连接状态,可以执行以下命令:

ping -c 4 baidu.com

这将向 baidu 发送 4 个 ICMP 回显请求,并显示每个请求的响应时间和状态。

使用curl命令

使用curl -I 命令可以向https://www.baidu.com 发送 HTTP HEAD 请求,并显示服务器返回的 HTTP 头信息,而不会下载文件内容。HTTP 响应头信息非常有用,包含有 HTTP 状态码、服务器类型、响应头等可以判断网络响应情况的重要字段。

curl -I https://www.baidu.com

使用 ip link

使用 ip link 命令可以查看系统中所有网络接口的状态:

ip link

确保所有网络接口都处于 UP(已启用)状态。

上述输出了两个网络接口的信息,一个是本地回环接口 lo,另一个是物理网络接口 ens33。

  • lo(本地回环接口):
    • lo:接口名称为 lo。
    • :表示该接口为回环接口,已启用,链路已启用。
    • mtu 65536:指定最大传输单元为 65536 字节。
    • qdisc noqueue:指定不使用队列调度器。
    • state UNKNOWN:接口状态未知。
    • mode DEFAULT:接口模式为默认模式。
    • group default:接口所属的默认分组。
    • qlen 1000:指定队列长度为 1000。
  • ens33(物理网络接口):
    • ens33:接口名称为 ens33。
    • :表示该接口支持广播和多播,已启用,链路已启用。
    • mtu 1500:指定最大传输单元为 1500 字节。
    • qdisc pfifo_fast:指定使用 pfifo_fast 队列调度器。
    • state UP:接口状态为已启用。
    • mode DEFAULT:接口模式为默认模式。
    • group default:接口所属的默认分组。
    • qlen 1000:指定队列长度为 1000。
    • link/ether 00:50:56:3e:26:4c:指定 MAC 地址为 00:50:56:3e:26:4c。
    • brd ff:ff:ff:ff:ff:ff:指定广播地址为 ff:ff:ff:ff:ff:ff。

检查网络接口配置

查看ifcfg-ens33

我的网络接口的名称是ens33,这个网络接口的配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33,可以执行下面的命令,打开网络接口配置文件,检查IP 地址和子网掩码的配置:

ip link

我的ifcfg-ens33配置内容如下(这里我的CentOS系统使用的是静态IP):

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="cd43292c-4ccc-45df-a7ea-e8cc847143c8"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.253.166
NETMASK=255.255.255.0
GATEWAY=192.168.253.2
DNS1=114.114.114.114
DNS2=114.114.115.115

如果想使用动态IP,可以这样配置

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="DHCP"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="cd43292c-4ccc-45df-a7ea-e8cc847143c8"
DEVICE="ens33"
ONBOOT="yes"
  • TYPE="Ethernet":指定网络接口类型为以太网。
  • PROXY_METHOD="none":指定代理方式为无代理。
  • BROWSER_ONLY="no":指定不仅限于浏览器使用。
  • BOOTPROTO="static":指定使用静态 IP 地址配置方式,如果是动态IP,则应该配置dhcp。
  • DEFROUTE="yes":指定该接口作为默认路由。
  • IPV4_FAILURE_FATAL="no":指定 IPv4 连接失败不是致命错误。
  • IPV6INIT="yes":启用 IPv6 协议栈。
  • IPV6_AUTOCONF="yes":启用 IPv6 自动配置。
  • IPV6_DEFROUTE="yes":指定该接口作为 IPv6 默认路由。
  • IPV6_FAILURE_FATAL="no":指定 IPv6 连接失败不是致命错误。
  • IPV6_ADDR_GEN_MODE="stable-privacy":指定 IPv6 地址生成模式为稳定性隐私地址。
  • NAME="ens33":指定接口名称为 ens33。
  • UUID="cd43292c-4ccc-45df-a7ea-e8cc847143c8":指定接口的 UUID。
  • DEVICE="ens33":指定设备名称为 ens33。
  • ONBOOT="yes":指定系统启动时自动激活该网络接口。
  • IPADDR=192.168.253.166:指定接口的 IPv4 地址为 192.168.253.166。
  • NETMASK=255.255.255.0:指定接口的子网掩码为 255.255.255.0。
  • GATEWAY=192.168.253.2:指定接口的默认网关为 192.168.253.2。
  • DNS1=114.114.114.114:指定第一个 DNS 服务器地址为 114.114.114.114。
  • DNS2=114.114.115.115:指定第二个 DNS 服务器地址为 114.114.115.115。

此项检查的目的是,确保网络接口的 IP 地址和子网掩码配置正确。其中IP 地址应该属于正确的网络地址范围,并且子网掩码应该与网络配置一致。

使用 ip addr

使用 ip addr 命令可以查看系统中所有网络接口的配置信息,包括 IP 地址、子网掩码、MAC 地址等:

ip addr

这将列出系统中所有网络接口的配置信息。

这些信息描述了系统中两个网络接口的配置和状态。lo 接口是本地回环接口,用于本地通信,而 ens33 接口是物理网络接口,连接到网络中。

  • lo(本地回环接口):
    • 接口名称:lo
    • 类型:LOOPBACK(本地回环)
    • 状态:UP(已启用),LOWER_UP(链路已启用)
    • MTU(最大传输单元):65536
    • 排队调度器:noqueue
    • 状态:UNKNOWN(未知状态)
    • 地址:127.0.0.1/8(IPv4 地址),::1/128(IPv6 地址)
    • IPv4 地址的范围:scope host
    • IPv6 地址的范围:scope host
  • ens33(物理网络接口):
    • 接口名称:ens33
    • 类型:BROADCAST(广播),MULTICAST(多播)
    • 状态:UP(已启用),LOWER_UP(链路已启用)
    • MTU(最大传输单元):1500
    • 排队调度器:pfifo_fast
    • 状态:UP(已启用)
    • MAC 地址(链路层地址):00:50:56:3e:26:4c
    • IPv4 地址:192.168.253.166/24
    • 广播地址:192.168.253.255
    • IPv6 地址:fe80::6263:60fe:5bad:b36c/64
    • 链路本地 IPv6 地址

此项检查的目的是,验证网络配置参数信息是否能正常查询到。

使用ifconfig

使用ifconfig命令可以查看当前网络接口的配置:

ifconfig

解读上述内容:

  • ens33和lo:这是两个不同的网络接口,ens33是以太网接口,而lo是本地环回接口。
  • flags=4163:这些是标志位(flags),表示网络接口的状态和属性。在这里,“UP”表示接口已经启用,“BROADCAST”表示支持广播,“RUNNING”表示接口正在运行,“MULTICAST”表示支持多播。
  • mtu 1500:这是接口的最大传输单元(Maximum Transmission Unit),指定了可以在单个数据包中传输的最大字节数。
  • inet 192.168.253.166和inet 127.0.0.1:这是接口的IPv4地址,分别是ens33和lo接口的IPv4地址。
  • netmask 255.255.255.0和netmask 255.0.0.0:这是IPv4地址的子网掩码,用于指示网络地址和主机地址的分隔情况。
  • broadcast 192.168.253.255:这是广播地址,用于向特定网络中的所有设备发送消息。
  • inet6 fe80::6263:60fe:5bad:b36c和inet6 ::1:这是接口的IPv6地址,分别是ens33和lo接口的IPv6地址。
  • ether 00:50:56:3e:26:4c:这是以太网接口的物理地址(MAC地址)。
  • RX packets和TX packets:这是接收和发送的数据包数量。
  • RX errors和TX errors:这是接收和发送时发生的错误数量。
  • RX dropped和TX dropped:这是丢弃的接收和发送数据包数量。
  • RX overruns和TX overruns:这是接收和发送时发生的溢出错误数量。
  • RX frame和TX frame:这是接收和发送时发生的帧错误数量。

此项检查的目的是,验证网络配置参数信息是否能正常查询到。

检查DNS 解析

检查resolv.conf

检查 /etc/resolv.conf 文件的 DNS 配置

cat /etc/resolv.conf

这里的8.8.8.8是谷歌的公共DNS服务器。

检查DNS 服务器是否可达

可以使用 ping 命令向 DNS 服务器发送 4 个 ICMP 回显请求,会显示每个请求的响应时间和状态,根据响应结果可以确定系统是否能够与 DNS 服务器建立连接:

ping -c 4 8.8.8.8

解读上述内容:

  • PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.:表示执行PING命令,向IP地址为8.8.8.8的主机发送数据包,每个数据包大小为56字节(实际大小为84字节,包括头部信息)。
  • 64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=43.4 ms:表示从IP地址为8.8.8.8的主机收到一个大小为64字节的数据包,ICMP序列号为1,生存时间(TTL)为128,往返时间(RTT)为43.4毫秒。
  • --- 8.8.8.8 ping statistics ---:表示PING命令的统计信息开始。
  • 4 packets transmitted, 4 received, 0% packet loss, time 3004ms:表示共发送了4个数据包,全部都成功接收,没有丢失任何数据包,总共花费了3004毫秒。
  • rtt min/avg/max/mdev = 43.384/43.496/43.573/0.072 ms:表示往返时间的统计信息,包括最小往返时间、平均往返时间、最大往返时间和往返时间的标准偏差(mdev)分别为43.384毫秒、43.496毫秒、43.573毫秒和0.072毫秒。

此项检查的目的是,确保默认DNS解析正常,能够正常访问互联网。

检查网络路由

使用 ip route 命令可以查看系统的路由表,确认默认网关是否设置正确。执行以下命令:

ip route

第一条默认路由指定了默认网关的地址和出口接口,用于发送到其他网络的数据包;第二条子网路由则用于直接连接到 ens33 接口的本地子网内部通信。

  • default via 192.168.253.2 dev ens33 proto static metric 100:
    • default:这是默认路由条目,用于发送到除本地子网之外的所有目的地的数据包。
    • via 192.168.253.2:指定默认网关的 IP 地址为 192.168.253.2。
    • dev ens33:指定默认路由的出口网络接口为 ens33。
    • proto static:说明这是通过静态路由配置的默认路由。
    • metric 100:指定该路由的优先级为 100。如果有多个默认路由,优先级越低的会被优先使用。
  • 192.168.253.0/24 dev ens33 proto kernel scope link src 192.168.253.166 metric 100:
    • 192.168.253.0/24:这是一个子网路由条目,用于直接连接到 ens33 接口的子网。
    • dev ens33:指定该路由的出口网络接口为 ens33。
    • proto kernel:说明这是由内核自动生成的路由。
    • scope link:指定该路由的范围为链路本地,表示这是一个本地子网路由。
    • src 192.168.253.166:指定源 IP 地址为 192.168.253.166,这是本地子网的 IP 地址。
    • metric 100:指定该路由的优先级为 100。

此项检查的目的是,确保默认网关指向网络中的正确路由器或网关设备。

检查防火墙设置

检查防火墙状态

查看防火墙的当前状态,即是否正在运行。它将显示防火墙是否处于运行状态。

sudo firewall-cmd --state

检查允许通过防火墙的端口

  • 列出当前防火墙中允许通过的端口。它将显示防火墙配置中定义的所有端口及其状态。
sudo firewall-cmd --list-port

如果将要使用的端口未开放,可以使用下面的命令,开放相关端口:在这个例子中,将永久性地向防火墙规则中添加一个端口,端口号为 8080,并且添加到了 public 区域(即公共区域)。这意味着该端口会在防火墙重启后继续保持开放状态,而不会丢失。

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

如果需要开放端口马上生效,需要重新启动 firewalld 服务,即重新加载防火墙配置并重新启动防火墙。

sudo systemctl restart firewalld.service

当然如果你嫌麻烦的话,也可以先停止防火墙服务,然后再启动:

  • 停止 firewalld 服务,即关闭防火墙。它会立即停止防火墙,导致系统处于不受防火墙保护的状态。
sudo systemctl stop firewalld.service
  • 启动 firewalld 服务,即打开防火墙。它会立即启动防火墙服务,开始保护系统。
sudo systemctl start firewalld.service

我的建议是,你最好设置防火墙服务为开机启动,这样系统在下次重启时会自动启动防火墙:

sudo systemctl enable firewalld.service

这项检查是确保将要使用的端口对外已经开放,是可以连通的。

检查端口连通性

使用 telnet 命令可以测试指定端口是否能够建立连接。例如,如果要验证端口 8080 是否开放,可以执行以下命令:

telnet 192.168.253.166 3306

如果端口开放,将会显示连接成功的消息;如果端口关闭或被防火墙阻止,将会显示连接失败的消息。如图:3307端口是不通的,而3306端口是通的。

如果未安装telnet,可以使用下面命令进行安装与卸载

sudo yum install telnet

sudo yum remove telnet

这项检查是确保对外已经开放的端口,是可以连通的。

检查网络服务

systemctl:用于管理系统服务,包括网络服务。可以使用以下命令检查网络服务的状态:

systemctl status network

Active: active (exited):表示服务当前处于活动状态,但已经完成了其主要任务,并退出了,由此可见网络状态是正常的。

systemctl status NetworkManager

这项检查是确保系统的网络服务是处于正常工作状态。

写在最后

如果你觉得这篇文章对你有所帮助,不妨点击点赞按钮,让更多的人看到这篇优质的技术分享。同时,别忘了将这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术水平始终保持在最高水平。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/438229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Get了!原来朋友圈定时发布如此简单!

你是不是也有这样的烦恼?微信号太多,有时候会顾不上发朋友圈? 别担心!微信管理系统来帮你解决这个问题,实现朋友圈定时发布!让我们一起来看看如何利用微信管理系统的强大功能来提升我们的社交媒体效率吧。…

Material Studio 中 DMol3 计算材料吸附能

1.先导入Cif文件 2.切表面 3.沿着你要切的晶面切 4.扩胞 5.加真空层(一般加10埃) 现在就是这样的了 6.然后对其结构优化(高斯几何优化) 7.再在体系上加原子或者想要的材料 8.Outmal文件中最后的Ef就是整个体系的能量&#xff0…

WPF中如何设置自定义控件(四)

在上一节讲到过将自定义界面进行左右分割,左边作为登录的用户信息和菜单;右边作为详情展示界面。 这节准备在上一节的基础上对左侧部分进行细分,完善功能,左侧的内容准备做两部分填充:一是登录用户的信息,一是菜单。因…

牛客网 华为机试 坐标移动

本题是需要将输入的字符串,得到移动位置的信息,同时要判断移动信息的合法性。 所以我们可以考虑先通过正则表达式过滤得到正确的字符串。 正确的字符串应该以ADWS其中一个字母开头,然后后面接着1个或者2个(0-9)的数字。…

护眼台灯哪个品牌最好?2024五款主流台灯实测推荐!

对很多家长来说,孩子的健康比什么都重要。不过现在的儿童青少年近视率却非常高,正因为如此护眼台灯就一直是家长十分关注的灯具。可如今市场中却存在很多劣质产品,忽视产品做工以及选材用料等问题,导致照明体验感差、使用不方便&a…

大华IPC网络摄像机如何保存视频

一、背景 通常网络相机(IPC)不会自带存储功能,需要接入录像机(NVR)进行保存。 其中NVR也分软件存储及硬件存储,这里不提,这边单独说FTP存储 二、配置前提 要配置FTP存储需要:①网络…

java017 - Java抽象类

1、概述 一般情况,动物是抽象的,所以不能被new,比如你在Animal类中定义一个成员方法eat,你不能定义具体内容,比如吃鱼或者吃白菜,因为动物是抽象的。 一个没有方法体的方法,应该定义为抽象方法,而类中如果…

PaddleSeg分割框架解读[01] readme解读

简介 PaddleSeg是基于飞桨PaddlePaddle的端到端图像分割套件,内置45+模型算法及140+预训练模型,支持配置化驱动和API调用开发方式,打通数据标注、模型开发、训练、压缩、部署的全流程,提供语义分割、交互式分割、Matting、全景分割四大分割能力,助力算法在医疗、工业、遥…

前端工程化【01】:核心思想、发展历程和面临挑战

前端工程化是指将前端开发中的工具、流程和方法进行规范化和自动化,以提高前端开发效率、提升代码质量和项目可维护性的一种开发方式。通过前端工程化,可以将前端开发过程中的重复工作自动化,减少开发者的重复劳动,提高开发效率。…

万字详解,Java实现低配版线程池

文章目录 1.什么是线程池2.线程池的优势3.原理4.代码编写4.1 阻塞队列4.2 ThreadPool线程池4.3 Worker工作线程4.4 代码测试 5. 拒绝策略5.1 抽象Reject接口5.2 BlockingQueue新增tryPut方法5.3 修改ThreadPool的execute方法5.4 ThreadPool线程池构造函数修改5.5 拒绝策略实现1…

Win11右键菜单改回Win10

按“win键 X”,在弹出的快捷菜单中,选择“Windows终端(管理员)”: 弹出黑窗口,并把下面的语句复制进去: reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}…

五、循环神经网络语言模型(RNN)

1 循环神经网络基础知识 循环核(Recurrent Cell)定义: 指在时刻 t 时的神经网络单元,用来处理当前时刻的输入和上一时刻的隐藏状态,并生成当前时刻的输出和下一时刻的隐藏状态。记忆体(Memory)定…

Numpy 数组转换为 Pandas DataFrame

参考:Convert Numpy Array to Pandas DataFrame Numpy 介绍 Numpy是Python中一个非常强大的科学计算库,它提供了许多高效的数组操作方法。Pandas是另一个重要的数据处理库,它基于Numpy,并提供了更高级别的数据分析和处理工具。在…

windows下编译boost1.84.0库

boost系列文章目录 文章目录 boost系列文章目录前言一、boost编译二、boost使用三 、参考 前言 Boost简介 官方网址 Boost提供免费的同行评审的可移植C源代码库。 我们强调与C标准库配合良好的库。Boost库旨在广泛使用,并可在广泛的应用程序中使用。Boost许可证鼓…

#微信小程序(布局、渲染层基础知识)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a; 3.记录: &#xff08;1&#xff09;view&#xff08;类似于div&#xff09; &#xff08;2&#xff09;块级元素不占满一行且水平均分布局flex,justify(space-around) &#xff08;3&#xff09;滚动<scroll view sc…

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模板</title> </head> <body> <div></di…

2024 年系统集成项目管理师全套资料

2024年11月系统集成项目管理工程师全套视频、历年真题及解析、教材、模拟题、重点笔记等资料 1、2024年全套视频持续更新中&#xff0c;2023年11月全套基础知识精讲视频、2023年5月全套基础知识精讲视频。 2、系统集成项目管理工程师2009-2023年11月历年真题及解析&#xff08…

Mock在接口测试中的实际应用

关于Mock测试 01、含义和目的 1、 什么是mock测试&#xff1f; Mock 测试就是在测试过程中&#xff0c;对于某些不容易构造&#xff08;如 HttpServletRequest 必须在Servlet 容器中才能构造出来&#xff09;或者不容易获取的比较复杂的对象&#xff08;如 JDBC 中的ResultSe…

yolov8训练CDLA数据文版版面分析

一.数据集介绍 CDlA数据集介绍&#xff1a;CDLA CDLA是一个中文文档版面分析数据集&#xff0c;面向中文文献类&#xff08;论文&#xff09;场景。包含以下10个label&#xff1a; 数据量&#xff1a; 共包含5000张训练集和1000张验证集&#xff0c;分别在train和val目录下。每…

今天分享一个好看的输入法皮肤相信每个人心里住着一个少女心我们美化一下她吧

标题&#xff1a; 白日梦皮肤上线&#xff0c;百度输入法助你开启梦幻之旅&#xff01; 正文&#xff1a; 大家好呀&#xff01;今天我来给大家安利一款超级梦幻的百度输入法皮肤——“白日梦”系列&#xff01; 这款皮肤的设计灵感来源于我们内心深处的白日梦&#xff0c;充…
最新文章