linux服务器系统管理exam过程记录

linux服务器系统管理exam过程记录

server 16.04 安装

在虚拟机环境下安装一台部署一台 Ubuntu Server 16.04 的服务器: ubuntu server 16.04下载

双网卡配置(host-only, NAT)

题目要求

服务器的网络环境要求:服务器具备两块网卡;一块通过 HOST-ONLY 方式链接(允许主机能 ping 通服务器,并且设置该 IP 地址为 192.168.56.101);一块通过 NAT 方式连接(IP 地址由 VirtualBox 自动分配。保证服务器能链接外网,通过 apt-get 方式安装各类软件)。

操作过程记录

1. 查看网卡ens33:新建服务器时,选择的是NAT方式进行网络连接。使用ifconfig/ip addr查看目前网络地址和对应网卡(ens33)信息,ping www.baidu.com保证NAT方式连接的网卡可以访问外网。
NAT网卡ens33
2. 新建网卡ens37:新建仅主机模式对应的VMnetX(自己选择啦,我选的是VMnet1)。VMWare中左上角workstation-编辑-虚拟网络编辑器-更改设置(因为没有管理员权限所以界面呈灰色,不能添加网络,点击更改设置即可)-添加网络(随便点一个),如下图。
点击更改设置就可以添加网络了
3. 新建虚拟网络:添加网络后如下图,可以看到子网地址为192.168.27.0。考试要求的是192.168.56.101,说明网段需要进行更改为192.168.56.0,同时需要注意界面中“将主机虚拟适配器连接到此网络”一定要进行勾选否则会出现网卡失效的情况,如果一直勾选不成功,可能是电脑注册表损坏的原因,最后点击确定就好。
新建仅主机网络VMnet0
想要查看自己是否配置成功,打开主机的“网络和internet”-“更改适配器选项“界面,如下图,可以看到VMnet0在界面上IP地址为92.168.56.1,可以在这里将IP地址设置为.2 网关设置为.1 。
VMnet0主机界面
4.新建网络适配器2(仅主机网卡):VMWare中左上角workstation-虚拟机-设置-添加-网络适配器。添加过后可以看到网络适配器2这个选项,选择自定义(我自己的虚拟机需要重新配置一个VMnet不可以直接点击仅主机模式)中对应仅主机模式的VMnet1,如下图,点击确定等待虚拟机配置即可。
网络适配器2的配置
5. host-only网卡ens37配置:上述配置完成后,使用ip addr可以看到第二张网卡,状态DOWN说明还未启用,需要对其进行配置。
ens37为第二张网卡6. 16.04操作过程
安装vim

sudo apt install vim #nano也可以,但习惯vim了

修改interfaces文件内容

sudo cp /etc/network/interfaces /etc/network/interfaces.old #备份
sudo vim /etc/network/interfaces

添加内容

auto ens37
iface ens37 inet static
address 192.168.56.101 #IP地址
netmask 255.255.255.0 #子网掩码
gateway 192.168.56.2 #网关是主机上的网络适配器的IP地址

如下图所示:
/etc/network/interfaces
然后重启sudo reboot,再使用ip addr就可以看到配置的IP地址了,如下图。
ens37网卡开启
然后在主机上ping 192.168.56.2(网络适配器IP地址),ping 192.168.56.101(虚拟机)都成功,当关闭虚拟机后,无法ping通192.168.56.101,说明配置成功,如下图。
主机连接测试

注意:配置完host-only网卡之后,可能会导致默认路由改变,从而无法连接外网,可以先尝试一下ping www.baidu.com,如果无法ping通,需要对路由进行配置。

sudo ip route

查看路由表信息,有两种情况:
(1)第一条default是ens37网卡的网关,还有第二条default是ens33网卡的网关,但是路由开销大,从而优先ens37网卡。(20.04配置时候需要的问题)

sudo ip route del default via 192.168.56.2 dev ens37 #删除第一条默认路由即可,反正后面主要是连外网

(2)只有一条默认路由是ens37网卡网关,这个是配置16.04时候出现的问题。

sudo vim /etc/network/interfaces.d/ens33
#输入
up route add default gw 192.168.126.2
down route del default
#重启
sudo reboot

或者直接设置新的默认路由:

