一、ftp服务的搭建与简单使用
1、windows下搭建
步骤一: 安装FTP服务器支持和IIS管理平台。
操作步骤: 电脑 => 控制面板 => 程序和功能 => 启用和关闭Windows功能 => Internet Infomation Services => 勾选【FTP服务器】和Web管理工具的【IIS管理控制台】=> 点击确定等待安装完成
步骤二: 打开IIS管理器
操作步骤: 电脑 => 控制面板 => 管理工具 => Internet Infomation Services(IIS)管理器
步骤三: 创建FTP服务器
操作1:
在某个盘符如D盘,创建一个FTP共享文件夹,用于FTP共享文件存放地址
操作2:
右键IIS管理器左边导航栏 => 添加FTP站点
操作3:
指定【站点名称】和【FTP共享的文件夹路径】
操作4:
配置FTP服务器相关信息
操作5:
配置FTP服务器验证和权限信息
【注意:如果想通过程序实现上传、下载功能,身份验证中的基本选项需要勾选上,后面程序需要通过这个方式使用账号和密码登录到FTP服务器】
操作6:
在同一网段的小伙伴可以通过:ftp://ftp配置的ip地址 格式访问到FTP服务器。
其他问题
问题: FTP按照流程搭建完成后,在同一网段的小伙伴却无法访问!
原因: 可能是开启了防火墙拦截,需要在防火墙放行FTP服务器。
解决: 电脑 => 控制面板 => Windows Defender 防火墙 => 允许应用通过Windows Defender 防火墙进行通信 => 勾选【FTP服务器】
2、linux下搭建(vsftpd)
其实在linux下的搭建很简单,分为三步,下载、安装、配置。
其中vsftpd的配置项比较多,所以本文重点会在vsftpd的配置里
2.1、安装启动
# 1. 安装
yum install vsftpd -y # 如果没有外网,那么可以下载离线包然后安装
# 2. 启动
systemctl start vsftpd.service
# 3.查看进程是否启动
ps -ef | grep vsftpd
# 4.查看端口号
netstat -anplut | grep vsftpd
# 5.修改配置文件
vim /etc/vsftpd/vsftpd.conf
2.2、 配置
(1)配置文件说明
选项 | 说明 |
---|---|
anonymous_enable | 设置是否允许匿名用户登录服务器 |
local_enable | 设置是否允许本地用户登录服务器 |
write_enable | 设置是否允许写操作 |
local_umask | 设置本地用户创建文件的umask值 |
anon*_upload_enable* | 设置是否允许匿名用户上传文件 |
anon*_mkdir_write_enable* | 设置是否允许匿名用户建立目录 |
xferlog_enable | 是否激活日志功能 |
chown_uploads | 修改匿名用户上传文件的所有者 |
chown_username=whoever | 启用chown_uploads=YES时,指定为主用户账户,whoever表示你的ftp用户 |
chroot*_local_user* | 设置是否将所有用户限制在其主目录 |
chroot*_list_enable* | 设置是否启用限制用户的名单 |
chroot*_list_file* | 设置是否限制/排除主目录下的用户名单,限制/排除有chrootlocaluser值决定 |
allow*_writeable_choot* | 设置chroot目录的写权限 |
2.3 登录
vsftpd允许用户以3种认证模式登录到FTP服务器上。
- 匿名用户:任何人都可以直接登录服务器
- 本地用户:通过本地用户输入密码登录服务器( 在生产环境中,我们通常使用本地用户登录这种方式 )
- 虚拟用户:本身不存在、是一个虚拟出来的用户、就算黑客破解的用户信息也无法登录服务器
2.3.1 匿名登录
匿名用户登录的参数说明
参数 | 作用 |
---|---|
anonymous_enable=YES | 允许匿名用户访问 |
anon_umask=022 | 匿名用户上传文件的umask值 |
anon_upload_enable=YES | 允许匿名用户上传文件 |
anon_mkdir_write_enable=YES | 允许匿名用户创建文件 |
anon_other_write_enable=YES | 允许匿名用户修改目录名称或删除目录 |
(a) 修改配置文件:
vi /etc/vsftpd/vsftpd.conf
修改内容如下,前面是行号
12 anonymous_enable=YES
29 anon_upload_enable=YES # 允许上传文件 如果前面有# 删除最前面的 “#”
33 anon_mkdir_write_enable=YES # 允许创建文件
(b) 重启FTP服务
systemctl restart vsftpd
可能出现的问题
连接ftp服务后,创建文件夹或者文件失败,可能是文件夹权限不够导致,使用如下命令更改权限
chmod 777 /var/ftp/pub #给目录所属设置为ftp
2.3.2 本地用户登录
(a) 首先在linux上创建ftp用户
# 第一步、创建ftp用户的所属目录
mkdir /usr/local/ftp
# 第二步、创建用户
useradd ftpUser -d /usr/local/ftp
# 第三步、给用户设置密码
echo "123" | passwd --stdin ftpUser
(b) 修改配置文件
vim /etc/vsftpd/vsftpd.conf
# 不允许匿名用户访问
12 anonymous_enable=NO
# 对应(a)中第一步,“创建ftp用户的所属目录”
13 local_root=/web/www/html # 添加
102 chroot_list_enable=YES # 取消注释 激活chroot功能
104 chroot_list_file=/etc/vsftpd/chroot_list # 取消注释 锁定用户在根目录中的列表文件
# 启用chroot,允许chroot限制
105 allow_writeable_chroot=YES # 添加
106 write_enable=yes # 添加
(c ) 建立/etc/vsftpd/chroot_list文件 [此处目录对应的是(b)中第“104”行配置]
vim /etc/vsftpd/chroot_list
#加入下面的用户名
ftpUser
(d) 重启FTP服务
systemctl restart vsftpd