从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

    • 计算机网络微课堂

    • 计算机网络微课堂-实验手册

      • 课程概述
      • 实验 0:安装 PacketTracer
      • 实验 1:访问 WEB 服务器(加深对网络体系结构的理解)
      • 实验 2: MAC 地址,IP 地址,ARP 协议
      • 实验 3:总线型以太网的特性(广播,竞争总线,冲突)
      • 实验 4:集线器和交换机的区别
      • 实验 5:交换机的自学习算法
      • 实验 6:生成树协议 STP 的功能
      • 实验 7;虚拟局域网 VLAN
      • 实验 8:IPv4 地址
      • 实验 9:划分子网
      • 实验 10:构造超网(无分类编址)
      • 实验 11:IP 数据报的发送和转发流程
      • 实验 12:默认路由和特定主机路由
      • 实验 13:静态路由配置错误导致的路由环路问题
      • 实验 14:聚合了不存在的网络导致的路由环路问题
      • 实验 15:网络故障导致的路由环路问题
      • 实验 16:路由信息协议 RIP
      • 实验 17:开放最短路径优先 OSPF
      • 实验 18:边界网关协议 BGP
      • 实验 19:网际控制报文协议 ICMP 的应用
      • 实验 20:运输层端口
      • 实验 21:VLAN 间通信的实现方法:多臂路由
      • 实验 22:VLAN 间通信的实现方法:单臂路由
        • ‍
        • ‍
      • 实验 23:VLAN 间通信的实现方法:使用三层交换机
      • 实验 24:TCP 的运输连接管理
      • 实验 25:动态主机配置协议 DHCP 的作用
      • 《计算机网络微课堂》终:结束,也是开始
    • 从零开始学计算机网络

  • 数据库

  • 编程工具

  • 装机

  • 计算机基础
  • 计算机网络
  • 计算机网络微课堂-实验手册
2022-10-20
目录

实验 22:VLAN 间通信的实现方法:单臂路由

# 220.实验 22 :VLAN 间通信的实现方法:单臂路由

下面‍‍我们来进行一个仿真实验,本仿真实验的目的在于验证 VLAN 间的通信,‍‍可以使用单臂路由来实现。

‍

我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,‍‍并且在各主机和路由器的各接口旁边都标注好了所需配置的 IP 地址和地址掩码。

​​ ‍

需要说明的是 CIDR 地址块/后面的数字 24,‍‍表明地址掩码为 255.255.255.0。‍‍为了简单起见,并没有标注出地址掩码的点分十进制形式,我们的应用需求是‍‍将主机 ABC 划分到 VLAN10,将主机 DEF 划分到 VLAN20,‍‍并且 VLAN10 中的主机可以和 VLAN20 中的主机相互通信,‍‍也就是我们所谓的实现 VLAN 间的通信,很显然‍‍这样的应用需求仅靠数据链路层提供的服务是无法实现的,我们需要使用网络层的互联设备,‍‍也就是路由器来实现。与使用多臂路由,实现 VLAN 间通信不同,使用单臂路由,‍‍不管有多少个 VLAN 互联,我们只需将交换机上的一个接口设置为 Trunk 类型,‍‍并将其连接到路由器的一个局域网接口即可。‍‍这样的物理连接比使用多臂路由简单的多。

‍‍我们需要在路由器的局域网接口下创建两个逻辑子接口,‍‍分别作为 VLAN10 和 VLAN20 的默认网关,‍‍这相当于我们使用路由器的一个局域网接口下的两个子接口,将 VLAN10 和 VLAN20‍‍这两个不同的网络进行了互联。另外‍‍应该将所创建的这两个逻辑子接口配置为可以识别和封装 802.1q 帧,‍‍802.1q 帧有时也简称为 dot1q。注意要用 2911 的路由器,用普通路由器会报错:Invalid interface type and number​

我们还需要将 VLAN10 中,‍‍各主机所连接的交换机接口划分到 VLAN10,‍‍将 VLAN20 中各主机所连接的交换机接口划分到 VLAN20,‍‍接口类型采用默认的 access 类型
另外,‍‍我们还应给各 VLAN 中的各主机配置相应的 IP 地址和地址‍掩码。需要注意的是‍‍ vlan10 与 vlan20 是两个不同的网络,因此它们的网络地址不相同,‍‍vlan10 的网络地址为 192.168.1.0/24,‍‍vlan20 的网络地址为 192.168.2.0/24。
‍‍相应的‍‍ vlan10 中各主机的 IP 地址和路由器逻辑子接口的 IP 地址的网络号部分应该相同,‍‍也就是点分 10 进制的前三个 10 进制数为 192.168.1。‍‍而第 4 个 10 进制数应该互不相同,并且不能为 0 和 255。因为如果为 0,‍‍则是该网络的网络地址,如果为 255 则是该网络的广播地址。‍‍

