1、gitlab搭建与配置
点击查看代码- - 步骤1:安装依赖
- yum install curl policycoreutils policycoreutils-python openssh-server openssh-clients -y
- - 步骤2:安装gitllab
- wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.0.0-ce.0.el7.x86_64.rpm
- rpm -ivh gitlab-ce-11.0.0-ce.0.el7.x86_64.rpm
- - 步骤3:从老机器备份
- gitlab-rake gitlab:backup:create
- (备份完成后备份文件会出现在/var/opt/gitlab/backups/)
- - 步骤4:恢复到新机器(注意:gitlab版本要一致,否则无法恢复)
- 停止相关服务:
- gitlab-ctl stop unicorn
- gitlab-ctl stop sidekiq
- 恢复: gitlab-rake gitlab:backup:restore BACKUP=1537261122_2018_09_18_9.2.5
- 启动: gitlab-ctl start
复制代码 2、mysql搭建与配置
点击查看代码3、postgresql搭建与配置
点击查看代码- curl -O https://ftp.postgresql.org/pub/source/v13.2/postgresql-13.2.tar.gz
- tar zxvf postgresql-13.2.tar.gz
- ./configure --prefix=/usr/local/postgresql
- (如果提示readline找不到 yum install readline-devel)
- (如果提示zlib找不到 yum install zlib-devel)
- make && make install
- linux:
- useradd postgres
- chown -R postgres:postgres /usr/local/postgresql/
- su postgress
- vi ~/.bash_profile
- PGHOME=/usr/local/postgresql
- export PGHOME
- PGDATA=/usr/local/postgresql/data
- export PGDATA
- PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
- source ~/.bash_profile
- 数据库初始化:
- initdb
- 配置数据库服务器的host等信息:(在initdb后会创建一下文件夹:/usr/local/postgresql/data)
- vi pg_hba.conf
- host all all 0.0.0.0/0
- vi postgresql.conf
- listen_address = '*'
- 启动数据库服务器:
- pg_ctl start -l /usr/local/postgresql/log/pg_server.log
- 本地连接数据库:
- psql
- 设置密码:
- psql进入命令行
- \password
- 暂定:ciic
- 创建用户名密码:
- create user wikijs with password 'ciic';
- 创建数据库:
- create database wiki owner wikijs;
- 数据库权限赋值给某个人:
- grant all on database wiki to wikijs;
- 进入数据库命令行模式:
- psql
- 退出数据库命令行模式:
- \q
- 数据库基本操作:
- 创建 create database wiki owner wikijs;
- 切换到某个数据库:\c dbname;
- 查看 \l
- 修改
- 删除 drop database dbname
- 表的基本操作:
- 创建:CREATE TABLE DEPARTMENT(ID INT PRIMARY KEY NOT NULL,DEPT CHAR(50) NOT NULL);
- create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);
- 查看:\d ; \d table1;
- 重命名一个表: alter table [表名A] rename to [表名B];
- 删除一个表: drop table [表名];
- 表内操作:
- 在已有的表里添加字段: alter table [表名] add column [字段名] [类型];
- 删除表中的字段: alter table [表名] drop column [字段名];
- 重命名一个字段: alter table [表名] rename column [字段名A] to [字段名B];
- 给一个字段设置缺省值: alter table [表名] alter column [字段名] set default [新的默认值];
- 去除缺省值: alter table [表名] alter column [字段名] drop default;
- 在表中插入数据: insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
- 修改表中的某行某列的数据: update [表名] set [目标字段名]=[目标值] where [该行特征];
- 删除表中某行数据: delete from [表名] where [该行特征];
- delete from [表名];--删空整个表
- 数据库用户:
- 创建: create user ** with password '***';
- 授权:grant all on database wiki to wikijs;
- 删除:
- json存储与查询:
- create table if not exists teacher(info jsonb);
- insert into teacher values('{"id":1,"name":"zzl","age":24}');
- select info from teacher where info @> '{"id":1}'::jsonb;
- (查询符:)
- postgresql:
- # 创建新表
- CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
- # 插入数据
- INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
- # 选择记录
- SELECT * FROM user_tbl;
- # 更新数据
- UPDATE user_tbl set name = '李四' WHERE name = '张三';
- # 删除记录
- DELETE FROM user_tbl WHERE name = '李四' ;
- # 添加栏位
- ALTER TABLE user_tbl ADD email VARCHAR(40);
- # 更新结构
- ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
- # 更名栏位
- ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
- # 删除栏位
- ALTER TABLE user_tbl DROP COLUMN email;
- # 表格更名
- ALTER TABLE user_tbl RENAME TO backup_tbl;
- # 删除表格
- DROP TABLE IF EXISTS backup_tbl;
复制代码 4、php搭建与配置
点击查看代码- php安装:
- yum install epel-release yum-utils -y
- yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- yum-config-manager --enable remi-php74
- yum update php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql -y
- php -v
- php卸载:
- rpm -e --nodeps rpm -qa | grep php
- 安装php-xml扩展:
- yum --enablerepo=remi-php74 install php-xml
- yum --enablerepo=remi-php74 install php-mbstring
复制代码 5、docker搭建与配置
点击查看代码- docker 开启2375端口,提供外部访问docker
- Posted on 2020-01-02 16:56 panchanggui 阅读(1261) 评论(0) 编辑 收藏
-
- 一、编辑docker文件:/usr/lib/systemd/system/docker.service
- 命令:vim /usr/lib/systemd/system/docker.service
- 修改ExecStart行,增加内容 -H tcp://0.0.0.0:2375 ,修改后如下:
- ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
-
- 二、重新加载docker配置
- systemctl daemon-reload // 1,加载docker守护线程
- systemctl restart docker // 2,重启docker
- 三、docker
- docker ps -a 查看所有的容器状态
- docker start/stop/restart 容器名称/容器id
- docker exec -it mysql bash //进入mysql这个容器的bash
- 查看某容器在主机上的存储地址:
- 步骤1:通过docker inspect 容器名称/容器id
- docker inspect mysql | grep UpperDir
- 步骤2:进入UpperDir对应的目录中 操作容器
复制代码 6、防火墙开关
点击查看代码- centos7 防火墙关闭
- systemctl status firewalld //查看状态
- systemctl stop firewalld //停止
- systemctl disable firewalld //禁用
复制代码 7、根目录结构介绍
点击查看代码- bin :存放普通用户可执行的指令,即使在单用户模式下也能够执行处理
- boot :开机引导目录,包括Linux内核文件与开机所需要的文件
- dev :设备目录,所有的硬件设备及周边均放置在这个设备目录中
- etc:各种配置文件目录,大部分配置属性均存放在这里
- home:这里主要存放你的个人数据,具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。
- lib:开机时常用的动态链接库,bin及sbin指令也会调用对应的lib库
- lib64:开机时常用的动态链接库64位,bin及sbin指令也会调用对应的lib库
- lost+found:是一个特殊目录,用途是用来存放文件系统错误导致文件丢失后找回数据的;如果你不小心删除了lost+found目录,不用使用mkdir命令创建lost+found目录,应该使用 mklost+found命令创建lost+found目录。
- media:可移除设备挂载目录,类似软盘 U盘 光盘等临时挂放目录
- mnt:用户临时挂载其他的文件系统,额外的设备可挂载在这里,相对临时而言
- opt:第三方软件安装目录,现在习惯性的放置在/usr/local中
- proc:虚拟文件系统,通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系 统不重启,还是有很大几率能将数据找回来
- root:系统管理员主目录,除root之外,其他用户均放置在/home目录下
- run:系统运行是所需文件,以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
- sbin:只有root才能运行的管理指令,跟bin类似,但只属于root管理员
- srv:服务启动后需要访问的数据目录,
- sys:跟proc一样虚拟文件系统,记录核心系统硬件信息
- tmp:存放临时文件目录,所有用户对该目录均可读写
- usr:应用程序放置目录,
- var :存放系统执行过程经常改变的文件,
- vmlinuz : 是可引导的,压缩的linux内核,“vm”代表的“virtual memory”,一般是一个软连接.
- 还有一个重要的目录就是:/var/log/目录,主要存放的是系统日志文件:
- /var/log/message :系统启动后的信息和错误日志,是Linux中最常用的日志之一
- /var/log/secure :与安全相关的日志信息
- /var/log/maillog :与邮件相关的日志信息
- /var/log/cron :与定时任务相关的日志信息
- /var/log/spooler :与UUCP和news设备相关的日志信息
- /var/log/boot.log :守护进程启动和停止相关的日志消息
- 其他目录的用途后面会持续更新
复制代码 8、后台任务处理
点击查看代码- jobs 查看再后台运行的命令
- fg %jobnumber 将选中的命令调出
- ctrl+z 放在后台 并处于暂停状态
- bg 将后台暂停的命令 变成后台继续执行
- nohup 程序后台执行 并且关闭当前终端也执行 其他终端通过jobs无法查看后台运行的程序
复制代码 9、磁盘分析
点击查看代码- 二、通过终端命令查看U盘目录。
- 1、查看所有磁盘信息,即可以查看到我们的u盘的状态 (主要看分区还有文件系统)输入指令 sudo fdisk -l
- 2、挂载U盘
- 假如我们的优盘是fat32格式的
- 输入指令:mount -t vfat /dev/sdb1 /media
- 如果是NTFS格式的话
- 输入指令:mount -t nfs /dev/sdb1 /media
- 这样就把u盘挂载到media目录了(注意/dev/sdb1 是指u盘的分区 ,你的可能不同)
- 最后我们只要使用命令:cd /media 再 ls 就ok 了
- (注意以上操作需要root权限)
- 3、卸载u盘
- 只需要执行:sudo umount /media/
- 磁盘分析神器:
- wget http://dev.yorhel.nl/download/ncdu-1.11.tar.gz
- tar -zxf ncdu-1.11.tar.gz
- yum install glibc
- yum install ncurses ncurses-devel
- ./configure && make && make install
- ncdu -x -q
复制代码 10、虚拟ip
点击查看代码- Linux建立虚拟ip的方法
- 1、虚拟ip的介绍
- 虚拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口。
- 上边是百度的定义。
- 就是一块网卡上边有两个ip,然后无论到哪个ip的流量都会经过物理网卡。
-
- 2、虚拟ip的作用
- 大部分虚拟ip基本上都用于高可用的架构上边。主机启用虚拟ip,所有访问的请求都会到主机。当主机宕机的时候,高可用软件会将主机的虚拟ip down掉,然后在备机上启用虚拟ip。这样就完成了主备切换。从而保证业务的可用性。
-
- 3、linux中创建虚拟ip的方法
- 在linux中创建虚拟ip有两种方法,分别是:别名IP和辅助IP。
- (1)别名ip
- 别名ip是通过ifconfig命令去创建和操作的虚拟ip。
- <1>创建虚拟ip
- 使用ifconfig命令查看
-
- 使用命令创建
- ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 up
-
- 上边可以看到生成了eth0:1然后ip是192.168.8.5的虚拟网卡。
- <2>删除别名ip
- ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 down
- 很简单只要将后边的up改为down就可以了。
-
- <3>开机生成虚拟ip
- 想要开机就有虚拟ip,可以在网卡的配置目录中去建立一个新的网卡的配置文件
- centos和红帽都是在这个目录下/etc/sysconfig/network-scripts
- cp ifcfg-eth0 ifcfg-eth0:1
- 然后更改其中的ip即可,重启网卡就行。
- (2)辅助ip
- 辅助ip是由linux的ip命令去创建和操作的。
- <1>创建辅助ip
- ip addr add 192.168.8.5/24 dev eth0
- <2>查看辅助ip
- 使用命令ip a就可以查看,但是不能使用ifconfig –a去查看。
-
- <3>删除辅助ip
- ip addr del 192.168.8.5/24 dev eth0
- 也很简单,将add改为del即可。
- <4>永久生效
- 这种方式创建的虚拟ip,可以将生成虚拟ip的命令写到/etc/rc.local中去。
- 开机即可自动加载。在配置redis-sentinel的时候可能会使用到
复制代码 11、查找find和grep
点击查看代码- find / -type f -name 'vars.example' 查找名字为vars.example的文件
- find / -type f -size +100M 查找大于100M的文件
- find 文件目录 -type f |xargs grep "查询内容"; 查找包含指定内容的文件
- du -h --max-depth=1 / | grep '[0-9]G\>' 查找1g以上的文件
- grep 查找的内容 文件路径
- grep movie demo.txt
- grep that ~/*.txt
- 选项
- --color=auto 将颜色高亮显示
- 给 grep 指令起一个别名 vi ~/.bashrc
- 添加一行 alias grep='grep --color=auto'
- 让配置文件立即生效 source ~/.bashrc
- -c 得到内容的个数
- -i 不区分大小写的查找
- -n 显示在文档中的行号
- -r 递归查找,但是不能限制后缀,只能遍历所有
- grep -r that ~/*
- -l 只显示文件名,不显示内容
- grep -l 你好 ~/test/*.txt
- 正则表达式进行查找(少用)
- \w(数字字母下划线)
- \W(除了上面)
- \d(数字)
- \D(非数字)
- .(除了换行符)
- *(任意多个)
- +(至少1个)
- ?(0个或者1个)
- te-st@163.com abc_def@qq.com lala@sina.cn benben@meme.net
- grep -E .*? demo.txt
- -E 使用正则表达式来进行匹配
-
-
- find 可以找到你想要的文件
- 格式: find [目录] [选项] [选项值]
- 目录:去哪找,可以不写,默认代表当前目录
- 选项:怎么找
- >> -name 按照名字找
- 可以使用通配符
- -size 按照大小找
- 单位为 kmg 10k(等于10k) +10k(大于10k) -10k(小于10k)
- -user 按照用户名
- -group 按照组名
- -maxdepth -mindepth 限制查找的目录层级,默认递归查找所有
- -ctime 按照创建时间查找
- 单位是天
- 选项值:找什么
- find / -name demo.txt
- find / -name \*.txt
- find / -size +10k
- find / -user demo.txt
- find / -group demo.txt
- find / -mindepth 4 -name \*.txt
- find / -mindepth 3 -maxdepth 5 -name \*.txt
复制代码 12、开机启动与systemctl\service\chckconfig 关系与区别
点击查看代码- 添加开机启动:
- 1、创建一个带有可执行权限的脚本 比如/root/1.sh
- 2、给/etc/rc.d/rc.local添加执行权限
- 3、修改/etc/rc.d/rc.local,尾部追加 /root/1.sh
- 这样开机的话 就会启动/root/1.sh
- systemctl\service\chckconfig 关系与区别
- Systemctl和service、chkconfig命令的关系
- systemctl命令:是一个systemd工具,主要负责控制systemd系统和服务管理器。
- service命令:可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
- chkconfig命令:是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。
- systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
- systemctl是RHEL 7 的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。
- 所以systemctl命令是service命令和chkconfig命令的集合和代替。
- 一、service命令
- service命令其实是去/etc/init.d目录下,去执行相关程序
- # service命令启动redis脚本
- service redis start
- # 直接启动redis脚本
- /etc/init.d/redis start
- # 开机自启动
- update-rc.d redis defaults
- 其中脚本需要我们自己编写
- 二、systemctl命令
- systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
- systemd对应的进程管理命令是systemctl
- 1)systemctl命令兼容了service
- 即systemctl也会去/etc/init.d目录下,查看,执行相关程序
- 2) 使用
- systemctl redis start
- systemctl redis stop
- # 开机自启动
- systemctl enable redis
- systemctl 管理服务的启动、重启、停止、重载、查看状态等常用命令区分
- System V init 命令(RHEL 6) systemctl 命令(RHEL 7) 作用
- service foo start systemctl start foo.service 启动服务
- service foo restart systemctl restart foo.service 重启服务
- service foo stop systemctl stop foo.service 停止服务
- service foo reload systemctl reload foo.service 重新加载配置文件(不终止服务)
- service foo status systemctl status foo.service 查看服务状态
- 将命令添加为service并设置开机启动:
- vi /etc/systemd/system/redis.service
- [Unit]
- Description=redis-server
- After=network.target
- [Service]
- Type=forking
- ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
- PrivateTmp=true
- [Install]
- WantedBy=multi-user.target
- systemctl daemon-reload
- systemctl start redis.service
- systemctl enable redis.service
- 服务操作命令
- systemctl start redis.service #启动redis服务
- systemctl stop redis.service #停止redis服务
- systemctl restart redis.service #重新启动服务
- systemctl status redis.service #查看服务当前状态
- systemctl enable redis.service #设置开机自启动
- systemctl disable redis.service #停止开机自启动
复制代码 13、网络定位和追踪
点击查看代码- 1. traceroute的作用
- 通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。
- 当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走
- 的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。
- linux系统中,我们称之为traceroute。
- traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。
- 一条路径上的每个设备traceroute要测3次。
- 输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
- 2. traceroute的执行
- 大多数情况下,我们会在linux主机系统下,直接执行命令行:traceroute hostname
- -d 使用Socket层级的排错功能。
- -f 设置第一个检测数据包的存活数值TTL的大小。
- -F 设置勿离断位。
- -g 设置来源路由网关,最多可设置8个。
- -i 使用指定的网络界面送出数据包。
- -I 使用ICMP回应取代UDP资料信息。
- -m 设置检测数据包的最大存活数值TTL的大小。
- -n 直接使用IP地址而非主机名称。
- -p 设置UDP传输协议的通信端口。
- -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
- -s 设置本地主机送出数据包的IP地址。
- -t 设置检测数据包的TOS数值。
- -v 详细显示指令的执行过程。
- -w 设置等待远端主机回报的时间。
- -x 开启或关闭数据包的正确性检验。
复制代码 14、内网免密登录
点击查看代码- 免密登录:
- 步骤1:主机生成公共签名文件
- 默认存在这个目录:(/root/.ssh/id_rsa)
- ssh-keygen -t rsa
- 步骤2:将公共签名文件发给从机某个目录,比如root目录下
- scp /root/.ssh/id_rsa.pub root@101.200.122.999:/root/id_rsa.pub
- 步骤3:从机处理下签名文件
- 追加到信任主机列表:cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
- 修改权限:chmod 600 /root/.ssh/authorized_keys
- 步骤4:验证
- ssh root@101.200.122.999
- 如果不需要密码可以登录就是成功的
复制代码 15、定时任务
点击查看代码- # Example of job definition:
- # .---------------- minute (0 - 59)
- # | .------------- hour (0 - 23)
- # | | .---------- day of month (1 - 31)
- # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
- # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
- # | | | | |
- # * * * * * user-name command to be executed
- 前四行是用来配置crond任务运行的环境变量
- 第一行SHELL变量指定了系统要使用哪个shell,这里是bash
- 第二行PATH变量指定了系统执行命令的路径
- 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户
- 如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
- 第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。
- 星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
- 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
- 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
- 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。
- 设置定时任务:
- ①创建定时脚本
- vi /home/wwwroot/public/timertask.sh
-
- /usr/bin/php /homw/wwwroot/public/code/getNewsToDatabase.php
- ②指定定时任务
- crontab -e // 进入到编辑用户的定时任务界面
- */2 * * * * /bin/sh /homw/wwwroot/public/timertash.sh
- ③查看当前用户的定时任务
- crontab -l
- ④查看定时任务执行的日志信息
- cat /var/log/cron
- 0 */1 * * * /usr/sbin/ntpdate asia.pool.ntp.org 每隔1小时执行
- * */1 * * * /usr/sbin/ntpdate asia.pool.ntp.org 每1分钟执行
- 0 0 * * * /usr/bin/python3 /root/web_spider/news/configs/every_day_NumerId.py 每天0时0分执行
复制代码 16、nginx安装与配置
点击查看代码17、渗透工具常见问题修复
点击查看代码- 如果你打算从事网络安全行业,Nessus 是必须要掌握的基础工具之一。建议先从免费的 Nessus Essentials 入手,练习如何进行登录扫描和分析漏洞报告。
- 一、数据存储服务仅限机房内网访问
- es的问题 设置为仅限机房内访问
- iptables -I INPUT -p tcp --dport 9200 -j DROP
- iptables -I INPUT -p tcp --dport 9200 -s 129.17.5.0/24 -j ACCEPT
- 二、 HTTP TRACE / TRACK Methods Allowed
- httpd的trace问题:
- vi /usr/local/apache/conf/httpd.conf
- 在尾部追加:TraceEnable off
- 重启httpd服务即可
- 三、TLS Version 1.0 Protocol Detection
- 原始配置
- #ssl_protocols TLSv1 TLSv1.1 TLSv1.2 ;
- # 修复配置
- ssl_protocols TLSv1.2 TLSv1.3;
- 四、SSL Medium Strength Cipher Suites Supported (SWEET32)
- 在nginx.conf中修改ssl的算法:
- ssl_ciphers HIGH:!aNULL:!MD5:!DES:!3DES;
-
- 五、HTTP TRACE / TRACK Methods Allowed
- 所有server的location中加入限制:仅允许get、post请求
- server {
- listen 80;
- server_name paytest.tsino.org.cn;
- rewrite ^(.*)$ https://$host$1 permanent;
- location / {
- limit_except GET POST {
- deny all;
- }
- }
- 五、tls版本查询:
- yum install -y nmap
- nmap --script ssl-enum-ciphers -p 443 124.17.5.5
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |