自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Windeal

Linux、网络协议栈、网络通信

  • 博客(211)
  • 资源 (25)
  • 收藏
  • 关注

原创 Opentracing概念介绍——Span

在OpenTracing中,跟踪数据通常由许多小的跨度(Span)组成。Span代表应用程序处理过程中的某个操作,例如 SQL 查询、HTTP 接口调用或函数调用等。每个Span都有一个开始时间和结束时间,并记录了其他元数据,例如跨度所属的节点、跨度的父子关系、错误信息和跨度的标签等。OpenTracing是一个用于在分布式系统中跟踪代码路径的工具。在OpenTracing中,Span是一个核心概念,代表分布式操作和服务调用的执行路径。

2023-11-13 20:13:55 268

原创 从单服务设计看SLA保证

文章首发公众号:海天二路搬砖工。

2023-11-13 20:10:15 249

原创 微服务拆分的一些基本原则

单一职责原则原本是面向对象设计中的一个基本原则,它指的是一个类只负责一项职责,不要存在多于一个导致类变更的原因。在微服务架构中,一个微服务也应该只负责一个功能或业务领域,这样可以使微服务的职责清晰、可维护性高、易于扩展和替换。微服务架构的服务自治原则(Service Autonomy)是指每个微服务都应该具备高度自治的能力,即每个服务要能做到独立开发、独立测试、独立构建、独立部署,独立运行。服务自治原则是微服务架构中的一条基本原则,它有利于提高整个系统的可靠性和弹性,并能够更快速地响应业务需求和变化。

2023-11-13 20:07:43 320

原创 Golang源码分析 | 程序引导过程

看到很多材料写的是为了后面的16字节对齐,但是如果仅仅只是为了16字节对齐,后面的ANDQ $~15, SP看起来就已经足够了。我们分析的是amd64的源码,汇编指令按64bit寻址,每次操作8个字节的数据。这里使用的汇编指令都带一个Q表示操作的是8个字节,如果是32bit则指定为MOVL、LEAL等,表示操作4个字节)第二个2*8字节,在这里并未填充值,它是用来后面给G0传递参数的,让G0启动向一个普通的调用一样。如果是0x*****0这种情况,那么4*8本身就是16字节对齐的,不需要额外操作。

2023-11-13 20:02:43 188

原创 故障演练 | 微服务架构下如何做好故障演练

微服务架构场景中,应用系统复杂切分散。长期运行时,局部出现故障时不可避免的。如果发生故障时不能进行有效反应,系统的可用性将极大地降低。故障演练是指模拟生产环境中可能出现的故障,测试系统或应用在面对故障时的反应和响应能力。故障演练可以模拟各种故障情况(网络故障、数据库故障、服务过载,CPU或内存异常等)。汇总并报告故障演练的结果,包括每个故障场景的模拟效果、记录的数据和监控指标等;分享演练中发现的问题,并制定改进方案,推进后续工作。

2023-11-13 19:58:06 250

原创 Web安全系列——CSRF攻击

CSRF 攻击是Web应用中最常见的攻击方式之一。CSRF攻击给网站身份验证、用户账户和个人隐私带来极大威胁。了解 CSRF 攻击的流程、原理与防御措施,是构建安全可靠的Web应用程序的必要条件。CSRF,全称是Cross-Site Request Forgery,中文名为跨站请求伪造。CSRF攻击是指指恶意攻击者利用用户已经登录了另一个网站的“身份”来伪造用户的请求(例如提交一个表单)。

2023-11-01 19:49:08 107

原创 Web安全系列——XSS攻击

XSS (Cross-site scripting)攻击,即跨站脚本攻击。攻击者通过在受害者的浏览器中注入恶意代码,攻击受害者的登录凭证、盗取敏感信息或控制受害者的会话等。XSS攻击是很场景的Web应用攻击类型。反射型XSS攻击是将注入的恶意脚本添加到一个网址中,然后给用户发送这个网址。一旦用户打开这个网址,就会执行脚本并导致攻击。攻击负载和脚本跟随用户点击链接,并被嵌入到响应中,在浏览器上执行。

2023-11-01 19:48:31 298

原创 Web安全系列——注入攻击

在Web应用程序开发中,防SQL注入最基本的安全防护要求了。其实除了SQL注入, 还有很多其他的注入攻击方式。注入攻击是最常见的Web应用攻击方式之一。本文将介绍注入攻击的概念、种类、原理,以及如何防护。注入攻击是指攻击者在应用程序接收用户输入的地方注入自己精心构造的攻击代码,以达到执行任意操作、篡改数据或者获取敏感信息的目的。注入攻击是 Web 应用程序中最常见的攻击类型之一,攻击成功将导致应用程序的机密性、完整性和可用性等方面的风险。

2023-11-01 19:47:55 292

原创 Web安全系列——敏感信息泄露与加密机制

数字化时代,越来越多的数据正在被传输到Web应用程序中,这其中不乏个人或机构的敏感信息。如果Web应用程序未采取正确的加密机制,这些信息可能会遭到窃取或篡改,从而使用户数据或机构的财产受到威胁。

2023-11-01 19:43:33 1175

原创 手把手教你实现一个Kong网关插件

Kong Gateway 是一个轻量、快速、灵活的基于Nginx开发云原生 API 网关。在云原生领域,Kong Gateway 越来受欢迎。Kong提供了插件化能力,在对后台业务服务代码无侵入的条件下,可以在接入层方便地引入认证鉴权、安全防护、流量控制都能功能。这也是其受欢迎的原因之一。Kong Gateway 官方已经提供了一系列常用的插件,但是业务开发中有时需要定制自己的插件。本文将介绍如何编写 Kong 的自定义插件,以及如何将插件集成到 Kong 网关中。

2023-10-18 09:27:18 383 1

原创 Web安全系列——越权访问(权限控制失效)

越权访问是当前Web应用中最常见的安全风险之一。本文将介绍越权访问的原理、风险以及典型攻击场景,并为开发者提供有效的防范措施,帮助构建安全的Web应用。越权访问,是指用户在不具备相应权限(或者说业务逻辑上不应该具备相应权限)的情况下访问了受限制的资源或执行了不允许的操作。出现越权访问一般是因为Web应用系统为建立合理的权限控制机制,或者权限控制机制失效。

2023-10-18 09:23:48 622

原创 Docker 网络基础与实现

Docker是应用容器引擎,它利用虚拟化技术打包应用及其依赖。Docker网络的实现主要就是如何在共享内核的基础上,实现socket的隔离,虚拟设备的隔离和通信.、Docker容器的本质是 共享内核,资源隔离、资源限制、文件系统rootfs...

2022-07-14 20:30:13 595 1

原创 浏览器多标签页登录身份刷新

欢迎关注我的主页 blog.lipeilun.com背景用户在浏览器打开一个标签页Tab1, 登录身份A在同一个浏览器中,另外打开一个标签页Tab2重新登录身份B。如果没有做特别处理,切回Tab1时,看到时依然时身份A的信息。由于浏览器共享cookie, 后台等登录态已经切换为身份B。 这时在Tab1等操作,实际上是操作的是身份B的数据。这显然是不合理的通常合理的做法是,在切回T...

2019-09-18 16:58:32 1559

原创 nodejs npm 问题解决记录 MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "14.0", "4.0"

MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "14.0", "4.0"PS E:\Project\nodejs\Study> npm install --msvs_version 2015PS E:\Project\nodejs\Study> npm config set msvs_version 2015 --global```...

2019-01-10 17:29:08 11527

原创 CentOS 7 编译安装DNS服务器bind

网上大部分教程使用yum安装,但是我这边用该方法安装后启动不起来,具体原因不详。目前是使用源码安装,使用的版本是bind-9.9.9-P6root@localhost:opt$ wget ftp://ftp.isc.org/isc/bind9/9.9.9-P6/bind-9.9.9-P6.tar.gzroot@localhost:opt$ tar -zvxf bind-9.9.9-P6.ta...

2018-02-28 16:02:17 2192

原创 理解HTTPS

为什么要有HTTPSHTTPS的出现主要是为了解决HTTP协议在安全性上的不足HTTP的不足HTTP是被广泛使用的web协议,但其在安全性上存在以下不足:明文通信,内容可能被窃听不验证通信方身份,通信方可能是伪装的。不验证报文的完整性,报文可能被修改。明文通信进行web通信时,通信线路上的设备可能分布与世界上的任何角落,这些网络设备、光缆、计算机等很多都是公

2018-01-18 15:52:43 708

原创 内核态与用户态、系统调用与库函数、文件IO与标准IO、缓冲区等概念介绍

概述Linux提供了两套可以用于文件的IO接口:文件IO: open、create、close、lseek、read、write、fcntl、ioctl等标准IO: FILE、fopen、fwrite、fread、等为了理解文件IO和标准IO的区别,可能要先理解下用户态与内核态,系统调用与库函数的概念。用户态和内核态什么是用户态和内核态: 内核态: CPU

2018-01-17 11:34:52 5902

原创 TCP网络协议编程——close()和shutdown()比较

终止tcp网络连接的几种方式调用close调用shutdown进程退出(调用exit或从main函数返回,或收到一个终止本进程的信号)close()函数调用close函数可以产生以下效果:导致相应socket套接字的引用计数减一。如果引用计数为0时,发送FIN包。指明本进程不应该再使用对应的socket套接字。对于单进程而言,因为其socket套接字的引用计数不会

2018-01-15 15:59:39 1332 1

原创 CentOS 7.2 和 Ubuntu 16.04 安装配置samba

系统信息[lipl@localhost ~]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [lipl@localhost ~]$ 要确保虚拟机中centOS能够上网, 主机能够被ping通安装samba安装sudo yum -y install samba查看[root

2018-01-10 10:34:37 4023

原创 CentOS编译安装subversion 1.9.7

安装aprwget http://mirror.bit.edu.cn/apache//apr/apr-1.6.3.tar.gz tar -zxvf apr-1.6.3.tar.gz./configure --prefix=/desired/path/of/aprmakesudo make install安装apr-utilwget http://mirror.bit

2018-01-09 10:56:44 1743

转载 让curl命令支持http2

CentOS首先,先为你的服务器获取最新匹配的源:http://mirror.city-fan.org/ftp/contrib/yum-repo/安装新版libcurl的yum源rpm -ivh http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm升级libcurlyum

2017-12-22 09:46:43 8110

原创 Linux下sendmail配置

linux下可以配置sendmail作为邮件服务器,可以使用系统用户作为账号进行发送邮件(不需要真实的邮箱账号)安装: sudo apt install sendmail 或 sudo yum install sendmailCentOS 配置root@ubuntu:~# cat /etc/mail/local-host-names # local-host-names - include al

2017-12-08 09:46:27 4021

转载 Ubuntu安装sendmail失败卡死问题解决方案

使用sudo apt install sendmail安装 结果如下:sudo dpkg --configure -aSetting up sendmail-bin (8.15.2-3) ...Updating sendmail environment ...Reading configuration from /etc/mail/sendmail.conf.Validating conf

2017-12-07 09:28:47 2340

原创 如何让Wireshark支持(加密的HTTP2等)HTTPS报文分析

Wireshark本身并不支持分析HTTPS报文。 随着HTTPS、甚至HTTP2协议的流行,抓取并分析tls加密的报文变得极为有用。 下面介绍如何用Wireshark解密经tls加密的web报文。浏览器设置要解码tls加密的web报文,首先要获取到加密密钥。 Chrome、Firefox等浏览器支持将访问网站是使用的密钥输出到文件中。仅需要配置环境变量SSLKEYLOGFILE 即可。 首

2017-11-23 14:36:30 20383 1

原创 虚拟机samba共享 使用svn时遇到的各种问题笔记

虚拟机Ubuntu16.04 设置samba共享,TortoiseSVN 访问时各种问题`The working copy database at '\\192.168.168.186\wangsu\maa' is corrupt.` 、`sqlite: attempt to write a readonly database svn:`问题记录与解决方案

2017-08-08 10:08:16 2401

原创 Ubuntu 16.04 安装 VMware Tools后开机启动卡在A start job is running for LSB

Ubuntu 16.04 重新安装VMware Tools后,重新启动时卡在 A start job is running for LSB: VMware Tools Services , 大概90s。Ubuntu 16.04 开机卡慢

2017-08-08 09:54:23 13363

原创 centOS6系统 glib-2.52.0安装笔记

glib:lipl@bogon:opt$ wget http://ftp.gnome.org/pub/gnome/sources/glib/2.52/glib-2.52.0.tar.xzlipl@bogon:opt$ tar -Jvxf glib-2.52.0.tar.xz lipl@bogon:glib-2.52.0$ ./configure --enable-libmount=no # 这

2017-08-03 10:10:36 6919 3

转载 SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程

相关学习资料 http://www.360doc.com/content/10/0602/08/1466362_30787868.shtml http://www.gxu.edu.cn/college/hxhgxy/sec/COURSE/ch13/1.htm http://www.rfc-editor.org/rfc/rfc6101.txt http://3600.1kapp.com/?p=

2017-06-11 00:37:41 1589

原创 HTTPS知识整理(上)

HTTPS是最流行的HTTP安全形式,是HTTP的一个安全版本。有网景公司首创。对称加密指编码和解码使用相同密钥的加密算法。非对称加密是指编码和解码使用不同密钥的加密算法Web事务中的混合加密指的是,先使用非对称加密建立安全的通信隧道。然后使用对称加密实现对数据报文的编解码。数字签名是附加在报文上的特殊加密校验码。用HTTPS建立一个安全的Web事务之后,现代浏览器都会自动获取所连接服务器的数字证书。

2017-06-02 15:48:56 655

原创 使用devtoolset升级GCC版本

工作中有时需要进行gcc的升级,最近在工作中遇到要编译一个使用了C++11标准的开源代码,因而需要进行gcc的升级。gcc 升级的两种方法目前知道两种升级gcc 的方法:直接编译安装新版本的gcc (目测前方坑很多)下面通过devtoolset来升级下gcc

2017-05-09 09:07:31 7222 1

转载 也许这样理解 HTTPS 更容易

转载自: http://showme.codes/2017-02-20/understand-https/摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消

2017-05-08 23:34:58 716

原创 vim 空格转tab,2空格缩进转4空格

最近遇到一个问题: 源文件文件原来的缩进是2空格,现在想把它变成4个空格。(注意,源文件中的缩进都已经用空格替换了)。首先,要把2空格转换成tab:set ts=2:set noexpandtab:%retab!再把缩进宽度有2空格编程4空格长度:set ts=4缩进转空格:set expandtab:%retab!

2017-03-28 16:10:04 2484 1

原创 pyenv pip安装第三方库 Traceback (most recent call last): socket.timeout: The read operation timed out

解决方法:设置超时时间 pip –default-timeout=100 install -U Pillow

2016-12-26 22:49:29 10315 2

原创 pyenv进行python版本本地安装

pyenv 是一个针对python的多版本管理工具。使用pyenv可以很轻松的在一个系统上使用不同版本的python,并实现轻松的切换。 关于pyenv的更多介绍可以参考:https://github.com/yyuu/pyenvpyenv install 命令用于在系统上安装python, 比如pyenv install 3.5.0 则可以帮助我们安装python 3.5.0. 然而,由于墙等原

2016-11-30 20:39:55 12315 2

转载 到目前为止,Linux下最完整的Samba服务器配置攻略

关于Samba,大家有没有这种感觉,弄了N久丫的死活不喘气儿。找来各种“哥”和“姐”,发现全是“详解…配置专题”,看了半天不知道别个在说什么,好不容易找了个简单的教程,从头到尾跟着做,尼玛,浪费时间精力不说,就是跑不起来。是不是有种吐血的生理反应了。唉,不会写文档的娃,伤不起啊。而本文实现的是Linux和Windows间资源互通的问题:在Linux下架设Samba服务器,在Windows下来访问。

2016-11-08 12:47:07 5304 4

原创 zlib库 安装与使用

1. zlib简介  zlib 适用于数据压缩的函式库,由Jean-loup Gailly (负责compression)和 Mark Adler (负责decompression)开发。    zlib被设计成一个免费的、通用的、法律上不受阻碍(即没有被任何专利覆盖) 的无损数据压缩库。zlib几乎适用于任何计算器硬件和操作系统。   zlib本身的数据格式可以进行跨平台的移植。 与在U

2016-10-29 19:53:38 48701 6

转载 HTTP, HTTP2.0, SPDY, HTTPS | 4种网络协议的渊源与发展

HTTP与现代浏览器 3 HTTP的基本优化 HTTP1.0和HTTP1.1的一些区别HTTP1.0和HTTP1.1存在的一些问题使用SPDY加快你的网站速度 HTTP2.0的新特性

2016-10-27 15:56:17 1158

转载 程序员解决问题的60个策略

程序员的生活就是解决一个又一个问题,永无止境。这篇文章介绍了一系列解决问题的策略。根本的指导方针首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。良好的单元测试强制数据库约束使用输入验证框架避免未实现的“else”条件在应用到主程序之前知道如何在孤立的情况下使用日志print 语句。往往额外输出个一两行将有助于隔离问题。切换至详细的日志记录。详细的日志记录有助于

2016-10-26 10:58:37 773

转载 C语言正则表达式详解 regcomp() regexec() regfree()详解

Linux上一些函数库可以辅助C/C++程序员正则表达式的处理。 常用的接口有regcomp()、regexec()、regfree()和regerror(),C语言中使用正则表达式一般分为三步:编译正则表达式 regcomp()匹配正则表达式 regexec()释放正则表达式 regfree()

2016-10-26 08:57:47 7237

转载 99%的人都理解错了 HTTP 中 GET 与 POST 的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包。

2016-10-21 10:25:04 1424

OpenStack企业云平台架构与实践.pdf

本书结合作者亲身经历的各类OpenStack的咨询、规划和实施经验,以循序渐进的方式,从理论和工程角度,讲述了如何将OpenStack(本质上只是一堆相关的进程和服务)变成企业可靠的、托管企业各类生产环境的云平台的方方面面,让OpenStack真正变成我们身边默默无闻但又实实在在的环境的一分子。本书分为10章,分别介绍了OpenStack与云,OpenStack社区,OpenStack与AWS、VMware、虚拟化管理工具,虚拟机管理程序与典型应用,OpenStack架构与组件,OpenStack部分组件安装示例,系统定制技术,OpenStack部署,第三方工具搭建OpenStack运行环境,九州云Animbus融合架构一体机解决方案等内容。

2018-04-25

TCP-IP详解卷2-实现.pdf

CP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和协议族的关系以及主机实现 与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。《TCP/IP详解·卷2:实现》适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。

2018-04-13

UNIX环境高级编程 中文第3版

《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX行业发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据新的标准对内容进行了修订和增补,反映了新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。   《UNIX环境高级编程(第3版)》概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。

2018-01-15

libev-官方手册

libev是高性能事件循环/事件模型的网络库,并且包含大量新特性。 它是继lievent和Event perl module之后的一套全新网络库。它追求的目标:速度更快,bug更少,特性更多,体积更小。

2017-06-12

Linux+C编程一站式学习

这本书最初是为北京亚嵌教育研究中心的嵌入式Linux系统工程师就业班课程量身定做的教材之 一。该课程是为期四个月的全日制职业培训,要求学员毕业时具备非常Solid的C编程能力,能熟 练地使用Linux系统,同时对计算机体系结构与指令集、操作系统原理和设备驱动程序都有较深 入的了解。然而学员入学时的水平是非常初级而且参差不齐的:学历有专科、本科也有研究生, 专业有和计算机相关的也有很不相关的(例如会计专业),以前从事的职业有和技术相关的也有 完全不相关的(例如HR),年龄从二十出头到三十五六岁的都有。这么多背景完全不同、基础 完全不同、思维习惯和理解能力完全不同的人来听同一堂课,大家都迫切希望学会嵌入式开发技 术,投身IT行业,这就是职业教育的特点,也是我编这本书时需要考虑的主要问题。

2014-12-26

高质量C++编程_林锐

软件质量是被大多数程序员挂在嘴上而不是放在心上的东西! 除了完全外行和真正的编程高手外,初读本书,你最先的感受将是惊慌: “哇!我以 前捏造的 C++/C 程序怎么会有那么多的毛病?” 别难过,作者只不过比你早几年、多几次惊慌而已。 请花一两个小时认真阅读这本百页经书,你将会获益匪浅,这是前面 N-1 个读者的 建议。

2014-12-26

彻底搞定C指针 高清版

姚云飞先生的大作《彻底搞定C指针》是互联网上中文C/C++界内为数不 多的专门阐述C指针问题的优秀文献资源之一。

2014-12-26

cntlm(设置全局域代理)

解决ISA+Windows域 环境下,一些无法设置域代理的软件无法连接网络的问题

2014-09-25

TCP-IP详解卷一:协议.pdf

于TCP/IP的论著中,最有影响的的著作之一,卷一详细描述了有关TCP/IP相关洗衣的概念,原理。

2014-07-11

H.264编码源代码(单帧,简单易用)

H.264编码源代码,就几个文件,容易看懂,可以通过调用几个函数实现一个视频帧的编解码。

2014-03-31

C语言深度解剖

由作者结合自身多年嵌入式C语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。

2014-03-11

算法分析与设计+王晓东

本书以算法设计策略为知识单元 系统地介绍计算机算法的设计方法与分析技巧 以期为计算机科学与技术学科的学生提供广泛而坚实的计算机算法基础

2014-03-11

学生成绩管理系统

学生成绩管理系统 VC6 可运行

2011-12-29

Tab控件的使用

Tab控件的使用

2011-12-29

CMMI3 开发规范文档

CMMI3 开发规范文档

2011-12-29

MFC类库详解MSDN

中文版的MFC类库详细解析。具有索引功能。能够较快地查询MFC基础类库。方便编程开发。

2011-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除