欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

centos7 与 centos6 区别 有大用

linux综合架构敲门砖

先给SentOS7安装自动补全的安装包。

1
yum install bash-completion -y

安装以后退出,重新登录安装包才会生效。

CentOS7版本与CentOS6有着些许的区别。

一、本地yum

1、CentOS6必须自己编译repo文件。
2、CentOS7的做法:
1.挂载光盘->设置->cdrom->iso->选择对应的镜像文件
2.在centos7系统进行挂载

1
[root@oldboyedu ~]# mount /dev/cdrom /mnt

3.查询yum-config-manager工具属于哪个软件包提供(查询方式是联网)

1
[root@oldboyedu ~]# yum provides yum-config-manager

4.安装对应的软件包

1
[root@oldboyedu ~]# yum install yum-utils -y

yum-utils 管理repository(包)及扩展包的工具 (主要是针对repository)
5.备份repo文件

1
2
[root@oldboyedu ~]# cd /etc/yum.repos.d/
[root@oldboyedu yum.repos.d]# gzip *

6.使用yum-config-manager命令创建一个本地仓库

1
[root@oldboyedu ~]# yum-config-manager --add-repo=file:///mnt

7.测试yum是否能正常使用

1
[root@oldboyedu ~]# yum install vim -y

修改主机名

CentOS6实现方式
1.临时修改主机名

1
2
[root@c6 ~]# hostname oldboy_temp
[root@c6 ~]# bash

2.永久修改主机名