同理,vlan20 中各主机的 IP 地址和路由器逻辑子接口的 IP 地址的网络号部分应该相同,‍‍也就是点分 10 进制的前三个 10 进制数为 192.168.2,‍‍而第 4 个 10 进制数应该互不相同,并且不能为 0 和 255。‍‍

我们还需要给各主机指定默认网关,该路由器既是 vlan10 的默认网关,‍‍也是 VLAN20 的默认网关。对于 VLAN10 中的主机 ABC,‍‍他们的默认网关应该指定为该路由器的逻辑子接口 0/0.1 的 IP 地址。‍‍对于 vlan20 中的主机 def 他们的默认网关‍‍应该指定为该路由器的逻辑子接口 0/0.2 的 IP 地址

​​

下面‍‍我们就要开始进行配置工作。‍‍第一步给各主机配置 IP 地址、地址掩码以及指定要默认网关。‍‍我们先给主机 A 配置,点击主机 A。输入主机 A 的 IP 地址,192.168.1.1,255.255.255.0。‍‍输入主机 A 的默认网关的 IP 地址,‍‍也就是路由器的逻辑子接口 0/0.1 的 IP 地址,192.168.1.254,‍‍然后按下回车键,关闭 IP 配置窗口,这样我们对主机 A 的配置工作就完成了,‍‍其他主机的配置工作请您自行完成。

​​


第二步,‍‍给路由器的某个局域网接口创建两个逻辑子接口,并进行相应配置,点击路由器,‍‍在弹出窗口中选择命令行界面选项卡,这样我们就进入了该路由器的命令行界面,进入命令行提示符,输入 enable‍‍进入特权模式,输入 config t 进入全局配置模式。

输入 interface g0/0.1 这样就创建了 g0/0.1 逻辑子接口

输入 encapsulation‍‍ dot1q 10 这是要设置该逻辑子接口,可以接收 VLANID 为 10 的 802.1q 帧,‍‍并且可将 IP 数据报封装成 VLANID 为 10 的 802.1q 帧进行转发,‍‍

输入 IP address ‍‍192.168.1.254 255.255.255.0,‍‍这是设置该逻辑子接口的 IP 地址和地址掩码

Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface g0/0.1
Router(config-subif)#encapsulation dot1q 10
Router(config-subif)#ip addr 192.168.1.254 255.255.255.0
1
2
3
4
5
6

‍ 输入 interface g0‍‍/0.2 这样就创建了 g0/0.2 逻辑子接口。‍‍

输入输入 encapsulation‍‍ dot1q 20 ‍这是设置该逻辑子接口,可以接收 VLANID 为 20 的 802.1q 帧,‍‍并且可将 IP 数据报封装成 VLANID 为 20 的 802.1q 帧进行转发。

输入 IP address ‍‍192.168.2.254 255.255.255.0。‍‍这是设置该逻辑子接口的 IP 地址和地址掩码,

Router(config-subif)#interface g0/0.2
Router(config-subif)#encapsulation dot1q 20
Router(config-subif)#ip addr 192.168.2.254 255.255.255.0
1
2
3

‍ ‍‍输入 interface g0/0,进入 g0/0 接口配置模式,‍‍输入 no shutdown,开启 g0/0 接口,‍‍这相当于开启了它下面的两个逻辑子接口。

Router(config-subif)#interface g0/0
Router(config-if)#no shut
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up

%LINK-5-CHANGED: Interface GigabitEthernet0/0.1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0.1, changed state to up

%LINK-5-CHANGED: Interface GigabitEthernet0/0.2, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0.2, changed state to up
1
2
3
4
5
6
7
8
9
10

‍ 第三步给交换机添加 VLAN,点击交换机,‍‍在弹出窗口中选择命令行界面选项卡,‍‍进入命令行提示符,‍‍输入 en 进入特权模式,输入 conf t 进入全局配置模式,输入 VLAN 10 这样我们就要创建了 VLANID 为 10 的 VLAN

输入 name VLAN10 将新创建的 10 号 VLAN 命名为 VLAN10。

输入 VLAN 20 这样我们就要创建了 VLANID 为 20 的 VLAN

输入 name VLAN20, 将新创建的 20 号 VLAN 命名为 VLAN20,