sudo ip route del default via 192.168.56.1 dev ens37
sudo ip route add default via 192.168.126.2 dev ens33

可以看到下方内容,这样就可以连外网,进行接下来的配置了。
配置成功以后

SSH远程登录

题目要求

默认安装部署 SSH 服务;提供一个名为 neo 登录用户,登录密码是 matrix;添加该账户用户到 sudoer,具有管理员权限。后续的操作都使用 neo 的用户身份登录后进行。

操作过程记录

  1. 添加neo用户,并赋予管理员权限
sudo useradd neo
sudo passwd neo #然后输入密码即可
sudo usermod -aG sudo neo
  1. 查看自己的ssh服务是否开启
sudo apt install ssh #安装ssh服务
sudo systemctl status ssh
sudo systemctl stop ufw #关闭防火墙

ssh服务正常

  1. 后续操作图省事,我都是在git bash上登录的,一般来说putty,xshell都可以,记得关闭ufw防火墙。(还有matrix这个密码输入好不顺手啊,123456不香吗)
ssh neo@192.168.126.XXX

git bash界面ssh远程登录

DNS服务器配置

题目要求

安装部署一个 Bind9 的 DNS 服务器,实现对域 oasis.com 内的各类主机的域名
解析。实现对 mail.oasis.com,web.oasis.com,ns.oasis.com,race.oasis.com,
shining.oasis.com,game.oasis.com 等域名的正向解析(所有域名对应的 IP 地址都
指向 192.168.56.101)。同时提供对上述域名的反向域名解析功能。

操作过程记录

sudo apt update
sudo apt install bind9
#打开Bind9主配置文件 /etc/bind/named.conf.local 
sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.local.bak
sudo vim /etc/bind/named.conf.local
#添加内容,配置DNS服务器的时候,文件里的一个标点符号都不要错啊,不然都不成功
#这些配置指定了我们将要使用的两个区域:oasis.com和反向区域 192.168.56.in-addr.arpa
zone "oasis.com" {
   type master;
   file "/etc/bind/db.oasis.com";
};

zone "56.168.192.in-addr.arpa" {
   type master;
   file "/etc/bind/db.192.168.56";
};