1
2
3
4
[root@oldboy_temp ~]# sed -i '/^HOSTNAME=/c HOSTNAME=oldboyedu' /etc/sysconfig/network
[root@oldboy_temp ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oldboyedu

centos7实现方式

1.临时修改主机名

1
2
[root@oldboyedu ~]# hostname oldboy-c7
[root@oldboyedu ~]# bash

2.永久修改主机名

1
2
3
[root@oldboy-c7 ~]# hostnamectl set-hostname oldboyedu-cc7
[root@oldboy-c7 ~]# cat /etc/hostname
oldboyedu-cc7

时区修改

1.查看时区

1
[root@oldboy-c7 ~]# timedatectl list-timezones

2.修改时区

1
2
[root@oldboy-c7 ~]#timedatectl set-timezone "America/Punta_Arenas"
[root@oldboy-c7 ~]# timedatectl set-timezone "Asia/Shanghai"

系统文件目录结构

centos6	    cetos7    
bin     ->  usr/bin    
sbin    ->  usr/sbin    
lib	lib ->  usr/lib   

网络命名的规则

默认命名规则        eth0 eth1 eth2    
biosdevname         em1 em2 em3    
net.ifnames         ens33 ens34 ens35   

安装net-tools工具,可使用ifconfig命令

1
[root@oldboy-c7 ~]# yum install net-tools -y

启动级别

SysVinit	                    Systemd    
关闭系统	        0	        runlevel0.target,poweroff.target    
单用户模式	        1	        runlevel1.target,rescue.target    
多用户模式	        2	        runlevel2.target,multi-user.target    
多用户带网络模式	3	        runlevel3.target,multi-user.target    
多用户图形化模式	5	        runlevel5.target,graphical-user.target    
重启操作系统	    6	        runlevel6.target,reboot.target       

Centos6开机默认系统启动运行级别

1
vim /etc/inittab

Centos7开机默认系统启动目标target

multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
1.查看系统当前默认运行级别(目标)

1
2
[root@oldboy-c7 ~]# systemctl get-default
multi-user.target

2.修改系统启动默认级别(目标)

1
[root@oldboy-c7 ~]# systemctl set-default runlevel5.target

建议修改回去

1
[root@oldboy-c7 ~]# systemctl set-default multi-user.target

3.centos7关机指令
poweroff、shutdown -h now、init0 (不建议使用)
reboot

systemd服务管理

命令 选项(非必须) 执行命令 单元名称(非必须)    
systemctl [OPTIONS...]COMMAND[NAME...]    
操作	    Centos6	                        Centos7    
启动服务	/etc/init.d/crond start	        systemctl start     crond    
停止服务	/etc/init.d/crond stop	        systemctl stop      crond    
重启服务	/etc/init.d/crond restart	    systemctl restart   crond    
查看状态	/etc/init.d/crond status	    systemctl status    crond    
开机启动	chkconfig --level 35 crond on	systemctl enable    crond    
开机禁用	chkconfig crond off	            systemctl disable   crond    
禁止运行	                                systemctl umask     crond        

centos7上的service命令还是为了兼容centos6的习惯

1
2
[root@oldboyedu-cc7 ~]# service crond restart
Redirecting to /bin/systemctl restart crond.service

centos7启动与停止建议使用systemctl

1
[root@oldboyedu-cc7 ~]# systemctl restart crond

centos7查看所有的服务开机启动和开机不启动的单元

1
[root@oldboyedu-cc7 ~]# systemctl list-unit-files

centos7开机不自启

1
[root@oldboyedu-cc7 ~]# systemctl disable crond

centos7开机自启

1
[root@oldboyedu-cc7 ~]# systemctl enable crond

centos7检查是否开机自启

1
2
[root@oldboyedu-cc7 ~]# systemctl is-enabled crond
disabled

Centos7系统优化

1.调整yum源

1
2
3
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.清理缓存,并重新生成缓存文件

1
2
yum clean all
yum makecache

3.安装基础软件包

1
2
3
yum install net-tools vim tree htop iotop iftop \
iotop lrzsz sl wget unzip telnet nmap nc psmisc \
dos2unix bash-completion sysstat rsync nfs-utils -y

4.关闭防火墙

1
2
systemctl disable firewalld #临时关闭
systemctl stop firewalld #永久关闭

5.关闭selinux

1
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

6.优化ulimit

1
echo '* - nofile 65535' >> /etc/security/limits.conf

7.执行shutdown -h now 关闭Centos7系统
8.选中对应的虚拟机->快照->拍摄快照

重新配置网卡

1
[root@oldboy-50 ~]# nmcli connection add con-name eth1 ifname eth1 type ethernet ipv4.addresses 172.16.1.222/24 autoconnect yes ipv4.method manual

综合架构

1.什么是项目
类似于腾讯公司旗下的qq就是一个项目,微信也是一个项目,每个游戏都是一个项目
2.什么是架构
维护一个项目使用的一套服务器。挣钱
3.什么是集群
服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
4.什么是高可用->双击热备
备用服务器。主服务器出现故障时备用服务器忙上代替它的工作。

三星级酒店(初步了解架构结构)

顾客(满足一切需求)
保安 --> 验证身份
迎宾 --> 接待
服务员 --> 翻译顾客需求
吧台 --> 烟酒
备菜 --> 提前让厨师准备好菜
后厨 --> 厨师
仓库 --> 存放一些重要的东西

用户访问网站流程

1.用户通过浏览器输入oldboyedu.com->回车  
2.进行DNS解析->获取真实的公网IP地址  
3.用户通过tcp的三次握手发起连接->真实的公网IP  
4.连接会通过公网->路由器->交换机->抵达前端的防火墙  
5.防火墙根据自身访问规则,进行判定->如果恶意的连接则拒绝->如果是正常的连接则放行  
6.防火墙会将连接发送给负载均衡器->查看用户请求的内容->根据内容进行任务下发->下发给web服务器  
7.web服务接收请求后会根据请求进行判断  
    如果是请求图片或者附件->存储服务  
    如果请求的网站上的文章或者内容->缓存服务器->如果缓存服务器没有则->数据库  
    数据库查询完数据之后会返回数据给web服务器->同时也会返回一份给缓存服务器  
8.数据库返回内容->web服务器->负载均衡->用户  
五层架构模型-->  负载均衡   web服务   存储服务   缓存服务   数据库服务(通过tcp连接)  

管理人员维护流程

1.用户通过公网连接(隧道)VPN服务器,这样方便管理内部主机,并且可以实现批量管理主机,备份所有重要文件。  
2.用户可以通过公网连接监控服务器(也可以使用其他方式去实现)  
3.提交视频http://192.168.20.250 ->  提交的大小300M  ->  提交的格式1_姓名_内容.mp4  
4.检查->组长->(声音->思路->流畅度)--> ocam录制工具    
克隆  
1.连接克隆(需要依赖于母体)  
2.完整克隆(完完全全的复制一份,占用磁盘空间)  

克隆后的机器需要做如下操作

    1. 修改主机名

      1
      hostnamectl set-hostname backup<em id="__mceDel"> </em>
    2. 修改IP地址

      1
      sed -i 's#222#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]

      3.重启服务器

      1
      2
      nmcli connection reload #重新加载配置
      nmcli connection down eth1 && nmcli connection up eth1 && nmcli connection down eth0 && nmcli connection up eth0 #重启两块网卡

      4.创建xshell标签->测试连接服务器是否成功
      5.基于已克隆好的机器快照


来自 http://www.cnblogs.com/jason-ma/p/9588584.html


CentOS7与CentOS6区别

本人之前使用的Linux是虚拟机上的CentOS6.X作为服务器环境,后来要发布线上项目,就购买了云服务器,阿里服务器的云翼计划学生购买只有CentOS7.3可以选择,抱着趁此机会学习CentOS新版本的更多特性的心态,毅然选择了购买使用,果然不出所料呀,踩了不少雷,当然也就学习了更多新知识,下面就分析一下CentOS7.X与CentOS6.X的区别以及注意点,希望可以帮助到小伙伴,大神可以略过,请轻虐。

CentOS7与CentOS6的区别图


命令centos6centos7

备注

ifconfig有 yum install -y net-tools
rouet有 yum install -y net-tools
ntpd服务和ntpdate命令有 yum install ntp ntpdate
cat /etc/issue有版本号无信息,只能查看cat /etc/redhat-release 
setup 
能更改网络配置

setup去除了防火墙和网路配置 通过安装  

yum install NetworkManager-tui -y

nmtui 命令取代了 setup中的网络配置


时区和时间设置/etc/sysconfig/clock等文件

timedatectl set-timezone Asia/Shanghai

timedatectl status


语言等设置locale -a
localectl status


服务管理

chkconfig 

/etc/init.d/服务

systemctl



python2.6

2.7


kernel2.63.10
网卡eth0成为了可预见性的命名规则

文件系统
ext4xfs
dig nslookup命令


yum install bind-utils -y


主机名
cat /etc/sysconfig/networkcat /etc/hostname
服务的管理和控制
sysvinit

system

systemctl是最主要的工具。它融合

service 和chkconfig的功能于一体。


防火墙
iptables被firewalld取代
启动级别

/etc/inittab

不在使用了
开机执行文件/etc/rc.local 可放置开机要执行的脚本文件

默认这个文件没有执行权限 x


官方推荐不使用这个文件(自己写服务),但是你可以加+x继续使用。


内核参数配置文件
/etc/sysctl.conf

/usr/lib/sysctl.d/00-system.conf

/etc/sysctl.d/<name>.conf 


init关机重启命令
init 0 关机init 0 关机没变化
切换等级
切回单用户模式 init 0

init 0

systemctl emergency

systemctl isolate runlevel1.target 

注意哦 这个别尝试哦,单用户模式只能用终端连接哦,不能使用ssh的哦

RHEL7/CENTOS7新特性:
1、身份管理
kerberos的跨平台信任机制:kerberos将完全兼容微软活动目录,实现完全使用活动目录进行认证。
REALMD:该功能简化了RHEL 加入微软活动目录的配置,支持自动发现域信息。
RHEL 7增加了两个关键性的新特征改善了RHEL对AD的处理方式。现在,RHEL7和AD之间建立了跨域信任(Cross-realm trusts),因此AD用户可以在Linux端无需登录就能访问资源。RHEL 7增加的另外一个AD相关的功能是realmd,实现自动化查询与添加AD(或其他红帽认证服务)DNS信息。

2、性能管理
性能辅助工具:RHEL7 提供了一个新的框架和一个新的通用图形界面来提供性能辅助管理。可以收集、分析系统瓶颈。
调优和调优配置:RHEL7 提供了动态调优方案,来解决系统性能瓶颈问题。系统管理员也可以手动修改系统预置的方案来达到调优的效果

3、虚拟化
增强RHEL7虚拟机:完全兼容vmwarevshpere架构,RHEL7 自带 open vmtool 、3D图形驱动和OpenGLX11 的支持。使得RHEL7 部署在vmware平台更加方便。RHEL 7 同时支持vmware esxi 之间快速通信。
虚拟I/O:为每台虚拟机提供了调用底层PCI 设备的接口,实现内核级别的隔离。提高了机器的安全性和兼容性
虚拟机USB3.0接口支持
QCOW2格式文件型快照支持
嵌套虚拟化支持,可以在KVM中安装配置OpenStack
加强了对VMWARE的技术支持,自带open-vm-tools替换vm-tools
支持最热的技术Docker
Docker是基于目前流行的应用虚拟化技术。应用被打包在Docker中,与系统和其他应用完全隔离,因此可以在系统之间迁移并正常运行。

4、文件系统
RHEL7 选择XFS作为其默认的文件系统,。
RHEL7.0在安装的时候就默认使用了XFS,并不是说原有的EXT文件系统不再使用,RHEL7仍然是支持ext4的.而是面对未来爆炸式增长的数据量,ext文件系统已经显得原来越力不从心。XFS文件系统完全为大数据而生,单个文件系统最大可以支持到8EB大小,单个文件的大小最大可达到16T,并且提供了丰富的日志系统,是应对大数据存储的强大的文件系统。
XFS是扩展性高、高性能的文件系统。也是rhel7/centos7的默认文件系统。
可通过工具xfsdump和xfsrestore来备份和恢复xfs文件系统,

5、网络管理
新增网络管理接口NMCLI

6、服务管理
使用systemctl 调用服务脚本
RHEL7中使用systemd取代了原有的sysV,由systemd来管理系统中的服务。Systemd定义了与原来sysV 的init进程完全不同的方式对服务和系统进程进行管理。使得系统中的服务可以自动解决服务之间的依赖关系,并且可以支持服务的并行启动!也就是说,RHEL7.0比原有的sysV操作系统启动速度更快,更稳定,同时也可以完美的支持Docker!systemctl的各种用法,可以参考https://linux.cn/article-5926-1.html

7、RHEL7桌面
使用最新的Gnome 3为默认桌面环境,使用最新的KDE 4.10为备选桌面环境。

8.CentOS 7使用firewalld动态管理系统防火墙,支持network/firewall分段(zones)管理信任级别,支持界面(firewall-config命令)管理规则。默认情况下iptables是不安装的,如果习惯使用iptables可以将firewalld关掉换成iptables。安装iptable服务的具体步骤在本人的上篇博文当中有提及,有需要的小伙伴可以去参考.

来自  https://blog.csdn.net/xu_melon/article/details/79043898


centos7与centos6区别

CentOS 7 vs CentOS 6的不同
   (1)桌面系统
[CentOS6] GNOME 2.x
[CentOS7] GNOME 3.x(GNOME Shell)

(2)文件系统
[CentOS6] ext4
[CentOS7] xfs

(3)内核版本
[CentOS6] 2.6.x-x
[CentOS7] 3.10.x-x

(4)启动加载器
[CentOS6] GRUB Legacy (+efibootmgr)
[CentOS7] GRUB2

(5)防火墙
[CentOS6] iptables
[CentOS7] firewalld

(6)默认数据库
[CentOS6] MySQL
[CentOS7] MariaDB

(7)文件结构
[CentOS6] /bin, /sbin, /lib, and /lib64在/下
[CentOS7] /bin, /sbin, /lib, and /lib64移到/usr下

(8)主机名
[CentOS6] /etc/sysconfig/network
[CentOS7] /etc/hostname

(9)时间同步
[CentOS6]
$ ntp
$ ntpq -p

[CentOS7]
$ chrony
$ chronyc sources

(10)修改时间
[CentOS6]
$ vim /etc/sysconfig/clock
   ZONE="Asia/Tokyo"
   UTC=fales
$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

[CentOS7]
$ timedatectl set-timezone Asia/Tokyo
$ timedatectl status

(11)修改地区
[CentOS6]
$ vim /etc/sysconfig/i18n
   LANG="ja_JP.utf8"
$ /etc/sysconfig/i18n
$ locale

[CentOS7]
$ localectl set-locale.utf8
$ localectl status

(12)服务相关

1)启动停止
[CentOS6]
$ service service_name start
$ service service_name stop
$ service sshd restart/status/reload

[CentOS7]
$ systemctl start service_name
$ systemctl stop service_name
$ systemctl restart/status/reload sshd

自启动
[CentOS6]
$ chkconfig service_name on/off

[CentOS7]
$ systemctl enable service_name
$ systemctl disable service_name

服务一览
[CentOS6]
$ chkconfig --list

[CentOS7]
$ systemctl list-unit-files
$ systemctl --type service

强制停止
[CentOS6]
$ kill -9 <PID>

[CentOS7]
$ systemctl kill --signal=9 sshd

(13)网络

1)网络信息
[CentOS6]
$ netstat
$ netstat -I
$ netstat -n

[CentOS7]
$ ip n
$ ip -s l
$ ss

2)IP地址MAC地址
[CentOS6]
$ ifconfig -a

[CentOS7]
$ ip address show

3)路由
[CentOS6]
$ route -n
$ route -A inet6 -n

[CentOS7]
$ ip route show
$ ip -6 route show

(14)重启关闭

1)关闭
[CentOS6]
$ shutdown -h now 

[CentOS7]
$ poweroff
$ systemctl poweroff

2)重启
[CentOS6]
$ reboot
$ shutdown -r now

[CentOS7]
$ reboot
$ systemctl reboot

3)单用户模式
[CentOS6]
$ init S

