- 博客(1061)
- 资源 (219)
- 收藏
- 关注
原创 OpenStack技术内幕
简单来说,OpenStack就是一种用于部署虚拟环境(虚拟机和容器)以及互连这些虚拟环境所需网络的软件应用程序。OpenStack主要使用Python编程语言,需要运行在Linux环境中。虽然没有OpenStack也能部署虚拟机和容器,但是OpenStack提供了一整套部署虚拟环境的平台及公共接口。
2023-01-19 10:10:03
102
原创 云计算与虚拟化技术详解
云计算的概念起源于大规模分布式计算技术,是网格计算、并行计算、分布式计算、网络存储和负载均衡等传统计算机技术和网络技术发展融合的产物。是虚拟化、效用计算、软件即服务(Software as a Service,SaaS)、平台即服务(Platform as a Service,PaaS)、基础设施即服务(Infrastructure as a Service,IaaS)和成功的项目群管理等概念混合演进并跃升的结果。“云”通常用来表示整个基础设施,包括服务器、网络、存储、操作系统以及各种管理应用。
2023-01-18 22:01:09
165
原创 网络虚拟化技术与NFV详解
现在越来越多的应用连接到网络,网络的需求和实现越来越复杂,在IT预算紧缩的情况下越来越需要利用虚拟化技术整合和简化网络资源。网络虚拟化是一种新兴的网络技术,是多元化互联网体系结构的一部分,是解决当前互联网“僵化”问题的一种重要方案,能提高网络的公平性、扩展性、灵活性、移动性、安全性、吞吐量、高利用率和服务质量等方面具有重要的理论意义和实际意义,是下一代互联网的里程碑。虚拟网络允许不同需求的用户组访问同一个物理网络,但从逻辑上对它们进行一定程度的隔离,以确保安全。
2023-01-17 18:27:40
103
原创 深入理解虚拟机原理与实现
虚拟机顾名思义就是虚拟出来的计算机,或指由软件提供且运行于物理计算机上模拟出来具有完整硬件系统功能和运行在一个完全隔离环境中的完整的计算机系统或称为“逻辑上的计算机”,它与真实的计算机几乎完全一样。也就是说人们在当前使用的操作系统基础上安装并利用专门的虚拟机软件就可以虚拟出若干台计算机来,每台有各自的CPU、内存、硬盘、光驱、软驱、网卡、声卡、键盘、鼠标、串口、并口和USB口等“硬件”设备。当然这些硬件都是虚拟的,实质上还是在使用物理计算机中相应的硬件。
2023-01-17 10:39:22
107
原创 JVM虚拟机技术原理与实现
Java是Sun公司推出的Java语言和Java平台的总称,在操作系统中安装Java平台后Java应用程序即可直接运行。Java程序被编译成字节码解释执行,使Java程序与平台无关。Java是一种技术,由Java编程语言、Java类文件格式、Java虚拟机(JVM)和Java API组成。JVM是Java 技术的核心,必须在指定的机器或者设备中安装部署JVM后才能够运行Java 程序。
2023-01-17 07:03:39
93
原创 虚拟化原理与虚拟化技术设计实现详解
确定虚拟机的硬件要求,然后决定应用程序安装在哪台虚拟机中?不同的应用应用程序能否在同一虚拟机中执行?如何备份?以及是否需要高可用性?
2023-01-16 19:05:55
121
原创 虚拟化技术发展与虚拟化体系结构
VMware Virtual SAN是一种专为虚拟机设计的融合了虚拟化管理程序的软件定义存储。它可为虚拟化的应用(包括关键业务应用)提供企业级高性能存储。此横向扩展体系结构利用x86服务器和服务器端闪存大幅降低总体存储TCO。它与VMware vSphere和整个VMware体系无缝集成,因而成为适合虚拟机的最简单的存储平台。下图显示了VMware Virtual SAN存储架构,接下来简要对VMware Virtual SAN的主要功能特性和组件进行介绍。
2023-01-16 16:06:12
116
原创 VMware 虚拟化技术应用案例
在分布式软件共享存储推出之前,虚拟机系统运行在物理服务器上,而虚拟机数据保存在共享存储中。服务器本身不配硬盘(使用共享存储分配的小容量卷)或者配容量较小的磁盘用于安装虚拟化系统。使用共享存储的虚拟化拓扑,如下图所示。图中画出了2台服务器和1台共享存储的连接示意。在使用共享存储的虚拟化架构中可以配置更多数量的物理服务器,其连接方式与2台物理服务器的连接相同。每台服务器一般配置至少4块网卡和2块FC HBA接口卡。4块网卡中每2块组成一组,其中一组用于虚拟化主机的管理,另一组用于虚拟机的流量。
2023-01-16 12:01:00
96
原创 Ceph17 安装部署
ceph 还是一个分布式的存储系统,非常灵活。如果需要扩容,只要向 ceph 集中增加服务器即可。ceph 存储数据时采用多副本的方式进行存储,生产环境下,一个文件至少要存 3 份,ceph 默认也是三副本存储。安装docker:(所有节点操作,包括新增)
2023-01-16 09:34:36
98
原创 KVM 安全策略配置与维护实战
cgroups(即control groups,控制群组)是Linux内核中的一个特性,用于限制、记录和隔离进程组(process groups)对系统物理资源的使用。cgroups最初是由Google的一些工程师(Paul Menage、Rohit Seth等人)在2006年以“进程容器”(process container)的名字实现的,在2007年被重命名为“控制群组”(Control Groups),然后被合并到Linux内核的2.6.24版本之中。
2023-01-16 07:08:00
104
原创 KVM 虚拟化技术性能调优实战
虚拟化性能测试包括的范围比较广泛,可能包含CPU、内存、网络、磁盘的性能,也可能包含虚拟客户机动态迁移时的性能,也可能需要考虑多种物理平台上的性能,也可能需要考虑很多个虚拟客户机运行在同一个宿主机上时的性能。目前,有一些针对各个虚拟化软件的性能分析工具(profiling),也有一些衡量虚拟化系统中单个方面性能的基准测试工具(benchmark),不过还没有一个能集成所有这些性能测试于一体的比较权威的专门针对虚拟化的性能测试工具。
2023-01-15 16:59:47
150
原创 KVM 虚拟化技术高级特性详解
KVM是必须使用硬件虚拟化辅助技术(如Intel VT-x、AMD-V)的Hypervisor,在CPU运行效率方面有硬件支持,其效率是比较高的;在有Intel EPT特性支持的平台上,内存虚拟化的效率也较高。QEMU/KVM提供了全虚拟化环境,可以让客户机不经过任何修改就能运行在KVM环境中。不过,KVM在I/O虚拟化方面,传统的方式是使用QEMU纯软件的方式来模拟I/O设备(如网卡、磁盘、显卡等),其效率并不非常高。
2023-01-15 16:58:01
145
原创 MySQL分层架构与运行机制详解
1. 事务的状态活动状态:事务的sql正在执行的状态;部分提交状态:事务的最后一条sql操作在内存中完成,但还未刷盘;失败状态:前两个状态下突然出现错误或故障的状态;终止状态:即回滚后的状态;提交状态:刷盘成功后的状态;2. 开启事务执行begin或start transaction可以开启一个事务,后者还可以修饰符控制事务的行为。# 开启一个只读事务和一致性读# 开启一个读写事务和一致性读Read Only:表示这是一个只读事务,该事务内的操作只能是读操作,不能有写操作。
2023-01-13 17:10:51
116
原创 MySQL事务与锁详解
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务;事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行;事务用来管理 insert、update、delete 语句;一般来说,事务是必须满足4个条件(ACID)::原子性(A。
2023-01-13 10:21:33
123
原创 MySQL视图与索引详解
MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。
2023-01-12 23:45:42
128
原创 explain等分析工具进行MySQL慢查询分析优化
explain是mysql的执行计划查看工具,用于分析一个查询语句的性能。其三种格式如下:explain 命令的输出有以下字段:下面详细叙述explain输出的各项内容。表示查询中执行select子句或操作表的顺序,id为几就代表是第几个select。如果id相同,则执行的循序由上到下,例如:他们的id相同,所以执行顺序是第一行中的表再是第二行中的表。如果id不同,id大的优先级高,先被执行。表示每个查询的类型,有一下几种类型: SIMPLE:简单的 SELECT 查询,查询中不包
2023-01-12 17:27:19
113
原创 MySQL CRUD 数据表基础操作实战
数据定义语言(DDL):用于定义和管理数据对象,包括数据库,数据表等。例如:CREATE,DROP,ALTER等。数据操作语言(DML):用于操作数据库对象中所包含的数据。例如:INSERT,UPDATE,DELETE语句。数据查询语言(DQL):用于查询数据库对象中所包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回客户机中显示。例如:SELETE。数据控制语言(DCL):是用来管理数据库的语言,包括管理权限及数据更改。
2023-01-12 15:38:26
108
原创 MongoDB 性能调优
Profiling 功能肯定是会影响效率的,但是不太严重,原因是他使用的是 system.profile 来记录,而 system.profile 是一个 capped collection 这种 collection 在操作上有一些限制和特点,但是效率更高。MongoDB 从一面世就得到众多开源爱好者和团队的重视,在常用的监控框架如 cacti、Nagios、Zabbix 等基础上进行扩展,进行 MongoDB 的监控都是非常方便的,有兴趣的朋友可以自已试试。如果读量很大,那么创建索引还是比较划算的。
2023-01-12 12:07:08
124
原创 MongoDB Replica Sets + Sharding 实战
总之这是一个长期且持续的工作。通过 oplog 直接进行增加节点操作简单且无需人工干预过多,但 oplog 是 capped collection,采用循环的方式进行日志处理,所以采用 oplog 的方式进行增加节点,有可能导致数据的不一致,因为日志中存储的信息有可能已经刷新过了。不过没关系,我们可以通过数据库快照 (--fastsync)和 oplog 结合的方式来增加节点,这种方式的操作流程是,先取某一个复制集成员的物理文件来做为初始化数据,然后剩余的部分用 oplog 日志来追,最终达到数据一致性。
2023-01-12 11:32:19
118
原创 深入理解MongoDB高级架构
MongoDB提供了多样性的索引支持,索引信息被保存在 system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和 MySQL 等关系型数据库一样。其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为奇。在字段 age 上创建索引,1(升序)、-1(降序):上例显示出来的一共有 2 个索引,其中_id 是创建表的时候自动创建的索引,此索引是不能够删除的。和mysql不同的是,mongodb在建立索引的时候可以
2023-01-12 10:17:14
120
原创 MongoDB 系统管理与操作详解
保持日志级别为默认值通常不错,此时日志中有足够的信息进行基本调试(如耗时过长或启动异常的原因等),但日志占用的空间并不大。一般来讲,只有释放了锁的操作才能被终止(当该操作发生查询的时候该操作会释放锁,更新和删除也会发生查询),因此更新(update)、查找(find)、删除(remove)操作都可被终止。但是即使将分析器关闭,slowms(setProfilingLevel()的第二参)也会对mongod有所影响:假如设为2 ms,那么哪怕分析器是关闭着的,每个耗时超过2 ms的操作也都会出现在日志里。
2023-01-12 10:16:25
71
原创 MongoDB 核心技术详解
NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库。这类数据库主要有这些特点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模 web 应用,这场全新的数据库革命运动早期就有人提出,发展至 2009 年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,通常的应用如模式自由、支持简易复制、简单的 API、最终的一致性(非ACID)、大容量数据等。
2023-01-11 16:23:44
110
原创 MongoDB快速入门
MongoDB 由 databases 组成, databases 由 collections 组成, collections 由documents(相当于行)组成,而documents有fields(相当于列)组成。MongoDB是异步写数据。
2023-01-11 07:25:47
65
原创 Redis核心配置详解
Redis 会把 MySQL 中经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候,就不需要到 MySQL 中去查询了,而是直接获取 Redis 中的缓存数据,从而降低了后端数据库的读取压力。当用户再次发起相同请求时,就会从缓存中拿到一个空对象,用户的请求被阻断在了缓存层,从而保护了后端数据库,但是这种做法也存在一些问题,虽然请求进不了 MSQL,但是这种策略会占用 Redis 的缓存空间。Redis 有一些非常危险的命令,这些命令会对 Redis 的稳定以及数据安全造成非常严重的影响。
2023-01-11 06:35:04
99
原创 Redis集群实现分布式Session共享
Cookie 保存在客户端浏览器中,而 Session 保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是 Session。客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了。在实际工作中我们建议使用外部的缓存设备来共享 Session,避免单个服务器节点挂掉而影响服务,共享数据都会放到外部缓存容器中。
2023-01-10 20:21:43
64
原创 Redis哨兵模式高可用集群详解
redis主从模式解决了数据备份和单例可能存在的性能问题,但是其也引入了新的问题,在redis的主从复制架构中,当主数据库遇到异常中断服务后,运维人员可以通过手动的方式选择一个从数据库来提升为主数据库,以使得系统能够继续提供服务。然而整个操作过程相对麻烦且需要人工介入,难以实现自动化。为此,在redis2.8版本之后正式提供了sentinel(哨兵)架构来实现自动化的系统监控和故障恢复功能。顾名思义,哨兵的作用就是对Redis的系统的运行情况的监控,它是一个独立进程。
2023-01-10 19:44:29
56
原创 Redis主从复制高可用集群详解
在了解 Redis 的主从复制之前,让我们先来理解一下现代分布式系统的理论基石——CAP 原理。C:Consistent,一致性A:Availability,可用性P:Partition tolerance,分区容忍性分布式系统的节点往往都是分布在不同的机器上进行网络隔离开的,这意味着必然会有网络断开的风险,这个网络断开的场景的专业词汇叫做”网络分区“。
2023-01-10 17:34:44
45
原创 Redis 持久化机制详解
下面是AOF常用的配置项,以及默认值;appendonly no:是否开启AOF;appendfilename “appendonly.aof”:AOF文件名;dir ./:RDB文件和AOF文件所在目录;appendfsync everysec:fsync持久化策略;no-appendfsync-on-rewrite no:AOF重写期间是否禁止fsync;如果开启该选项,可以减轻文件重写时CPU和硬盘的负载(尤其是硬盘),但是可能会丢失AOF重写期间的数据;
2023-01-10 15:24:17
43
原创 Redis数据结构与参数调优
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表、哈希、集合和有序集合5种。支持在服务器端计算集合的并、交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
2023-01-10 12:01:15
77
原创 Xenon搭建MySQL高可用集群
GTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识,保存在mysql数据目录下的auto.cnf文件里。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。GTID的复制方式是从MySQL5.6.5开始的。通过GTID保证了每个在主库上提交的事务在集群中有一个唯一的ID。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。
2023-01-10 09:15:25
45
原创 ProxySQL+MHA搭建MySQL读写分离高可用集群
ProxySQL是一个高性能的、高可用性MySQL中间件。ProxySQL是基于 MySQL 的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。允许轻松动态更新配置,便于运维管理,与MySQL兼容的管理界面可用于此目的;几乎所有的配置均可在线更改(其配置数据基于SQLite存储),无需重启proxysql;
2023-01-09 23:44:58
47
原创 MySQL高可用集群架构MHA企业级实战
MHA(Master High Availability)目前在 MySQL 高可用方面是一个相对成熟的解决方案,它由日本 DeNA 公司的 youshimaton(现就职于 Facebook 公司)开发,是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。自动的在MASTER宕机后选举新的SLAVE作为MASTER,保证服务不被中断自动的在MASTER宕机后将所有未被选举为新MASTER的SLAVE重新指向新的MASTER并启动复制。
2023-01-09 21:34:31
73
原创 PXC搭建MySQL高可用集群
Galera产品是以Galera Cluster方式为MySQL提高高可用集群解决方案的,对Galera Cluster的封装有两个,虽然名称不同,但实质都是一样的,使用的都是Galera Cluster。一个MySQL的创始人在自己全新的MariaDB上实现的MAriaDB Cluster,另一个是著名的MySQL服务和工具提供商percona对Galera实现的Percona XtraDB Cluster,简称PXC。
2023-01-09 18:10:31
55
原创 HAProxy搭建MySQL负载均衡集群
默认参数的配置部分。在负载均衡节点上,haproxy服务使用在应用层输入的mysql的用户名和密码去请求从服务器,所以在从节点授权用户的时候,授权的ip不是应用层的IP,也不是从节点的ip,而是负载均衡节点的ip,因为这个用户是给负载均衡节点用的。当然,由于像TP5这样的框架,请求数据库节点默认时3306端口,所以D节点的haproxy最好绑定3306端口,当业务层请求“D的ip:3306”时,业务层认为他请求的时一个数据库,其实D节点不是数据库,只是个中间代理而已,当然返回的是数据库的数据。
2023-01-09 16:23:33
45
原创 KeepAlived搭建MySQL高可用集群
MySQL Replication是MySQL自身提供的一个主从复制功能,其实也就是一台MySQL服务器(称为Slave)从另一台MySQL服务器(称为Master)上复制日志,然后再解析日志并应用到自身的过程。MySQL Replication是单向、异步复制,基本复制过程为:Master服务器首先将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志的循环。这些日志文件可以发送到Slave服务器进行更新。
2023-01-09 14:01:24
48
原创 MySQL高可用解决方案
MySQL高可用需要解决的主要有两个问题,即如何实现数据共享或同步数据,另一个是如何处理failover(故障切换)。数据共享一般的解决方案是通过SAN(Storage Area Network)来实现,而数据同步可以通过rsync软件或DRBD技术来实现。failover的意思就是当服务器死机或出现错误时可以自动切换到其他备用的服务器,不影响服务器上业务系统的运行。这里介绍一下目前比较成熟的MySQL高可用解决方案。有这么两个概念,数据库的可靠性和数据库的可用性,一般像银行系统都是追求数据的可靠,而像互联
2023-01-09 10:58:54
53
原创 MySQL数据库备份
xtrabackup 是用来备份 InnoDB和XtraDB两种数据表,不能备份非 InnoDB和XtraDB 表,而且只有ibd文件,frm文件它不管,恢复时就需要DBA提供frm ,同时,xtrabackup做备份的时候不能备份表结构、触发器等等。和 MySQL Server 没有交互。
2023-01-06 11:17:47
73
1
原创 KVM虚拟化技术实战
在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通的Linux进程有两种运行模式:内核和用户,KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。
2023-01-05 16:55:53
97
原创 Docker-Compose 部署HAProxy
然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。可以看到server 8的机器状态down掉了,继续使用ab测试,如下图 server8 是down掉的,此时请求不会分发到这台机器,重新启动后恢复正常。Docker Compose 属于一个“应用层”的服务,用户可以定义哪个容器组运行哪个应用,它支持动态改变应用,并在需要时扩展。根据haproxy.cfg 配置,查看 haproxy 监控:http://haproxy.halobug.cn/status。
2022-12-31 16:07:11
164
原创 HAProxy七层负载均衡器详解
HAProxy是一款开源的、高性能的、基于TCP(第四层)和HTTP(第七层)应用的负载均衡软件,借助HAProxy可以快速、可靠地提供基于TCP和HTTP应用的负载均衡解决方案。HAProxy特别适合应用于需要会话保持或七层处理的高负载 web站点,就当前常见硬件体系架构,基于HAProxy的负载均衡系统完全可以支撑数以万计的并发连接.同时,HAProxy的运行模式使其整合到用户当前的基础架构中是个非常简单且安全的过程。通过 HAProxy的代理,还可以避免用户的 Web服务器直接暴露到外部网络中。
2022-12-31 15:54:24
107
Pronfinet协议模拟器 Windows安装包
2022-12-06
goose协议发包工具 配使用说明
2022-12-06
S7协议模拟器 windows安装包 包含S7 pcap数据包
2022-12-06
CentOS7 163 yum源
2022-12-06
S7工控模拟器 windows安装包
2022-12-06
Scapy网络数据包修改工具
2022-07-25
西门子 PROFINET 网络调试和诊断工具
2022-07-25
DNP3 工业协议模拟器
2022-07-19
IoTClient.0.4.0
2022-07-13
BACnetIP 主从站仿真工具
2022-07-13
Python实现 IEC-61850 GOOSE和SV 实现
2022-07-12
网络调试助手 NetAssist
2022-07-11
Qcheck 3.0 网络性能测试工具
2022-06-27
IxChariot 10.0 Endpoint WINDOWS+LINUX+macOS + Android.zip
2022-06-27
火狐浏览器代理插件foxyproxy与SwitchyOmega.rar
2022-06-11
phpStudy v8.1 2020最新版本
2022-06-08
Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞
2022-06-08
Cygwin及windows上安装tcpreplay必要软件
2022-06-07
tcpreplay合集
2022-06-07
小兵以太网测试仪 3.1.9
2022-06-06
windows下curl工具 curl-7.71.1-win64-mingw
2022-06-02
各大POC/EXP等合集
2022-05-30
以太网发包工具xcap
2022-05-29
trex_client_v2.97 官网最新版
2022-05-26
Iris Network Traffic Analyzer 5.32 一款很好用的协议分析软件,5.32最新版。
2022-05-26
Fragroute是一个数据包处理工具,可以拦截,修改和重写网络流量。你可以使用此工具执行大多数网络渗透测试,以检查网络的安全性
2022-05-26
tcprstat 网络时延与响应时间测试神器!
2022-05-26
isic 畸形数据包狂发工具,可以制造各种非法数据包,分片包 isic-0.07.tgz libnet-1.1.5.tar.gz
2022-05-26
IDS IPS 流量回放包
2022-05-20
科来数据包播放器v1.3
2022-05-20
科来最新数据包播放器v2.1 2019发布配使用说明手册
2022-05-20
ENSP模拟器 下载合集,永久有效 亲测绝对可用!!!
2022-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人