输入 end,‍‍退回到特权模式,输入 show VLAN brief,可以查看到我们新创建的 VLAN10 和 VLAN20:

Switch>
Switch>en
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#name VLAN10


Switch(config-vlan)#vlan 20
Switch(config-vlan)#name VLAN20


Switch#show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12
                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16
                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24
                                                Gig0/1, Gig0/2
10   VLAN10                           active  
20   VLAN20                           active  
1002 fddi-default                     active  
1003 token-ring-default               active  
1004 fddinet-default                  active  
1005 trnet-default                    active  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

第 4 步‍‍将交换机上的各接口划归到相应的 VLAN,‍‍我们接着之前的命令行来做。

输入 conf t, 进入全局配置模式

输入 interface range f0/1-3, 也就是我们要对 f0/1、f0/2、f0/3 这些接口进行批量设置

‍‍输入 switchport mode acess,‍‍设置接口类型为 excess 类型

输入 switchport ‍‍access VLAN 10,‍‍将接口划归到 VLAN10

输入 interface range ‍‍f0/4-6,‍‍也就是我们要对 f0/4、f0/5、f0/6 这些接口进行批量设置

‍‍输入 switchport mode access, 设置接口类型为 acess 类型

输入 switchport ‍‍access VLAN 20,‍‍将接口划归到 VLAN20

输入 end 退回到特权模式

‍‍输入 show VLAN brief

‍‍可以查看到我们已经将交换机上的各接口相应的划归到了 VLAN10 和 VLAN20。

Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface range f0/1-3
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 10

Switch(config)#interface range f0/4-6
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20


Switch#show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/7, Fa0/8, Fa0/9, Fa0/10
                                                Fa0/11, Fa0/12, Fa0/13, Fa0/14
                                                Fa0/15, Fa0/16, Fa0/17, Fa0/18
                                                Fa0/19, Fa0/20, Fa0/21, Fa0/22
                                                Fa0/23, Fa0/24, Gig0/1, Gig0/2
10   VLAN10                           active    Fa0/1, Fa0/2, Fa0/3
20   VLAN20                           active    Fa0/4, Fa0/5, Fa0/6
1002 fddi-default                     active  
1003 token-ring-default               active  
1004 fddinet-default                  active  
1005 trnet-default                    active  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# ‍

‍‍第 5 步,将交换机上连接路由器的接口设置为 Trunk 类型,我们接着之前的命令行来做。

‍‍输入 conf t,进入全局配置模式。

‍‍输入 interface f0/7 ‍‍进入 f/7 接口配置模式。

输入 switchport mode ‍‍Trunk,设置该接口的类型为 Trunk。‍‍到这里所有的配置工作就已经完成了。

Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface f0/7
Switch(config-if)#switchport mode trunk