[CentOS7]
$ systemctl rescue

4)启动模式
[CentOS6]
[GUICUI]
$ vim /etc/inittab
  id:3:initdefault:
[CUIGUI]
$ startx

[CentOS7]
[GUICUI]
$ systemctl isolate multi-user.target
[CUIGUI]
$systemctl isolate graphical.target
默认
$ systemctl set-default graphical.target
$ systemctl set-default multi-user.target
当前
$ systemctl get-default


来自  https://www.cnblogs.com/bethal/p/5945026.html

CentOS之7与6的区别

标签: linux

笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流


前言

centos7与6之间最大的差别就是初始化技术的不同,7采用的初始化技术是Systemd,并行的运行方式,除了这一点之外,服务启动、开机启动文件、网络命令方面等等,都说6有所不同。让我们先来了解一下系统初始化技术的演变过程。

1.系统初始化技术

  • Sysvinit技术

  • Upstart技术

  • Systemd技术

    Sysvinit技术

    特点:

    1.系统第1个进程为init;
    2.init进程是所有进程的父进程,不可kill;
    3.大多数Linux发行版的init系统是和SystemV相兼容的,被称为sysvinti
    4.代表系统:CentOS5 CentOS6

    优点:

    sysvinit运行非常良好,概念简单清晰。它主要依赖于shell脚本。

    缺点:

    1.按照一定顺序执行——>启动太慢。
    2.很容易hang住,fstab与nfs挂载问题

