FTP虚拟账号创建使用

1、环境规划


环境系统版本,以下内容简称主机为A机B机
A:CentOS 7.6 (172.20.10.4)
B:RedHat 8.2 (172.20.10.6)
A机建立上传测试文件 方便区分命名方式为‘系统简称+系统版本+虚拟账号简称’

[root@CentOS7-6 test]# ll
-rw-r--r-- 1 root root 1819 May 19 12:34 CT7-6-1
-rw-r--r-- 1 root root 1819 May 19 12:34 CT7-6-2


A机建立下载测试文件 方便区分命名方式为‘A机+虚拟账号简称’

[root@CentOS7-6 test]# ls /home/test/test1/
A1.txt
[root@CentOS7-6 test]# ls /home/test/test2/
A2.txt


B机建立上传测试文件 方便区分命名方式为‘系统简称+系统版本+虚拟账号简称’

[root@RedHat8-2 test]# ll
-rw-r--r-- 1 root root 2123 May 19 12:34 RH8-2-1
-rw-r--r-- 1 root root 2123 May 19 12:34 RH8-2-2


B机建立下载测试文件 方便区分命名方式为‘B机+虚拟账号简称’

[root@RedHat8-2 test]# ls /home/test/test1
B1.txt
[root@RedHat8-2 test]# ls /home/test/test2
B2.txt

2、测试内容结果简要描述


1)A机B机各创建宿主账号test shell为/sbin/nologin 家目录/home/test
2)各创建两个虚拟账号test1账号 家目录/home/test/test1、test2账号 家目录/home/test/test2
3)宿主账号禁止登录,虚拟账号登录锁定在自己的家目录
4)传输测试A机B机互为服务端客户端,对/test/下的文件进行上传测试,对服务端特定文件下载到客户端/test下
5)文件末尾描述vsftpd配置文件内容、以及黑白名单说明、虚拟用户独立权限文件内容说明

 

3、安装vsftp软件包,以及用于测试的ftp客户端

yum install -y vsftpd
yum install -y ftp


4、创建ftp宿主账号
我测试的是两个虚拟账号,虚拟账号限制在统一目录下单独的两个虚拟账号家目录中

useradd -s /sbin/nologin test
mkdir /home/test/test1
mkdir /home/test/test2
chown test. /home/test/ -R

5、创建ftp日志文件并更改权限

touch /var/log/vsftpd.log
chown test. /var/log/vsftpd.log

6、备份vsftpd配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

7、更改ftp配置文件

cat > /etc/vsftpd/vsftpd.conf << EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
guest_enable=YES
guest_username=test
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
vsftpd_log_file=/var/log/vsftpd.log
allow_writeable_chroot=YES
EOF

或者使用如下命令手动编辑添加
sed '/\#/d' /etc/vsftpd/vsftpd.conf
sed '/\#/d' /etc/vsftpd/vsftpd.conf -i
vi /etc/vsftpd/vsftpd.conf 

8、创建白名单文件并写入账号,本次测试实体账号为test,虚拟账号为test1、test2

cat >> /etc/vsftpd/vsftpd.chroot_list << EOF
test1
test2
EOF

9、ftp虚拟账号密码文件,(基数行为账号,偶数行为密码)

cat >> /etc/vsftpd/vsftpd_user << EOF
test1
1qaz2wsx
test2
p@ssw0rd
EOF

10、将账号密码文件生成库文件(为了安全考虑,自行备份账号密码文件,待生成库文件之后可将账号密码文件删除)

db_load -T -t hash -f /etc/vsftpd/vsftpd_user /etc/vsftpd/vsftpd_user.db
chmod 600 /etc/vsftpd/vsftpd_user.db

11、添加pam认证

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_bak
cat /etc/pam.d/vsftpd|grep -v '#'|awk '{print "#"$0 >> "/etc/pam.d/vsftpd"}'
cat /etc/pam.d/vsftpd|grep  '#'|awk '{print $0 > "/etc/pam.d/vsftpd"}'

cat >> /etc/pam.d/vsftpd << EOF
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_user
account required pam_userdb.so db=/etc/vsftpd/vsftpd_user
EOF

