需求:配置ftp服务用于在windows电脑上直接浏览、下载、上传ubuntu服务器上的文件,用于文件共享,方便实用
效果:用户打开windows资源管理器后输入ftp://xxx.xxx.xxx.xxx (公网IP地址)后,即可浏览下载上传文件
目录
一、安装vsftpd
二、配置vsftpd
三、设置安全组
四、客户端测试
一、安装vsftpd
1,运行以下命令安装vsftpd
sudo apt update
sudo apt install vsftpd
2,设置FPT服务器开机自启动
systemctl enable vsftpd.service
3,启动FTP服务
systemctl start vsftpd.service
4,查看FTP服务监听的端口
netstat -antup | grep ftp
出现如下图所示的界面,即表示FTP服务已经启动,监听端口号为21,此时,vsftpd默认已开启匿名访问功能,您无需输入用户名密码即可登录FTP服务器,但没有修改或上传文件的权限。
二、配置vsftpd
1,为FTP服务创建一个用户
adduser ftpadmin
2,修改ftpadmin用户的密码
passwd ftptest
根据提示,需要输入两次密码完成密码的修改
3,创建一个供FTP服务使用的文件目录(共享的文件将在这个目录中展示给用户)
mkdir /var/ftp/work01
或
mkdir -p /var/ftp/work01
4,创建一个测试文件,用于客户端访问时使用
touch /var/ftp/work01/test.txt
查看该目录,如下图所示(这里创建了两个文件)
5,更改刚刚创建的目录的拥有者为ftpadmin用户
chown -R ftpadmin:ftpadmin/var/ftp/work01
修改下如下图所示
6,修改vsftpd.conf配置文件
vim /etc/vsftpd/vsftpd.conf
修改内容如下
#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES#在行首添加#注释掉以下参数:
#关闭监听IPv6 sockets。
#listen_ipv6=YES#在配置文件的末尾添加下列参数:
#设置本地用户登录后所在目录。
local_root=/var/ftp/work01
#允许用户上传文件
write_enable=YES
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/chroot_list
#开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中为Linux实例的公网IP。
pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=1024
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=1048
修改pasv_address为服务器公网ip地址
7,创建chroot_list文件
vi /etc/chroot_list
输入的内容为例外的用户名单,此名单中的用户不会被锁定在主目录,可以访问其他目录。没有例外用户也必须创建chroot_list文件,内容为空即可。
8,重启vsftpd服务
systemctl restart vsftpd.service
三、设置安全组
需要在服务器的安全组里开放20-21端口,还需要开放pasv_min_port和pasv_max_port设置的端口
四、客户端测试
打开windows资源管理器,使用ftp://xx.xx.xx.xx(公网ip)输入用户名密码即可浏览,下载上传文件
上传一个图片文件
服务器上的work01文件目录就有这个图片文件了