Upstart技术

CentOS6采用了upstart技术代替sysVinit进行引导,Upstart对rc.sysinit脚本做了大量的优化,缩短了系统初始化的启动时间。但是CentOS6为了简便管理员的操作,upstart的很多特性并没有凸显或直接不支持。

代表系统:CentOS6, Ubuntu14, 从CentOS7, Ubuntu15开始使用systemd

Systemd技术

新系统都会采用的技术(RedHat7,CentOS7,Ubuntu15等);
设计目标是克服sysvinit固有的缺点,提高系统的启动速度;
和Sysvinit兼容,降低迁移成本;
最主要优点:并行启动
Pid为1的进程

2.在yum源上的优化

在centos6的时候,默认是从官方源下载rpm包的,由于是国外的yum源很慢不能用,CentOS7在这里做了优化,当我们使用yum安装软件的时候,默认不会再从官方下载,而是自动寻找离自己地理位置最近的yum源开始下载。

3.命令

如果在安装系统的时候选择minimal,会比之前6的时候以更小的包来安装,比如:vim、ifconfig、route、setup、netstat等等很多命令都没有了。。在安装系统后可加入以下软件包:

yum install lrzsz tree net-tools nmap vim bash-completion lsof dos2unix nc telnet ntp wget rng-tools psmisc screen -y

#lrzsz 支持windowns平台的上传下载linux。在windowns远程连接工具上可以使用。
# net-tools CentOS 7.2.11 默认没有ifconfig命令。net-tools提供一些网络命令。
# bash-completion 自动命令补全的工具。
# rng-tools   生成随机数嫡池的一个工具,有了这个工具tomcat 启动会变得非常快。
# psmisc 这个包含有killall命令。
# screen 可以新建一个窗口,把任务放在后台运行。

4.字符集修改

 /etc/locale.conf  #字符集配置文件
localectl set-locale.UTF-8  # 命令行一步到位
 [root@CentOS7 ~]# localectl set-locale.UTF-8
[root@CentOS7 ~]# localectl status
   System Locale:.UTF-8
       VC Keymap: us
      X11 Layout: us

5.开机启动管理

/etc/rc.local  # 这个文件还是存在,不过如果我们还想继续使用这种方式需要给它加执行权限chmod +x /etc/rc.d/rc.local
# system一统天下 snapshot(支持快照)
systemctl status cron.service #查看定时任务状态
systemctl stop cron.service   #关闭定时任务
systemctl status cron.service  #查看操作情况
systemctl  list-unit-files|grep enable  #查看当前正在运行的服务
systemctl   disable postfix.service #关闭邮件服务
systemctl  list-unit-files|grep postfix #查看邮件服务是否开启
systemctl stop firewalld.service #关闭防火墙
systemctl  is-enable #开启的服务 
systemctl  disable   #关闭的服务
通过/etc/rc.d/rc.local/开机自启动
centos7中/etc/rc.d/rc.local需要执行如下命令赋予可执行权限
chmod +x /etc/rc.d/rc.local

6.运行级别runlevel

/etc/inittab 是无效的 system target 替代
##永久生效下次登录生效
systemctl get-default graphical.target 切换到5
systemctl get-default multi-user.target 切换到3
##临时生效的话 
init3
##只有五种运行级别
[root@centos7 ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Apr 20 22:31 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Apr 20 22:31 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Apr 20 22:31 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 20 22:31 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 20 22:31 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Apr 20 22:31 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Apr 20 22:31 /usr/lib/systemd/system/runlevel6.target -> reboot.target

7.配置yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo



#官方epel源
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

8.网卡名称

关于网卡名称修改为eth0问题可参考:http://www.cnblogs.com/Csir/p/6739567.html

来自   https://www.cnblogs.com/Csir/p/6746667.html





https://blog.csdn.net/xu_melon/article/details/79043898


https://www.cnblogs.com/bethal/p/5945026.html


普通分类: