Linux系统之部署SSCMS内容管理系统并实现外网访问
Linux系统之部署SSCMS内容管理系统并实现外网访问
- 一、SSCMS介绍
- 二、cpolar介绍
- 2.1 cpolar简介
- 2.2 cpolar使用场景
- 三、本地环境介绍
- 3.1 本地环境规划
- 3.2 本次实践介绍
- 四、本地环境检查
- 3.1 检查Docker服务状态
- 3.2 检查Docker版本
- 3.3 检查docker compose 版本
- 五、部署SSCMS服务
- 4.1 创建SSCMS容器
- 5.2 检查SSCMS容器状态
- 5.3 SSCMS的初始配置
- 5.4 访问SSCMS网站服务
- 六、cpolar的初始配置工作
- 6.1 登录cpolar官网
- 6.2 安装cpolar工具
- 6.3 启动cpolar服务
- 6.4 查看cpolar版本
- 6.5 token认证
- 6.5 重启cpolar服务
- 七、SSCMS服务的外网配置
- 7.1 查看cpolar命令的帮助信息
- 7.2 查看在线隧道
- 7.3 访问cpolar web ui 管理界面
- 7.4 查看默认的隧道列表
- 7.5 公开本地web网站
- 7.6 配置后台服务
- 7.7 启动所有隧道测试
- 八、在cpolar web ui中创建隧道
- 8.1 创建隧道
- 8.2 复制公网地址
- 8.3 访问SSCMS网站服务
一、SSCMS介绍
SSCMS 基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。
二、cpolar介绍
2.1 cpolar简介
cpolar极点云: 公开一个本地Web站点至公网,只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序、对接支付宝网关等云端服务,提高您的编程效率。
2.2 cpolar使用场景
cpolar常用的使用场景:
- 公开一个本地Web网站
- 微信公众号开发调试
- 在移动设备上测试
- 远程控制树莓派
三、本地环境介绍
3.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | IP地址 | 操作系统版本 | Docker版本 | 内网穿透工具 |
---|---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 20.10.17 | cpolar |
3.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎使用;
2.在Docker环境下部署SSCMS内容管理系统;
3.通过cpolar实现外网访问部署在内网中的SSCMS服务。
四、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-08-23 23:41:16 CST; 2 days agoDocs: https://docs.docker.comMain PID: 9562 (dockerd)Tasks: 75Memory: 550.6M
3.2 检查Docker版本
检查Docker版本
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1
五、部署SSCMS服务
4.1 创建SSCMS容器
使用docker-cli命令快速创建SSCMS容器
docker run -d \--name my-sscms \-p 8011:80 \--restart=always \-v volume-sscms:/app/wwwroot \-e SSCMS_SECURITY_KEY=e2a3d303-ac9b-41ff-9154-930710af0845 \-e SSCMS_DATABASE_TYPE=SQLite \sscms/core
5.2 检查SSCMS容器状态
检查SSCMS容器状态,确保SSCMS容器正常启动。
[root@jeven ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f4ee09c6548a sscms/core "dotnet SSCMS.Web.dll" 5 minutes ago Up 5 minutes 443/tcp, 0.0.0.0:8011->80/tcp, :::8011->80/tcp my-sscms
5.3 SSCMS的初始配置
访问地址:http://192.168.3.166:8011/,将IP替换为自己服务器的IP地址,进入到SSCMS后台管理页面。
点击进入后台管理后,对sscm初始化设置。
主要设置管理员账号和密码,其余默认配置即可。
登录后台管理后,选择使用在线站点模板创建站点。
选择一个在线模板创建站点
设置站点信息:
站点名称:myweb;
站点类型:网站;
站点级别:主站;
其余默认,点击“创建站点”。
5.4 访问SSCMS网站服务
访问地址:http://192.168.3.166:8011/,进入SSCMS前台网站服务的首页。
六、cpolar的初始配置工作
6.1 登录cpolar官网
cpolar官网地址:https://www.cpolar.com/,注册账号及登录cpolar官网。
6.2 安装cpolar工具
在本地SSCMS服务器,由于本地服务器为centos7.6,执行以下命令,使用脚本一键安装cpolar。
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
6.3 启动cpolar服务
执行以下命令,启动cpolar服务。
systemctl enable cpolar && systemctl start cpolar
6.4 查看cpolar版本
查看cpolar版本
[root@jeven ~]# cpolar version
cpolar version 3.3.12
6.5 token认证
登录cpolar官网后,点击左侧的验证查看自己的认证token。
将token复制,把复制好的token执行如下命令:
cpolar authtoken tokenxxx
6.5 重启cpolar服务
使用以下命令,重启cpolar服务。
systemctl restart cpolar
查看cpolar服务状态
[root@jeven ~]# systemctl status cpolar.service
● cpolar.service - Cpolar ServiceLoaded: loaded (/etc/systemd/system/cpolar.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-10-18 03:23:30 CST; 14h agoDocs: https://www.cpolar.com/docsMain PID: 9320 (cpolar)Tasks: 16Memory: 49.3MCGroup: /system.slice/cpolar.service├─ 9320 cpolar: master process└─12616 cpolar: worker processOct 18 03:23:30 jeven systemd[1]: Started Cpolar Service.
七、SSCMS服务的外网配置
7.1 查看cpolar命令的帮助信息
使用help选项,查询cpolar命令的帮助信息。
cpolar help
7.2 查看在线隧道
登录cpolar官网,点击左侧的状态,在线隧道列表显示默认创建的2条隧道:
1.website隧道,指向8080端口,
2.http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)。
7.3 访问cpolar web ui 管理界面
当我们在Linux上成功安装了cpolar,而我们可以使用cpolar的内网穿透功能,实现多种场景的应用。
可使用如下方式访问http://192.168.XX.XX:9200,默认在9200端口。打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
7.4 查看默认的隧道列表
cpolar安装成功后,默认会安装2条示例隧道,可以自行编辑或者删减:
1.ssh隧道:指向本地22端口,TCP协议;
2.website隧道:指向本地8080端口,HTTP协议。
7.5 公开本地web网站
创建http隧道,指向本地8011端口。
cpolar http 8011
有生成相应的公网地址,一个http协议,一个为https协议(免去配置ssl证书的繁琐步骤),将其复制下来。
访问测试,在浏览器地址: http://61f71e5c.r10.cpolar.top,就会访问到本地的SSCMS web服务了。
7.6 配置后台服务
由于以上命令暴露的公网地址在窗口关闭后隧道也将同步关闭无法访问,所以我们需要将参数保存到配置文件中。方便每次开机后,后台自启动运行隧道。
- 编辑cpolar.yml文件
vim /usr/local/etc/cpolar/cpolar.yml
- cpolar.yml文件新增内容如下:
authtoken: xxxxxxxxxxxx #认证tokentunnels:websscms:proto: httpaddr: "8011"region: cn_vip
webstation:隧道名称,可以自定义
proto: 协议,如tcp或者http
region:线路地区:有cn cn_vip cn_top等,可自由选择,具体请参考官网文档——全球基础设施
7.7 启动所有隧道测试
执行以下命令,启动所有隧道测试。
cpolar start-all
在浏览器重新打开如上的cpolar地址。
使用https的cpolar访问地址,访问本地的SSCMS网站服务。
八、在cpolar web ui中创建隧道
8.1 创建隧道
在cpolar web ui 中,新建一条在线隧道:
隧道名称:可自定义,注意不要重复
协议:http
域名类型:选择随机域名
地区:选择China Top
8.2 复制公网地址
在线隧道列表中,复制公网访问地址。
8.3 访问SSCMS网站服务
在浏览器中,输入cpolar公网地址,可以成功访问到SSCMS网站服务,
相关文章:
![](https://img-blog.csdnimg.cn/605fe71ddf5349c691033d529fa27a0b.png)
Linux系统之部署SSCMS内容管理系统并实现外网访问
Linux系统之部署SSCMS内容管理系统并实现外网访问 一、SSCMS介绍二、cpolar介绍2.1 cpolar简介2.2 cpolar使用场景 三、本地环境介绍3.1 本地环境规划3.2 本次实践介绍 四、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 五、部署SSCMS服务…...
![](https://img-blog.csdnimg.cn/img_convert/8496939c9fcc6d1108b0494abfbb0679.png)
JVS-rules中的基础与复合变量:规则引擎的心脏
JVS-rules中的“变量”概念与编程语言中的变量类似,但它们通常在规则系统中处理条件判断、业务结果复制场景,如下所示: 条件判断:在规则引擎中,规则通常由两个部分组成:条件和分支。变量用于描述条件部分中…...
![](https://img-blog.csdnimg.cn/a37ec54331f54a92b3952abeaa14cda6.png)
RN:指定模拟器启动
背景 我们启动 react native 项目的时候,会打开一个模拟器,但是有时不是我们想要的,我们如何去指定一个模拟器启动呢? IOS xcrun simctl list devicesyarn ios --simulator"<模拟器的UDID>"Android 目前没发现…...
![](https://img-blog.csdnimg.cn/f66a691ce3d644fd94f99d49fd33fb71.png#pic_center)
【ARM Cache 系列文章 10 -- ARM Cortex-A720 Hunter 介绍】
文章目录 概述1.1 A720 Features1.1.1 core features1.1.2 Cache features1.1.3 Debug features 1.2 A720 组件介绍1.2.1 L1 缓存系统1.2.2 指令解码1.2.3 寄存器重命名1.2.4 指令分发单元1.2.5 向量执行单元1.2.6 加解密扩展单元1.2.6.1 有限域算法 1.3 接口1.4 GIC CPU Inter…...
![](https://img-blog.csdnimg.cn/9345ee1fa6774f8085c84652d1b7878b.png)
深度学习——残差网络(ResNet)
深度学习——残差网络(ResNet) 文章目录 前言一、函数类二、残差块三、ResNet模型四、模型训练五、小结总结 前言 随着设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力,…...
![](https://img-blog.csdnimg.cn/21f35691f16241afa41a6b35a07b9edd.png)
[java进阶]——IO流,递归实现多级文件拷贝
🌈键盘敲烂,年薪30万🌈 目录 一、认识IO流 二、了解编码与解码 二、IO流体系 三、字节输入输出流 四、字符输入输出流 五、多级文件拷贝 一、认识IO流 IO流也叫输入流(intput)、输出流(onput),该流就像java程序同硬盘之间的…...
![](https://img-blog.csdnimg.cn/901edc6798234646b157b22b6c985e66.png#pic_center)
Linux创建与删除用户
Linux创建与删除用户 新增用户: adduser 用户名【添加用户】 passwd 用户名【设置用户密码】删除用户: userdel -r 用户名【删除用户】...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
对传感器采样数据的低通滤波
低通滤波(Low-pass filter) 是一种过滤方式,规则为低频信号能正常通过,而超过设定临界值的高频信号则被阻隔、减弱。 一阶低通数字滤波器 滤波系数a越小,滤波结果越平稳,但是灵敏度低;滤波系数a越大,滤波结…...
![](https://img-blog.csdnimg.cn/ac0d546cfbc7486dae6572b017ff57f5.png)
Java开发树结构数据封装!
目录 源数据如下controller接口:service层封装:Dao接口:Dao层Mapper:映射实体类: 源数据如下 controller接口: RequestMapping("/UserTreeInfo")public RespBody getUserTreeInfo(Long userId) {List<MenuTreeVo>…...
![](https://img-blog.csdnimg.cn/fc12b4e07d854b8ba0474411cde2bbac.png#pic_center)
c++学习笔记汇总
[TOC] (C学习笔记汇总) 基础认识、基础语法 类、类与类之间的关系、可调用对象、std::function类模板、c11新标准、资源管理方案RAII、指针、智能指针、引用计数、C的多态 ios、istream、iostream、fstream、sstream 模板编程: 模板编程:主要分为“泛…...
![](https://img-blog.csdnimg.cn/ffa639ef1cb843cda3eb638e36c6d95b.png)
[动手学深度学习]生成对抗网络GAN学习笔记
论文原文:Generative Adversarial Nets (neurips.cc) 李沐GAN论文逐段精读:GAN论文逐段精读【论文精读】_哔哩哔哩_bilibili 论文代码:http://www.github.com/goodfeli/adversarial Ian, J. et al. (2014) Generative adversarial network…...
![](https://img-blog.csdnimg.cn/638de5f2b6bf48978dd6cc3ed2e63b89.png)
Kotlin中的算数运算符
在Kotlin中,我们可以使用各种算术运算符来进行数值计算和操作。下面对这些运算符进行详细描述,并提供示例代码。 正号(正数)和负号(负数): 正号用于表示一个正数,不对数值进行任何…...
![](https://img-blog.csdnimg.cn/0d8f9104917a4d6e894c53e25fa8946f.png)
Linux高性能服务器编程 学习笔记 第十六章 服务器调制、调试和测试
Linux平台的一个优秀特性是内核微调,即我们可以通过修改文件的方式来调整内核参数。 服务器开发过程中,可能会碰到意想不到的错误,一种调试方法是用tcpdump抓包,但这种方法主要用于分析程序的输入和输出,对于服务器的…...
![](https://www.ngui.cc/images/no-images.jpg)
第三期:云函数入门指南答案
1.云函数需要用户自行考虑租用/购买多少资源以达到最少成本最高效运行自己的函数。 答案:错误(False) 2.Cloud Functions可以为您准备好计算资源,弹性地、可地运行任务,并提供日志查询、性能监控和报警等功能。 答案:正确(True…...
![](https://img-blog.csdnimg.cn/5ff63006f1c0444799b121673b54f83f.png)
企业怎么通过数字化工具来实现数字化转型?
数字化转型是使用数字技术和工具从根本上改变公司运营方式并向客户提供价值的过程。它涉及思维方式、流程和技术的全面转变,以跟上快节奏的数字时代。以下是有关公司如何通过数字工具实现数字化转型的分步指南: 1.定义您的愿景和目标: 首先确…...
![](https://img-blog.csdnimg.cn/823f10a3e580496eb97cc0132ff06228.gif)
React函数式写法和类式写法的区别(以一个计数器功能为例子)
函数式写法更加简洁和函数式编程思维导向,适用于无状态、UI纯粹的组件,且可以使用Hooks处理副作用。而类式写法适用于有内部状态、生命周期方法和复杂交互逻辑的组件,提供了更多的灵活性和控制力。 文章目录 一、计数器功能演示 1.函数式写法…...
![](https://www.ngui.cc/images/no-images.jpg)
【根据国防科大学报官网word模板修改的Latex模板】
根据国防科大学报官网word模板修改的Latex模板 学报Word模板链接Latex模板结构编译环境为Texlivevscode或Textstudio 学报Word模板链接 学报官网相关下载链接 点击链接即可前往官网下载相关word模板 Latex模板结构 latex模板 ass.cfg文件 %深层模板文件ass.cls文件 %浅层模板…...
![](https://www.ngui.cc/images/no-images.jpg)
系列十一、Redis中分布式缓存实现
一、缓存 1.1、什么是缓存 内存就是计算机内存中的一段数据。 1.2、内存中的数据特点 读写快断电数据丢失 1.3、缓存解决了什么问题 提高了网站的吞吐量和运行效率减轻了数据库的访问压力 1.4、哪些数据适合加缓存 使用缓存时,一定是数据库中的数据极少发生改…...
![](https://www.ngui.cc/images/no-images.jpg)
Spark大数据分析与实战笔记(第一章 Scala语言基础-4)
文章目录 每日一句正能量1.4 Scala面向对象的特性1.4.1 类与对象的特性1.4.2 继承1.4.3 单例对象和伴生对象1.4.4 特质 每日一句正能量 若要快乐,就要随和;若要幸福,就要随缘。快乐是心的愉悦,幸福是心的满足。别和他人争吵&#…...
![](https://img-blog.csdnimg.cn/09567dda267847eea03703719d5d4839.png)
腾讯云服务器端口localhost可以访问,外部无法访问解决
搭建frp跳板,发现无法使用。ssh 连接不上。 主要检查2个东西: 1. ubuntu ufw系统防火墙。这个默认是关掉的 2. tencent这个防火墙规则设置后,还要设置到实例上。 以前不是这样的。就掉坑里了。 # systemctl rootVM-4-4-ubuntu:/lib/syst…...
![](https://img-blog.csdnimg.cn/2fd3899bf61b4c8f82334df4630331ca.png)
【软考-中级】系统集成项目管理工程师 【16 变更管理】
持续更新。。。。。。。。。。。。。。。 【第十六章】变更管理 (选择2分 考点 1:变更的常见原因考点 2:变更管理的原则是项目基准化、变更管理过程规范化考点 3考点 4考点 5:变更的工作程序考点 6考点 7考点 8考点 9考点 10考点 11考点 12:变更分类系列文章经典语录 考点 1:变…...
![](https://img-blog.csdnimg.cn/ba721df27b8c4a92b851c85d3f9ab579.png)
【Eclipse】查看版本号
1.在Eclipse的启动页面会出现版本号 2. Eclipse的关于里面 Help - About Eclipse IDE 如下图所示,就为其版本 3.通过查看readme_eclipse.html文件...
![](https://www.ngui.cc/images/no-images.jpg)
论文精讲目录
ViT论文逐段精读【论文精读】MoCo 论文逐段精读【论文精读】对比学习论文综述【论文精读】Swin Transformer论文精读【论文精读】CLIP 论文逐段精读【论文精读】双流网络论文逐段精读【论文精读】I3D 论文精读【论文精读】视频理解论文串讲(上)【论文精读…...
![](https://www.ngui.cc/images/no-images.jpg)
双飞翼布局和圣杯布局
双飞翼布局和圣杯布局都是一种三栏布局,其中主要内容区域位于中间,左侧栏和右侧栏位于两侧。它们的实现方式类似,但有一些细微的差别。 双飞翼布局的实现原理是通过使用flex布局,给主要内容区域设置flex:1;…...
![](https://www.ngui.cc/images/no-images.jpg)
Hive insert插入数据与with子查询
1. insert into 与 insert overwrite区别 insert into 与 insert overwrite 都可以向hive表中插入数据,但是insert into直接追加到表中数据的尾部,而insert overwrite会重写数据,既先进行删除,再写入 注意:如果存在分…...
![](https://www.ngui.cc/images/no-images.jpg)
如何在Django中集成JWT
文章目录 JWT简介在Django中使用JWT1. 安装2. 配置3. 添加认证接口 客户端使用JWT1. 获取新token2. 调用API3. 刷新token 同步发布在个人站点:https://panzhixiang.cn JWT简介 JWT(JSON Web Token)是一种流行的跨域认证解决方案。它可以在令牌中安全地传输用户身份…...
![](https://www.ngui.cc/images/no-images.jpg)
hive进行base64 加密解密函数
加密 select base64(cast(abcd as binary))YWJjZA 解密 -- 直接解密(结果字段格式为比binary格式) select unbase64(YWJjZA) -- 格式转换 select cast(unbase64(YWJjZA) as string) abcd...
![](https://img-blog.csdnimg.cn/9baae0979dd94878a220d3a26d687e82.png)
Docker安装GitLab及使用图文教程
作者: 宋发元 GitLab安装及使用教程 官方教程 https://docs.gitlab.com/ee/install/docker.html Docker安装GitLab 宿主机创建容器持久化目录卷 mkdir -p /docker/gitlab/{config,data,logs}拉取GitLab镜像 docker pull gitlab/gitlab-ce:15.3.1-ce.0运行GitLa…...
![](https://img-blog.csdnimg.cn/9d6398ae1d9f4b32b261c78fc87ec515.png)
asp.net酒店管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
一、源码特点 asp.net酒店管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net 酒店管理系统1 二、功能介绍 …...
![](https://img-blog.csdnimg.cn/cb41e6d8894d4160af576b17bb5e814b.png)
Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv 计算机竞赛
1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 Yolov安全帽佩戴检测 危险区域进入检测 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&am…...
![](http://www.jdon.com/concurrent/EJBartichect.gif)
网站建设定制开发/百度竞价多少钱一个点击
目前所有的B/S系统应用可以分为:有状态(statefull)和无状态(stateless)两大类别。 有状态是指在整个系统的处理过程中要保留记住一些信息,而无状态则相反,每次request都是独立的连接,不需要在每个request之间共享数据等等。 对于这…...
![](https://img-blog.csdnimg.cn/20200818210206669.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpamlhbWluZ185OQ==,size_16,color_FFFFFF,t_70#pic_center)
wordpress文章添加/全球疫情最新数据消息
课程总结 第11次课作业: 使用“人工坐席接听数据“完成题目: 1、通过创建计算字段,创建“服务评价满意率”与“人工服务接听量”数据散点图,并将“服务评价满意率”小于95%的定义为不满意,高亮显示(提示&a…...
![](https://img-blog.csdnimg.cn/img_convert/898f4dc920e9e943eec59045cb218666.png)
做网站的功能是什么/哈尔滨优化网站公司
以前传统的营销方式是先宣传品牌,打造品牌的知名度,然后在宣传产品,推广产品,利用品牌的知名度和影响力吸引用户购买,这导致一些用心打磨产品的小品牌被埋没,即使产品再好,也无人问津。但随着互…...
![](/images/no-images.jpg)
怎么做网站旺铺装修/微博搜索引擎优化
一、WXML节点布局相交状态(通过微信的API实现懒加载) 节点布局相交状态 API 可用于监听两个或多个组件节点在布局位置上的相交状态。这一组API常常可以用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见。 节点布局相交状态 API中有一个 wx.createIntersectionO…...
![](https://img-blog.csdnimg.cn/52c2d61d61dc4baf86195f561bc958f4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP5qKn5pWy5Luj56CB,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
东莞汽车网站建设/百度小说排行榜总榜
说起性能测试工具,大家肯定想到的都是Jmeter,是的,由于其简单易用、功能强大,已经变成主流的压测工具之一。当需要实现一些高级功能的时候,可以使用Java语言对Jmeter进行扩展。 但是很多小伙伴只会Python,…...
网站首页导航栏怎么做/百度在线提问
苏生不惑第133 篇原创文章,将本公众号设为星标,第一时间看最新文章。今天就是 520 了,还没对象的朋友看看我之前的文章 听说 520 你还没对象,来这里看看关于b站之前已经写过了下列文章:那些我关注的 b 站 up 主bilibil…...