最新Linux运维工程师面试题全面汇总(2024)_linux运维面试



**7.nginx日志访问量前十的ip怎么统计?**



awk ‘{array[$1]++}END{for (ip in array)print ip,array[ip]}’ access.log |sort -k2 -rn|head



**8.如何删除/var/log/下.log结尾的30天前的日志?**



find /var/log/ -type f -name .*.log -mtime 30|xargs rm -f



**9.ansible有哪些模块?功能是什么?**




| 模块 | 功能 |
| --- | --- |
| copy | 拷贝文件到被控端 |
| cron | 定时任务 |
| fetch | 拷贝被控端文件到本地 |
| file | 文件模块 |
| group | 用户组模块 |
| user | 用户模块 |
| hostname | 主机名模块 |
| script | 脚本模块 |
| service | 服务启动模块 |
| command | 远程执行命令模块 |
| shell | 远程执行命令模块,command高级用法 |
| yum | 安装包组模块 |
| setup | 查看主机系统信息 |



**10.nginx为什么比apache快?**


* nginx采用epoll模型
* apache采用select模型



**11. 四层负载和七层负载区别是什么?**


* 四层基于IP+端口进行转发
* 七层就是基于URL等应用层信息的负载均衡



**12. lvs有哪些工作模式?哪个性能高?**


* dr:直接路由模式,请求由 LVS 接受,由真实提供服务的服务器直接返回给用户,返回的时候不经过 LVS。(**性能最高**)
* tun:隧道模式,客户端将访问vip报文发送给LVS服务器。LVS服务器将请求报文重新封装,发送给后端真实服务器。后端真实服务器将请求报文解封,在确认自身有vip之后进行请求处理。后端真实服务器在处理完数据请求后,直接响应客户端。
* nat:网络报的进出都要经过 LVS 的处理。LVS 需要作为 RS 的网关。当包到达 LVS 时,LVS 做目标地址转换(DNAT),将目标 IP 改为 RS 的 IP。RS 接收到包以后,仿佛是客户端直接发给它的一样。RS 处理完,返回响应时,源 IP 是 RS IP,目标 IP 是客户端的 IP。这时 RS 的包通过网关(LVS)中转,LVS 会做源地址转换(SNAT),将包的源地址改为 VIP,这样,这个包对客户端看起来就仿佛是 LVS 直接返回给它的。客户端无法感知到后端 RS 的存在。
* fullnat模式:fullnat模式和nat模式相似,但是与nat不同的是nat模式只做了两次地址转换,fullnat模式却做了四次。



**13. tomcat各个目录含义,如何修改端口,如何修改内存数?**


* bin 存放tomcat命令
* conf 存放tomcat配置文件
* lib 存放tomcat运行需要加载的jar包
* log 存在Tomcat运行产生的日志
* temp 运行过程中产生的临时文件
* webapps 站点目录
* work 存放tomcat运行时的编译后的文件
* conf/server.xml 修改端口号
* bin/catalina.sh 修改jvm内存



**14. nginx反向代理时,如何使后端获取真正的访问来源ip?**



在location配置段添加以下内容:

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;



**15. nginx负载均衡算法有哪些?**


* rr 轮训
* weight 加权轮训
* ip\_hash 静态调度算法
* fair 动态调度算法
* url\_hash url哈希
* leat\_conn 最小连接数



**16. 如何进行压力测试?**


例如:模拟10个用户,对百度首页发起总共100次请求。



测试命令:

ab -n 100 -c 10 https://www.baidu.com/index.htm


**17. curl命令如何发送https请求?如何查看response头信息?如何发送get和post表单信息?**


* 发送https请求:



curl --tlsv1 ‘https://www.bitstamp.net/api/v2/transactions/btcusd/’


* response头信息 :curl -I
* get:curl 请求地址?key1=value1&key2=value2&key3=value3
* post:curl -d “key1=value1&key2=value2&key3=value3”



### **二、mysql**


#### **1. 索引的为什么使查询加快?有啥缺点?**


默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度  
 缺点:


* 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
* 索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间,如果需要建立聚簇索引,那么需要占用的空间会更大
* 以表中的数据进行增、删、改的时候,索引也要动态的维护,这就降低了整数的维护速度