12、配置虚拟账号权限文件

mkdir /etc/vsftpd/vsftpd_user_conf

cat > /etc/vsftpd/vsftpd_user_conf/test1 << EOF
local_root=/home/test/test1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

cat > /etc/vsftpd/vsftpd_user_conf/test2 << EOF
local_root=/home/test/test2
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

13、重启vsftpd服务

systemctl start vsftpd
systemctl status vsftpd

14、登录测试以及传输测试
1)建立测试目录并增加上传下载传输测试文件

主机A:CentOS 7.6:
mkdir /test
cat /etc/profile >> /test/CT7-6-1
cat /etc/profile >> /test/CT7-6-2
cat /etc/profile >> /home/test/test1/A1.txt
cat /etc/profile >> /home/test/test2/A2.txt
chown test. /home/test/ -R
主机B:RedHat 8.2:
mkdir /test
cat /etc/profile >> /test/RH8-2-1
cat /etc/profile >> /test/RH8-2-2
cat /etc/profile >> /home/test/test1/B1.txt
cat /etc/profile >> /home/test/test2/B2.txt
chown test. /home/test/ -R

#两台主机均进入测试传输目录
cd /test

2)A机B机互为服务端以及客户端登录测试

##B为客户端 A为服务端 ftp账号-test1、test2:
[root@RedHat8-2 test]# ftp 172.20.10.4
Connected to 172.20.10.4 (172.20.10.4).
220 (vsFTPd 3.0.2)
Name (172.20.10.4:root): test1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.

[root@RedHat8-2 test]# ftp 172.20.10.4
Connected to 172.20.10.4 (172.20.10.4).
220 (vsFTPd 3.0.2)
Name (172.20.10.4:root): test2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.

##A为客户端 B为服务端 登录ftp账号-test1、test2:
[root@CentOS7-6 test]# ftp 172.20.10.6
Connected to 172.20.10.6 (172.20.10.6).
220 (vsFTPd 3.0.3)
Name (172.20.10.6:root): test1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.

[root@CentOS7-6 test]# ftp 172.20.10.6
Connected to 172.20.10.6 (172.20.10.6).
220 (vsFTPd 3.0.3)
Name (172.20.10.6:root): test2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.

3)传输测试-A为客户端登录B机ftp用户tets1,A机test1上传测试文件‘CT7-6-1’ 下载测试文件B1.txt

#####上传:
[root@CentOS7-6 test]# ls
CT7-6-1  CT7-6-2
[root@CentOS7-6 test]# ftp 172.20.10.6
Connected to 172.20.10.6 (172.20.10.6).
220 (vsFTPd 3.0.3)
Name (172.20.10.6:root): test1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,20,10,6,42,68).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         2123 May 19 04:34 B1.txt
226 Directory send OK.
ftp> put CT7-6-1 
local: CT7-6-1 remote: CT7-6-1
227 Entering Passive Mode (172,20,10,6,124,67).
150 Ok to send data.
226 Transfer complete.
1819 bytes sent in 6.3e-05 secs (28873.02 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (172,20,10,6,186,156).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         2123 May 19 04:34 B1.txt
-rw-r--r--    1 1000     1000         1819 May 19 06:02 CT7-6-1
226 Directory send OK.

#####下载:
ftp> ls
227 Entering Passive Mode (172,20,10,6,53,40).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         2123 May 19 04:34 B1.txt
-rw-r--r--    1 1000     1000         1819 May 19 06:02 CT7-6-1
226 Directory send OK.
ftp> get B1.txt
local: B1.txt remote: B1.txt
227 Entering Passive Mode (172,20,10,6,204,244).
150 Opening BINARY mode data connection for B1.txt (2123 bytes).
226 Transfer complete.
2123 bytes received in 2.8e-05 secs (75821.42 Kbytes/sec)
ftp> 221 Goodbye.
[root@CentOS7-6 test]# ls
B1.txt  CT7-6-1  CT7-6-2

4)传输测试-B为客户端登录A机ftp用户tets1,B机test1上传测试文件‘RH8-2-1’ 下载测试文件A1.txt

#####上传:
[root@RedHat8-2 test]# ls
RH8-2-1  RH8-2-2
[root@RedHat8-2 test]# ftp 172.20.10.4
Connected to 172.20.10.4 (172.20.10.4).
220 (vsFTPd 3.0.2)
Name (172.20.10.4:root): test1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,20,10,4,245,200).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt
226 Directory send OK.
ftp> put RH8-2-1
local: RH8-2-1 remote: RH8-2-1
227 Entering Passive Mode (172,20,10,4,45,38).
150 Ok to send data.
226 Transfer complete.
2123 bytes sent in 0.000107 secs (19841.12 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (172,20,10,4,60,224).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt
-rw-r--r--    1 1000     1000         2123 May 19 06:07 RH8-2-1
226 Directory send OK.

#####下载:
ftp> ls
227 Entering Passive Mode (172,20,10,4,60,224).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt
-rw-r--r--    1 1000     1000         2123 May 19 06:07 RH8-2-1
226 Directory send OK.
ftp> get A1.txt
local: A1.txt remote: A1.txt
227 Entering Passive Mode (172,20,10,4,120,123).
150 Opening BINARY mode data connection for A1.txt (1819 bytes).
226 Transfer complete.
1819 bytes received in 3.5e-05 secs (51971.43 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (172,20,10,4,221,74).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         1819 May 19 04:34 A1.txt
-rw-r--r--    1 1000     1000         2123 May 19 06:07 RH8-2-1
226 Directory send OK.
ftp> 221 Goodbye.
[root@RedHat8-2 test]# ls
A1.txt  RH8-2-1  RH8-2-2

15、vsftpd配置文件、黑白名单、虚拟用户权限文件内容说明

vsftpd配置文件:

anonymous_enable=NO         #关闭匿名用户
local_enable=YES            #开启本地用户
write_enable=YES            #开启读权限
anon_upload_enable=NO       #禁止匿名用户上传
anon_mkdir_write_enable=NO  #禁止匿名用户建立目录
anon_other_write_enable=NO  #禁止匿名用户删除
chroot_local_user=YES       #所有用户被锁定在自己的家目录(如关闭则chroot_list为黑名单)
chroot_list_enable=YES      #使用户不能离开主目录(需要建立用户白名单文件)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list       #用户白名单
guest_enable=YES            #开启虚拟用户的功能
guest_username=ftpuser1     #定义虚拟用户的宿主操作系统用户
pam_service_name=vsftpd     #pam设置
user_config_dir=/etc/vsftpd/vsftpd_user_conf  #指定虚拟用户权限配置文件,目录下每个虚拟账号一个同账号名的配置文件。
vsftpd_log_file=/var/log/vsftpd.log           #vsftpd的服务日志保存路径,默认不存在
allow_writeable_chroot=YES                    #若可以查看文件但无法上传下载,可尝试添加该选项

黑白名单:

黑白名单文件可自行定义存放位置,注意区别
#用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list  #chroot_list相当于白名单

#用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list  #chroot_list相当于黑名单

虚拟用户权限文件内容:

参考如下内容进行适当修改:
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO 时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全中文的FTP服务器 - 全中文的用户界面,帮助文档和服务器响应。 多个虚拟服务器 - 服务器能够同时在一台机器上的多个端口同时运行多个虚拟服务器。 系统服务 - 服务器能够作为Windows系统服务运行,开机后自动运行FTP服务器。 内置的用户虚拟目录隔离 - 每个用户有独立的虚拟目录,用户看不到其他用户的虚拟目录。不再象传统FTP服务器,为了防止用户看到其他人的虚拟目录,而担心如何锁定用户在自己的主目录。 分级的虚拟目录系统 - 提供公共,以及组虚拟目录,便于管理和设置不同用户之间的文件共享。组虚拟目录能够被组中所有用户看到,公共虚拟目录能够被所有用户看到。 128比特SSL加密 - 采用业界公认的安全标准保护FTP会话和数据传输, 支持SSL客户端证书认证。 支持 SFTP(SSH2) 协议 - SFTP虚拟服务器现在能够象FTP虚拟服务器一样被创建和管理. 电子邮件事件通知 - 可以自动通过电子邮件通知FTP服务器的事件,如磁盘空间不足,用户上传,下载等. ODBC用户认证 - FTP用户账户,密码和设置可以存储在外部数据库,便于统一管理。 文件传输日志保存在数据库 - 文件传输日志可以通过ODBC保存在数据库内. 活动目录(AD) - 用户密码可以使用和Windows域相同的密码. 可以使用扩展模版xlightFTPdUser,在AD里保存Xlight FTP服务器用户的设置。 支持LDAP - 用户密码可以使用和LDAP相同的密码。可以使用扩展模版xlightFTPdUser,在LDAP服务器里保存Xlight FTP服务器用户的设置。 支持UPnP - 当FTP服务器在宽带路由器后,可以方便通过UPnP配置宽带路由器让外部用户访问. UNC路径账号身份模拟 - FTP服务器可以很容易设置账号身份模拟访问受到保护的远端网络共享。 图型界面的远程管理 - 远程管理不需要专门的端口,可以通过FTP端口直接管理,在任何地方都可以轻松管理位于防火墙内的FTP服务器。 高级的配置管理功能 - 所有的FTP配置更改都立刻生效,无须重新启动FTP服务器,不会因为更改配置造成用户服务中断。 高级的访问控制 - 提供了很多方法,灵活方便的控制用户访问权限。 高级的带宽管理 - 可以对服务器的总带宽,虚拟服务器,组的带宽以及单个用户的速度进行细调,也可以根据时间,动态设定FTP服务器的带宽。 自动禁止IPs - 能够根据用户的Hammer或恶意行为自动禁止用户IP访问。 禁止或允许IPs - 能够根据用户的IP地址,禁止或允许用户的访问。 用户登录时间的控制 - 能够对每个用户,根据不同的时间,控制他是否可以访问FTP服务器。 文件访问控制 - 可以控制用户只能上传或下载特定的文件。 详细的服务器状态 - 服务器有详细的带宽使用,用户连接信息,以及上传下载状态。 完整的服务器日志 - 服务器有纪录用户行为以及系统错误的详细日志。 发送日志到Syslog服务器 - 所有服务器日志可以同时发送到Syslog服务器. 完整的IPv6支持 - 无缝的IPv6功能整合,所有FTP服务器功能都已经支持IPv6。 xferlog的支持 - 支持UNIX下FTP文件传输xferlog格式的日志,能够直接被如AWStats之类的流量统计工具使用。 MODE Z 支持 - 支持数据传输的实时压缩。 反盗链保护功能 - FTP服务器能够提供反盗链保护功能。
ftp--虚拟用户 Benet6.0 S2 LINUX 第十二章 实验报告 姓名: 李勰 所在班级: hb3017 日期: 2020 年 7 月 7 日 实 验 任 务 1. 搭建服务之前先关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 2.挂载并安装软件vsftpd和ftp。(服务端和客户端) mount /dev/cdrom /mnt/ (挂载) rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm (安装服务端) rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm (安装客户端) 3.构建匿名可上传的FTP服务器,操作目录为 /var/ftp/pub 注:在客户端登录后,默认情况下是可以下载的,但不能上传。 3.1配置主配置文件:vim /etc/vsftpd/vsftpd.conf 添加: anon_upload_enable=YES (允许匿名上传) 3.2修改完成之后重启服务systemctl restart vsftpd 3.3 修改文件目录的w权限:chmod o+w /var/ftp/pub/ 3.4 查看并验证:ls -lhd /var/ftp/pub/ 3.5 知识扩充:anon_mkdir_write_enable=YES (允许匿名用户可创建目录) anon_other_write_enable=YES (允许匿名用户可删、可覆盖) anon_umask=022 (允许匿名用户上传文件有r权限,没有r权限不可下载) vim /var/ftp/pub/.message (切换目录提示信息) dirmessage_enable=YES (开始主配置文件该功能默认开启) 4.构建本地用户验证的FTP服务器,本地用户为zhangsan lisi wangwu,并将其禁锢到宿主目录中,上传的权限掩码值为022(默认) 4.1 创建本地用户zhangsan、lisi、wangwu。并设置密码。(创建的用户不需要登录操作系统,只需要登录ftp。) useradd -s /sbin/nologin zhangsan useradd -s /sbin/nologin lisi useradd -s /sbin/nologin wangwu 4.2 完成上一部操作,就可以使用本地用户访问,要禁锢需要修改只配置文件 chroot_local_user=YES (是否将用户禁锢在主目录) allow_writeable_chroot=YES (允许被限制用户的主目录具有写的权限) 重启服务并测试。 4.3 知识扩充:chroot_list_enable=YES (开启白名单功能,允许白名单中的用户随意切换目录) chroot_list_file=/etc/vsftpd/chroot_list(白名单所在位置,需自己创建) cd /etc/vsftpd/ vim chroot_list :(文件中填写允许切换的用户) 5.结合user_list文件限制用户,仅允许zhangsan lisi 用户访问(设置白名单或黑名单) 5.1修改user_list vim user_list, 添加zhangsan、lisi。 5.2修改主配置文件:userlist_enable=NO (不禁用user_list列表中的用户) 6.设置服务器的监听地址,并将端口修改为2121 重启服务测试 6.1.主配置文件添加:listen_port=2121 6.2.重启服务:systemctl restart vsftpd 6.3. netstat -anutp |grep "vsftpd" 进行查看 7.设置FTP虚拟用户,readuser,writeuser 1.创建用户列表 2.生成db文件(数据库) 3.权限管理 4.新建虚拟用户映射账号 (系统账号) 5.pam认证文件 6.修改配置文件 7.1.创建虚拟用户文件 cd /etc/vsftpd/ vim vusers.list (奇数为用户名,偶数为密码) readuser 666666 Writeuser 666666 7.2. 生成db文件(数据库) 1. 建立虚拟FTP用户的帐号数据库文件用到db_load工具先安装软件包 rpm -ivh libdb-utils-5.3.21-19.el7.x86_64.rpm (默认已安装) 2. db_load -T -t hash -f vusers.list vusers.db 通db_load工具创建出Berkeley DB格式的数据库文件 7.3. 配置权限 chmod 600 vusers.* (保证其安全性) 7.4. 新建虚拟用户映射账号 (系统账号) useradd -d /viruser -s /sbin/nologin virtual 7.5. pam认证文件 在vsftpd服务器中,用户认证是通过PAM(Pluggable Authentication Module,可插拔认证模块)机制来实现的,该机制包含灵活的选择认证方式。 vim /etc/pam.d/vsftpd.vu(此文件名可自定义) 加入以下两行 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers 7.6. 修改主配置文件 vim /etc/vsftpd/vsftpd.conf(:g /^#/d) guest_enable=YES 启用用户映射功能(添加) guest_username=virtual 指定映射的系统用户名称(添加) pam_service_name=vsftpd.vu 指定新的PAM认证文件(修改) allow_writeable_chroot=YES (允许被限制用户的主目录具有写的权限) user_config_dir=/etc/vsftpd/dir 匿名配置文件目录(添加) mkdir dir 创建目录 7.7. 为虚拟用户建立独立的配置文件,启动服务并测试。 注:虚拟用户配置文件时,将主配置文件中自定义的匿名用户相关设置注释掉。 注:给映射用户的家目录设置o+r让虚拟用户有读取权限 1.用户可以上传:(anon_umask=022) anon_upload_enable=YES 2.用户可以创建目录: anon_mkdir_write_enable=YES 3.用户可以修改文件: anon_upload_enable=YES 允许上传文件(为了覆盖开启的) anon_other_write_enable=YES 允许重名和删除文件、覆盖 4.设置权限: readuser 用户可以登录,并可以浏览、下载,但无法上传 writeuser 用户可以登录,并可以浏览、下载,只可以上传文件 5.匿名用户或其他系统用户将不能登录 vim user_list,向其中添加readuser Writeuser vim /etc/vsftpd/vsftpd.conf (修改主配置文件) userlist_enable=YES //*启用user_list用户列表文件 userlist_deny=NO //*不禁用user_list列表中的用户登录 详 细 实 验 步 骤 结 果 验 证 问 题 及 分 析

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值