Switch(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/7, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/7, changed state to up
1
2
3
4
5
6
7
8
9

# ‍

‍‍接下来‍‍我们就来测试一下 VLAN10 中的主机是否可以与 VLAN20 中的主机相互通信。

请注意,‍‍首先必须确保交换机各接口与路由器各接口的指示灯是绿色的,如果有棕色的,‍‍请您反复切换仿真软件右下角的实时与仿真模式,直到指示灯全部变绿。‍‍如果有红色指示灯,则表明您之前对路由器接口配置时‍‍ no shutdown 命令输入不正确或忘记输入该命令了,‍‍导致路由器接口没有开启,请您仔细检查。‍‍您还需要确保我们现在是在实时模式下进行测试,

点击主机 A 然后点击桌面选项卡,‍‍再点击命令提示符,就可以进入主机 A 的命令行了,‍‍使用 ping 命令来测试 VLAN10 中的主机 A 是否可以与 VLAN20 中的主机 E 相互通信,‍‍也就是用主机 A 来 ping 一下主机 E 的 IP 地址,看是否能 ping 通.

可以看到第一次的请求超时了,‍‍后面三次都收到了来自 192.168.2.2,也就是主机 E 的响应,‍‍这表明 VLAN 间现在可以通信了:

C:\>ping 192.168.2.2

Pinging 192.168.2.2 with 32 bytes of data:

Request timed out.
Reply from 192.168.2.2: bytes=32 time<1ms TTL=127
Reply from 192.168.2.2: bytes=32 time=1ms TTL=127
Reply from 192.168.2.2: bytes=32 time=4ms TTL=127

Ping statistics for 192.168.2.2:
    Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 4ms, Average = 1ms

1
2
3
4
5
6
7
8
9
10
11
12
13
14

下面我们切换到仿真模式,‍‍来看看数据包在 VLAN 间是如何传递的,或者说是如何路由的。‍‍监听这 ICMP 协议即可。‍‍现在‍‍我们让主机 A 给主机 E 发送一个 ICMP 询问报文,‍‍如果主机 E 收到该询问报文,会给主机 A 发回相应的响应报文,‍‍点击右侧工具栏中的添加简单的 PDU 按钮,‍‍然后指定该 PDU 的发送方为主机 A,接收方为主机 E‍‍。

可以看到在主机 A 中出现了一个数据包,严格的说这应该是一个以太网帧,‍‍其中封装有 IP 数据报,在 IP 数据报中封装有 ICMP 询问报文,点击它‍‍在弹出窗口中可以查看网络体系结构各层的相应处理,例如这是网络层的处理,‍‍这是数据链路层的处理,点击出站 PDU 详情,还可以查看该数据包的封包细节。

点击右侧的捕获前进按钮,进行单步跟踪。可以看到数据包传递到了交换机,‍‍点击它在弹出窗口中可以查看交换机对该数据包的处理,这是接收处理,‍‍接收到的普通的以太网的帧,这是转发处理,转发出带有 VLAN 标签的 802.1q 帧,‍‍关闭该弹出窗口:

​​ ‍

再次点击捕获前进按钮,‍‍可以看到数据包从交换机转发出来并到达路由器,‍‍点击已经到达路由器的该数据包,在弹出窗口中可以查看路由器对该数据包的处理,‍‍这是接收处理。‍‍由于该数据包是带有 VLANID 为 10 的 802.1q 帧,‍‍因此由子接口 0/0.1 处理,从中提取出 IP 数据报,‍‍根据 IP 数据报首部中的目的 IP 地址进行查表转发,这是转发处理。‍‍

根据查表转发的结果,该 IP 数据报需要通过子接口 0/0.2 直接交付给目的主机 e‍‍,于是子接口 0/0.2 将其封装为带有 VLANID 为 20 的 802.1q 帧进行转发,‍‍关闭该弹出窗口,再次点击捕获前进按钮。‍‍可以看到该数据包从路由器转发回了交换机。

点击该数据包,‍‍在弹出窗口中可以看到交换机收到的该数据包是一个 802.1q 帧,‍‍交换机根据其目的 MAC 地址和所携带的 VLANID 查找转发表,‍‍决定从接口 0/5 转发该数据包。‍‍由于接口 0/5 是 access 类型的接口,因此转发时会去掉 802.1q 帧的标签,‍‍使其成为普通的以太网帧,关闭弹出窗口。

再次点击捕获前进按钮,‍‍可以看到数据包从交换机的 0/5 号接口转发给了主机 e,点击已经到达主机 e 的该数据包,‍‍在弹出窗口中可以查看主机 e 对该数据包的处理,这是接收处理,‍‍这是主机 e 针对该数据包准备给主机 a 发回响应数据包,关闭该弹出窗口。

点击捕获前进按钮,可以看到响应数据包首先发送到了交换机。

再次点击前进按钮,可以看到交换机转发该数据包给路由器。

再次点击捕获前进按钮,可以看到路由器又把该数据包转发回交换机。

再次点击捕获前进按钮,可以看到交换机把该数据包转发给主机 A。 ‍ 这样‍‍我们就要验证了使用单臂路由可以实现 VLAN 间的通信,‍‍相比于使用多臂路由,每增加一个 VLAN 就会多占用一个交换机接口和一个路由器接口,‍‍并且还会多一条布线而言,使用单臂路由无论有多少个 VLAN,‍‍都只需要额外占用交换机和路由器各一个接口,只需一条布线。

但是‍‍单臂路由仍然存在着这样的缺点:那就是随着 VLAN 间流量的不断增加,‍‍很可能导致路由器成为整个网络的瓶颈。‍‍

下节课我们会验证使用三层交换机实现 VLAN 间的路由,它比单臂路由具有更好的性能,‍‍最后请您在本实验的基础上进行一下扩充,‍‍也就是再添加一个 VLAN,并实现三个 VLAN 间的通信。

上次更新: 2025/6/3 09:31:54
实验 21:VLAN 间通信的实现方法:多臂路由
实验 23:VLAN 间通信的实现方法:使用三层交换机

← 实验 21:VLAN 间通信的实现方法:多臂路由 实验 23:VLAN 间通信的实现方法:使用三层交换机→

最近更新
01
学点统计学:轻松识破一本正经的胡说八道
06-05
02
2025 年 5 月记
05-31
03
《贫穷的本质》很棒,但可能不适合你
05-27
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式