#### **2. sql语句左外连接 右外连接 内连接 全连接区别**



![](https://img-blog.csdnimg.cn/img_convert/1dae9d86113d4ca7deea362b015a8828.webp?x-oss-process=image/format,png)


### **3. mysql数据备份方式,如何恢复?你们的备份策略是什么?**


* 物理完全备份



备份所有数据库文件:/var/lib/mysql/*
备份所有binlog文件: /var/lib/mysql/mysql-bin.*
备份选项文件: /etc/my.cnf


* mysqldump逻辑备份



mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db


* 物理备份恢复



#先把原来的数据目录改名
mv /var/lib/mysql /var/lib/mysql.old
cp -a /backups/mysql /var/lib


* 逻辑备份数据恢复



mysql > use db_name
mysql > source /backup/mysqldump/db_name.db


### **4. 如何配置数据库主从同步,实际工作中是否遇到数据不一致问题?如何解决?**


为每个服务器配置唯一值的server-id


* 主库



开启binlog日志
创建主从复制用户
查看master的状态


* 从库



change master to设置主库信息
start slave开始复制



### **5. mysql约束有哪些?**


* 非空约束
* 唯一约束
* 主键约束
* 外键约束


### **6. 二进制日志(binlog)用途?**


BINLOG记录数据库的变更过程。例如创建数据库、建表、修改表等DDL操作、以及数据表的相关DML操作,这些操作会导致数据库产生变化,开启binlog以后导致数据库产生变化的操作会按照时间顺序以“事件”的形式记录到binlog二进制文件中。


### **7. mysql数据引擎有哪些?**


* 常用的 myisam、innodb
* 区别:


(1)InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了;  
 (2)MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用;  
 (3)InnoDB 支持外键,MyISAM 不支持;  
 (4)MyISAM 是默认引擎,InnoDB 需要指定;  
 (5)InnoDB 不支持 FULLTEXT 类型的索引;  
 (6)InnoDB 中不保存表的行数,如 select count(*) from table 时,InnoDB;需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count()*语句包含 where 条件时 MyISAM 也需要扫描整个表;  
 (7)对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM表中可以和其他字段一起建立联合索引;  
 (8)清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表;  
 (9)InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like ‘%lee%’



### **8. 如何查询mysql数据库存放路径?**


* myisam



.frm文件:保护表的定义
.myd:保存表的数据
.myi:表的索引文件


### **9. mysql数据库文件后缀名有哪些?用途什么?**


* myisam



.frm文件:保护表的定义
.myd:保存表的数据
.myi:表的索引文件


* innodb



.frm:保存表的定义
.ibd:表空间


### **10. 如何修改数据库用户的密码?**


* mysql8之前



set password for 用户名@localhost = password(‘新密码’);
mysqladmin -u用户名 -p旧密码 password 新密码
update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;


* mysql8之后



mysql8初始对密码要求高,简单的字符串不让改。先改成:MyNewPass@123;

alter user ‘root’@‘localhost’ identified by ‘MyNewPass@123’;

降低密码难度

set global validate_password.policy=0;
set global validate_password.length=4;

修改成简易密码

alter user ‘root’@'localhost’IDENTIFIED BY ‘1111’;



### **11. 如何修改用户权限?如何查看?**


* 授权:



grant all on . to user@‘%’ identified by ‘passwd’


* 查看权限



show grants for user@‘%’;



### **三、nosql**


### **1. redis数据持久化有哪些方式?**


* rdb
* aof


### **2. redis集群方案有哪些?**


* 官方cluster方案
* twemproxy代理方案
* 哨兵模式
* codis  
 客户端分片


### **3. redis如何进行数据备份与恢复?**


* 备份



redis 127.0.0.1:6379> SAVE
创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。


* 还原



只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可
redis 127.0.0.1:6379> CONFIG GET dir


### **4. MongoDB如何进行数据备份?**



mongoexport / mongoimport
mongodump / mongorestore


### **5. kafka为何比redis rabbitmq快?**



> 
> [RabbitMQ,ZeroMQ,Kafka 是一个层级的东西吗?相互之间有哪些优缺点? - 知乎]( )
> 



### **四、docker**


#### **1. dockerfile有哪些关键字?用途是什么?**



![](https://img-blog.csdnimg.cn/img_convert/8ea90c676e8c6b9ae56439155d32260d.webp?x-oss-process=image/format,png)


####  2.**如何减小dockerfile生成镜像体积?**


* 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择debian:wheezy或debian:jessie镜像,仅有不足百兆大小;
* 清理编译生成文件、安装包的缓存等临时文件;
* 安装各个软件时候要指定准确的版本号,并避免引入不需要的依赖;
* 从安全角度考虑,应用要尽量使用系统的库和依赖;
* 如果安装应用时候需要配置一些特殊的环境变量,在安装后要还原不需要保持的变量值;


#### **3. dockerfile中CMD与ENTRYPOINT区别是什么?**


* CMD 和 ENTRYPOINT 指令都是用来指定容器启动时运行的命令。
* 指定 ENTRYPOINT 指令为 exec 模式时,CMD指定的参数会作为参数添加到 ENTRYPOINT 指定命令的参数列表中。


#### **4. dockerfile中COPY和ADD区别是什么?**


* COPY指令和ADD指令都可以将主机上的资源复制或加入到容器镜像中
* 区别是ADD可以从 远程URL中的资源不会被解压缩。
* 如果是本地的压缩包ADD进去会被解压缩


#### **5. docker的cs架构组件有哪些?**



![](https://img-blog.csdnimg.cn/img_convert/9ace1e329b57f9b29e23614886ddb813.webp?x-oss-process=image/format,png)



#### **6. docker网络类型有哪些?**


* host模式
* container模式
* none模式
* bridge模式



#### **7. 如何配置docker远程访问?**


* vim /lib/systemd/system/docker.service
* 在ExecStart=后添加配置,注意,需要先空格后,再输入 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock



#### **8. docker核心namespace CGroups 联合文件系统功能是什么?**


* namespace:资源隔离
* cgroup:资源控制
* 联合文件系统:支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下


#### **9. 命令相关:导入导出镜像,进入容器,设置重启容器策略,查看镜像环境变量,查看容器占用资源**


* 导入镜像 docker load -i xx.tar
* 导出镜像docker save -o xx.tar image\_name
* 进入容器docker exec -it 容器命令 /bin/bash
* 设置容器重启策略启动时 --restart选项
* 查看容器环境变量 docker exec {containerID} env
* 查看容器资源占用docker stats test2


#### **10. 构建镜像有哪些方式?**


* dockerfile
* 容器提交为镜像


#### **11. docker和vmware虚拟化区别?**



![](https://img-blog.csdnimg.cn/img_convert/2453fde9af52f136d6dcaabc56dc7bfb.webp?x-oss-process=image/format,png)




![](https://img-blog.csdnimg.cn/img_convert/0203e687fb11b07e0fa3545303739c9b.webp?x-oss-process=image/format,png)


### **五、kubernetes**


#### **1. k8s的集群组件有哪些?功能是什么?**



![](https://img-blog.csdnimg.cn/img_convert/1d323f8592c8499df5758c12e98c3e10.png)


#### **2. kubectl命令相关:如何修改副本数,如何滚动更新和回滚,如何查看pod的详细信息,如何进入pod交互?**


* 修改副本数



kubectl scale deployment redis --replicas=3


* 活动更新



kubectl set image deployments myapp-deploy myapp=myapp:v2


* 回滚



kubectl rollout undo deployments myapp-deploy


* 查看pod详细信息



kubectl describe pods/


* 进入pod交互



kubectl exec -it -c bash



#### **3. etcd数据如何备份?**


* etcdctl --endpoints=“[https://192.168.32.129:2379]( ),[https://192.168.32.130:2379]( ),192.168.32.128:2379” --cacert=/etc/kubernetes/cert/ca.pem --key=/etc/etcd/cert/etcd-key.pem --cert=/etc/etcd/cert/etcd.pem snapshot save snashot1.db
* Snapshot saved at snashot1.db



#### **4. k8s控制器有哪些?**


* 副本集(ReplicaSet)
* 部署(Deployment)
* 状态集(StatefulSet)
* Daemon集(DaemonSet)
* 一次任务(Job)
* 计划任务(CronJob)
* 有状态集(StatefulSet)



#### **5. 哪些是集群级别的资源?**


* Namespace
* Node
* Role
* ClusterRole
* RoleBinding
* ClusterRoleBinding


#### **6. pod状态有哪些?**


* Pending 等待中
* Running 运行中
* Succeeded 正常终止
* Failed 异常停止
* Unkonwn 未知状态


#### **7. pod创建过程是什么?**



![](https://img-blog.csdnimg.cn/img_convert/8b248fb3c5be73c8765185f63fa3137d.webp?x-oss-process=image/format,png)


#### **8. pod重启策略有哪些?**


Pod的重启策略有3种,默认值为Always。


* Always :容器失效时,kubelet 自动重启该容器;
* OnFailure :容器终止运行且退出码不为0时重启;
* Never :不论状态为何, kubelet 都不重启该容器


#### **9. 资源探针有哪些?**


* ExecAction:在容器中执行一个命令,并根据其返回的状态码进行诊断的操作称为Exec探测,状态码为0表示成功,否则即为不健康状态。
* TCPSocketAction:通过与容器的某TCP端口尝试建立连接进行诊断,端口能够成功打开即为正常,否则为不健康状态。
* HTTPGetAction:通过向容器IP地址的某指定端口的指定path发起HTTP GET请求进行诊断,响应码为2xx或3xx时即为成功,否则为失败


#### **10. requests和limits用途是什么?**


* “requests”属性定义其请求的确保可用值,即容器运行可能用不到这些额度的资源,但用到时必须要确保有如此多的资源可用
* ”limits”属性则用于限制资源可用的最大值,即硬限制


#### **11. kubeconfig文件包含什么内容,用途是什么?**


包含集群参数(CA证书、API Server地址),客户端参数(上面生成的证书和私钥),集群context 信息(集群名称、用户名)。


#### **12. RBAC中role和clusterrole区别,rolebinding和 clusterrolebinding区别?**


* Role 可以定义在一个 namespace 中,如果想要跨 namespace则可以创建ClusterRole,ClusterRole 具有与 Role相同的权限角色控制能力,不同的是 ClusterRole 是集群级别的
* RoleBinding 适用于某个命名空间内授权,而 ClusterRoleBinding 适用于集群范围内的授权


#### **13. ipvs为啥比iptables效率高?**


IPVS模式与iptables同样基于Netfilter,但是ipvs采用的hash表,iptables采用一条条的规则列表。iptables又是为了防火墙设计的,集群数量越多iptables规则就越多,而iptables规则是从上到下匹配,所以效率就越是低下。因此当service数量达到一定规模时,hash查表的速度优势就会显现出来,从而提高service的服务性能


#### **14. sc pv pvc用途,容器挂载存储整个流程是什么?**


* PVC:Pod 想要使用的持久化存储的属性,比如存储的大小、读写权限等。
* PV :具体的 Volume 的属性,比如 Volume 的类型、挂载目录、远程存储服务器地址等。
* StorageClass:充当 PV 的模板。并且,只有同属于一个 StorageClass 的 PV 和 PVC,才可以绑定在一起。当然,StorageClass 的另一个重要作用,是指定 PV 的 Provisioner(存储插件)。这时候,如果你的存储插件支持 Dynamic Provisioning 的话,Kubernetes 就可以自动为你创建 PV 了。



![](https://img-blog.csdnimg.cn/img_convert/0147f9db81dd5f6b81638ff45d349c28.png)



#### **15. nginx ingress的原理本质是什么?**


* ngress controller通过和kubernetes api交互,动态的去感知集群中ingress规则变化,
* 然后读取它,按照自定义的规则,规则就是写明了哪个域名对应哪个service,生成一段nginx配置,
* 再写到nginx-ingress-controller的pod里,这个Ingress  
 controller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中,
* 然后reload一下使配置生效。以此达到域名分配置和动态更新的问题。


#### **16. 描述不同node上的Pod之间的通信流程**



![](https://img-blog.csdnimg.cn/img_convert/5ab4d5a08e6f7afaf4f73fc270be881b.png)


#### **17. k8s集群节点需要关机维护,需要怎么操作**


* 进行pod驱逐:kubelet drain <node\_name>
* 检查node上是否无pod运行,切被驱逐的pod已经在其他节点运行正常
* 关机维护
* 开机启动相关服务(注意启动顺序)
* 解除node节点不可调度:kubectl uncordon node
* 创建测试pod,并使用节点标签测试节点可以被正常调度


#### **18. canal和flannel区别**


* Flannel(简单、使用居多):基于Vxlan技术(叠加网络+二层隧道),不支持网络策略
* Calico(较复杂,使用率少于Flannel):也可以支持隧道网络,但是是三层隧道(IPIP),支持网络策略
* Calico项目既能够独立地为Kubernetes集群提供网络解决方案和网络策略,也能与flannel结合在一起,由flannel提供网络解决方案,而Calico此时仅用于提供网络策略。


### **六、prometheus**


#### **1. prometheus对比zabbix有哪些优势?**



> 
> [https://blog.csdn.net/wangyiyungw/article/details/85774969]( )\*\* 
> 


#### **2. prometheus组件有哪些,功能是什么?**



![](https://img-blog.csdnimg.cn/img_convert/a9ca0a935ce374dc7af83196e4a5f246.png)


#### **3. 指标类型有哪些?**


* Counter(计数器)
* Guage(仪表盘)
* Histogram(直方图)
* Summary(摘要)



#### **4. 在应对上千节点监控时,如何保障性能**


* 降低采集频率
* 缩小历史数据保存天数,
* 使用集群联邦和远程存储



#### **5. 简述从添加节点监控到grafana成图的整个流程**


* 被监控节点安装exporter
* prometheus服务端添加监控项
* 查看prometheus web界面——status——targets
* grafana创建图表



#### **6. 在工作中用到了哪些exporter**


* node-exporter监控linux主机
* cAdvisor监控容器
* MySQLD Exporter监控mysql
* Blackbox Exporter网络探测
* Pushgateway采集自定义指标监控
* process exporter进程监控


### **七、ELK**


#### **1. Elasticsearch的数据如何备份与恢复?**



> 
> [https://www.cnblogs.com/tcy1/p/13492361.html]( )
>   
> 
> [https://blog.csdn.net/moxiaomomo/article/details/78401400?locationNum=8&fps=1]( )
> 


#### **2. 你们项目中使用的logstash过滤器插件是什么?实现哪些功能?**


* date 日期解析
* grok 正则匹配解析
* overwrite 写某个字段
* dissect 分隔符解析
* mutate 对字段做处理
* json 解析
* geoip 地理位置解析
* ruby 修改logstash event


#### **3. 是否用到了filebeat的内置module?用了哪些?**



![](https://img-blog.csdnimg.cn/img_convert/f04f0a2390d94af5207bb15b93456047.png)


#### **4. elasticsearch分片副本是什么?你们配置的参数是多少?**



> 
> [https://juejin.cn/post/6844903862088777736]( )
> 


### **八、运维开发**


**1. 备份系统中所有容器镜像**



#备份镜像列表


#### **2. 编写脚本,定时备份某个库,然后压缩,发送异机**


* 公共部分定义函数,如获取时间戳,配置报警接口
* 多使用if判断是否存在异常并处理,如数据库大,检测任务是否完成。检测生成文件大小是否是空文件


#### **3. 批量获取所有主机的系统信息**


* 使用python的paramiko库,ssh登陆主机执行查询操作
* 使用shell脚本批量ssh登陆主机并执行命令
* 使用ansible的setup模块获取主机信息
* prometheus的node\_exporter收集主机资源信息


#### **4. django的mtv模式流程**



![](https://img-blog.csdnimg.cn/img_convert/4f5e5e440bf36c39dd1bad945f05ce9e.png)


#### **5. python如何导出、导入环境依赖包**


* 导出环境
![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)



最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值