#创建正向区域文件,在 /etc/bind/ 目录下创建一个名为 db.oasis.com 的文件
#这个文件指定了oasis.com区域的各种主机名和它们的IP地址
sudo vim /etc/bind/db.oasis.com
#添加以下内容:
;
; BIND data file for oasis.com
;
$TTL 604800
@       IN      SOA     ns.oasis.com. admin.oasis.com. (
                             2         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.oasis.com.
@       IN      A       192.168.56.101
mail    IN      A       192.168.56.101
web     IN      A       192.168.56.101
ns      IN      A       192.168.56.101
race    IN      A       192.168.56.101
shining IN      A       192.168.56.101
game    IN      A       192.168.56.101

#创建反向区域文件,在 /etc/bind/ 目录下创建一个名为 db.192.168.56 的文件
#这个文件指定了反向区域的各种IP地址和它们对应的主机名
sudo vim /etc/bind/db.192.168.56
#添加以下内容:
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@       IN      SOA     ns.oasis.com. admin.oasis.com. (
                             1         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.oasis.com.
101     IN      PTR     oasis.com.

#重启bind9服务
sudo systemctl restart bind9
#查看域名解析结果
nslookup race.oasis.com
#结果为52.128.23.153
sudo vim /etc/resolv.conf
#第一行添加ens33网卡的IP地址,谁在前谁优先级高
nameserver 192.168.126.XXX
#保存退出
nslookup race.oasis.com
#结果为192.168.56.101 DNS域名正向解析配置成功
nslookup 192.168.56.101
#结果为oasis.com. DNS域名逆向解析配置成功

正向解析,逆向解析结果

Nginx服务器配置

题目要求

安装部署一个 Nginx Web 服务器;要求 Nginx 可以通过域名构建虚拟主机的方
式同时对外提供 http://race.oasis.com, http://shining.oasis.com,
http://game.oasis.com 三个网站的访问。其中访问 http://race.oasis.com 网站返回
的 HTML 代码内容是 “ <h1> race.oasis.com </h1> ” (后面两个网站的内容在其
后的题目中指定);【其实只用单独配置race.oasis.com这个文件,其余两个使用hosts解析域名到192.168.56.101即可,在default配置就好】

操作过程记录

#安装nginx服务器
sudo apt update
sudo apt install nginx

这个时候访问http://192.168.126.XXX应该是默认网页界面
nginx配置成功
由于三个域名解析IP地址都是192.168.56.101,所以nginx服务器监听的应该是192.168.56.101:80。

sudo vim /etc/nginx/sites-available/default
#修改  listen 80 default_server;
#     listen [::]:80 default_server;
listen 192.168.56.101:80 default_server;
listen [::]192.168.56.101:80 default_server;
#重启nginx服务
sudo systemctl restart nginx

访问http://192.168.56.101创建etc/nginx/sites-availabl:e下创建race.oasis.com,shining.oasis.com,game.oasis.com三个文件分别配置三个网站。

sudo vim /etc/nginx/sites-available/race.oasis.com
#写入内容:
server {
				listen 192.168.56.101:80;
        server_name race.oasis.com;
        
        root /var/www/race.oasis.com/html;
        
        location / {

                index index.html; #默认首页
        }
}
sudo ln /etc/nginx/sites-available/race.oasis.com /etc/nginx/sites-enabled/
#然后进入/var/www/race.oasis.com/html下配置index.html文件输入如下内容
<html>
        <head>
                <title>Welcome to race.oasis.com!</title>
        </head>
        <body>
                <h1> race.oasis.com </h1>
        </body>
</html>
#重启nginx服务
sudo systemctl restart nginx

记得去配主机的DNS服务器,地址为192.168.126.XXX,保证nslookup race.oasis.com解析地址为192.168.56.101。
还可以在/windows/system32/drivers/etc/hosts文件中增添一条 IP 域名即可:192.168.56.101 race.oasis.com。记得重启,他才有效。不配置行不行,我不确定,没试过。(有兴趣的话可以自己试一下)
然后出现了这个问题。
报错突然发现和之前配置的hosts文件冲突了,现在删除重新试一遍。
网页部署成功
其余两个想要这类静态网页同理,这里不做演示。

SSL安全认证

题目要求

配置 Nginx 服务器,使得网站支持 443 端口的 https 加密数据传输。并使得可以通过加密协议通道 https://race.oasis.com 来访问该网站。

操作过程记录

  1. 创建SSL证书, 使用OpenSSL创建自签名密钥和证书对
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
#输出Output,这里填写的内容就是最后证书上的信息
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:XXXXX
Locality Name (eg, city) []:XXXXX
Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXXXX
Organizational Unit Name (eg, section) []:Computer Science and Technology
Common Name (e.g. server FQDN or YOUR name) []:192.168.126.XXX
Email Address []:admin@your_domain.com#自己填可用邮箱即可
  1. 创建的密钥对被放入/etc/ssl下的相应子目录,同时创建Diffie-Hellman组(用于与客户协商完全前向保密),放入/etc/ssl/certs/dhparam.pem中,这一项时间会有点长。
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
  1. 将nginx配置为使用SSL, 创建指向SSL密钥和证书的配置片段/etc/nginx/snippets。
sudo vim /etc/nginx/snippets/self-signed.conf
#内容修改为如下内容,即将指令设置为我们的证书文件和关联的密钥
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
  1. 创建具有强加密设置的配置代码段,为Nginx设置一个强大的SSL密码套件,并启用一些有助于确保我们的服务器安全的高级功能。
sudo vim /etc/nginx/snippets/ssl-params.conf
##修改内容

# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

ssl_dhparam /etc/ssl/certs/dhparam.pem;
  1. 调整nginx配置以使用SSL
sudo cp /etc/nginx/sites-available/race.oasis.com /etc/nginx/sites-available/race.oasis.com.bak
sudo vim /etc/nginx/sites-available/race.oasis.com
##修改文件内容:
server {

    # SSL configuration

    listen 192.168.56.101:443 ssl# http2 default_server;
    #listen [::]192.168.56.101:443 ssl http2 default_server;
    
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;
    
    root /var/www/race.oasis.com/html;
    
    location /{
    	index index.html;
    }
}
server {
    listen 192.168.56.101:80 default_server;
    server_name race.oasis.com;
    return 302 https://$server_name$request_uri;
}
  1. 调整防火墙,也可以选择直接关闭,并重启nginx服务器。
#查看状态
sudo systemctl status ufw
#关闭防火墙
sudo systemctl stop ufw
#
sudo ufw app list
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
  1. 如果重启失败,使用sudo systemctl status nginx他会给你报错信息,跟着修改就可以了,或者使用nginx -t,一般都是文件内容的问题,只要内容正确,其他的报错可以先忽略,最后sudo systemctl restart nginx就好了。
    第一个页面8. 高级-继续访问,如下图,https:设置成功。
    设置成功

php文件解析

题目要求

在 Nginx 服务器中安装 PHP FastCGI Process Manager 软件,让服务器实现对
PHP 语言的解析。为 http://shining.oasis.com 网站编写一个 index.php 首页文件。
该文件内容为【这里我没有单独去配置shining.oasis.com文件,直接在default文件里进行修改】

<?php phpinfo(); ?>

操作过程记录

sudo apt update #要是更新不成功,直接去看路由表信息,大概率是默认路由又变了
sudo apt-get install php-fpm php-mysql
配置php
sudo vim /etc/php/7.0/fpm/php.ini
#修改内容
cgi.fix_pathinfo=0
#重启
sudo systemctl restart php7.0-fpm
在nginx上配置php解析。
sudo vim /etc/nginx/sites-available/default
#修改内容
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
server {
    listen 192.168.56.101:80 default_server;
    listen [::]192.168.56.101:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;#增加index.php

    server_name shining.oasis.com;#增加shining.oasis.com

    location / {
        try_files $uri $uri/ =404;
    }
    #增加如下内容
      location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
#重启nginx
sudo systemctl restart nginx

shinig.oasis.com

tomcat配置

题目要求

在服务器上安装部署 Java 开发环境;再部署一个 Tomcat 服务器,端口 8080,
支持 JSP 文件的解析(能打开缺省的 tomcat 首页);在 Nginx 服务器上添加一个对
http://game.oasis.com 的代理访问节点(不直接访问 tomcat 服务器, 而是通过
game.oasis.com 域名访问 Nginx 对外的 80 端口做代理访问内部 tomcat 的 8080 端
口)。

操作过程记录

sudo apt update
sudo apt install default-jdk
sudo apt install axel
##安装tomcat
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

sudo axel https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.89/bin/apache-tomcat-8.5.89.tar.gz
sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-8.5.89.tar.gz -C /opt/tomcat --strip-components=1

#更新权限
cd /opt/tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R g+r conf
sudo chmod g+x conf
sudo chown -R tomcat webapps/ work/ temp/ logs/

#创建systemd 服务文件
sudo update-java-alternatives -l
#output
#java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
sudo vim /etc/systemd/system/tomcat.service
#输入内容
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
#重新加载
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl status tomcat
#关闭防火墙,或者允许8080端口通过
sudo ufw allow 8080
#最后访问http://game.oasis.com:8080就好了

在这里插入图片描述

邮件服务器配置

题目要求

安装部署一个 Postfix 邮件服务器。支持通过 SMTP 协议进行电子邮件发送;通
过命令行邮件客户端工具 mail, 发送一封电子邮件电子邮件给 neo@oasis.com
用户(使用系统默认的邮件存储位置,不要修改。统一把邮件存放在/var/mail
目录下。发送命令为 echo ‘it is only a test’ | mail -s “test eamil” neo@oasis.com);

操作过程记录

sudo apt-get update
sudo apt install mailutils

之后会进入下面这个网页,回车。
在这里插入图片描述

然后另一个窗口输入的内容就是你发邮件@后面的后缀名,这里没有要求,自己设置吧。

sudo vim /etc/postfix/main.cf
#进入文件,重点将postfix配置为仅侦听环路接口,即下面这个内容
inet_interfaces = loopback-only
#然后就是指定通过邮件传递传输的与列表,这里没太搞明白,之后学习笔记的时候填坑吧
#增加,我是这么配置,应该没有问题
mydomain=oasis.com
mydestination = $myhostname, localhost.$mydomain, $mydomain, ubuntu, localhost.localdomain, , localhost
#退出
sudo systemctl restart postfix
echo 'it is only a test' | mail -s "test eamil" neo@oasis.com

没有报错后,进入/var/mail文件夹下会发现一个名为neo的文件,打开可以看到如下内容,发件人yiyi@ubuntu,如果在最开始安装那个页面输入oasis.com,操作用户是neo的话就是neo@oasis.com:

在这里插入图片描述

mysql安装

题目要求

安装部署一个 Mysql 数据库服务器;修改 root 用户的密码为 oracle;修改服
务器的端口号为 3366; 进入数据库后,创建一个名叫 zion 的数据库;可以使
用如下命令登录数据库;
mysql -u root -P 3366 -h localhost -D zion -poracle

操作过程记录

这里注意SQL语句别忘记最后的;就好。

sudo apt install mysql-server
#配置root用户密码,但他好像刚开始就可以自动设置,所以没有弹框的就用下面这个设置就好
mysql -u root
ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'oracle';
exit
#修改端口号为3366
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
#修改port = 3366

sudo service mysql restart
mysql -u root -P 3366 -h localhost -poracle
CREATE DATABASE zion;
exit

#之后就可以使用上述命令登录数据库了
mysql -u root -P 3366 -h localhost -D zion -poracle

防火墙通过端口设置

题目要求

启动 UFW 防火墙程序;配置防火墙访问规则,只允许 22, 25, 80, 443,
110, 143 端口对外可以访问。

操作过程记录

#查看防火墙状态,允许访问的端口
sudo ufw status
#关闭则打开
sudo ufw enable
#允许端口访问
sudo ufw allow 22
sudo ufw allow 25
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 110
sudo ufw allow 143
#再查看应该就有相应内容了

ufw允许端口访问

RAID1磁盘配置

题目要求

在虚拟机上添加两块 100M 的新磁盘,把两个新磁盘做成 RAID1,实现对
数据的冗余备份存储。RAID 磁盘被 mount 到 /mnt/md0 节点下。

操作过程记录

  1. 创建磁盘,关闭虚拟机-编辑虚拟机设置-添加-硬盘-一直下一步-最大磁盘大小0.09766GB
  2. 打开虚拟机,进行如下配置:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
#output
NAME    SIZE FSTYPE TYPE MOUNTPOINT
sda      20G        disk
├─sda1   16G ext4   part /
├─sda2    1K        part
└─sda5    4G swap   part [SWAP]
sdb     100M        disk
sdc     100M        disk
sr0    1024M        rom
#看到新建磁盘为sdb sdc,创建一个新的RAID设备并将两个新磁盘添加到RAID中。将命令中的设备名称替换为sdb sdc,这将创建一个名为 /dev/md0 的RAID设备,使用两个磁盘(/dev/sdb和/dev/sdc)并设置RAID级别为1。
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
#进度监视,当进度达到100%并且RAID设备处于活动状态时,表示RAID设备创建成功。
cat /proc/mdstat
#使用以下命令格式化RAID设备,这将使用ext4文件系统对RAID设备进行格式化。
sudo mkfs.ext4 /dev/md0
#创建一个目录用于挂载RAID设备:
sudo mkdir /mnt/md0
#将RAID设备挂载到/mnt/md0目录
sudo mount /dev/md0 /mnt/md0
#使RAID设备在系统启动时自动挂载,需要更新 /etc/fstab 文件
sudo vim /etc/fstab
#文件末尾添加
/dev/md0    /mnt/md0    ext4    defaults    0    0
#完成后,使用以下命令检查挂载状态,看到 /dev/md0 设备已挂载到 /mnt/md0 目录,配置成功。
df -h

结束语

肝了一天写完了,主要是学习笔记的坑还没填完,害怕考完试忘记了,就先写一个总的攻略,内容都是自己做过一遍的,如果报错常去看看/var目录下的各个log或者sudo systemctl status $service,里面一般都有比较详细的报错,上面这些内容让我比较迷惑的还是php那个,为什么单独配置shining.oasis.com这个文件他就不行,一到default里面就成功了,坑先放在这里,希望有人能在评论区里面填,阿里嘎都。
最后,内容且先这样,后面写学习笔记的时候再慢慢更新吧,排版很乱,凑活着看,引用也没有标的特别细致,主要是digitalocean 上的内容,里面一些术语可能不太准确,后面再修改,大家凑活看叭。好了,去写课设了,期末要人命啊!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值