简介
FTP 是文件传输协议(File Transfer Protocol)的缩写,它是一种用于在网络上进行文件传输的标准网络协议。FTP 协议允许用户在本地计算机和远程服务器之间进行文件传输,可以上传、下载、删除、重命名文件等操作
FTP 协议有两种模式:主动模式(Active Mode)和被动模式(Passive Mode)。在主动模式下,客户端主动建立连接并发送命令到服务器;在被动模式下,服务器主动建立连接并发送命令到客户端
使用 FTP 协议进行文件传输时,需要使用 FTP 客户端软件,如 FileZilla、Xftp 等。这些软件可以连接到 FTP 服务器,并使用 FTP 协议进行文件传输
Window安装
网上基于Window的FTP服务器搭建教程提别多,单同时可能会造成的问题也提别多,建议跟着视频进行操作
Linux安装
可以选择安装如vsftpd、proftpd、PureFTPd等FTP服务软件,下述以PureFTPd为例
在Debian/Ubuntu上安装PureFTPd:
sudo apt update
sudo apt install pure-ftpd
在CentOS/RHEL上安装PureFTPd:
sudo yum install epel-release
sudo yum install pure-ftpd
创建FTP用户并指定目录权限
创建用户,使用useradd命令创建一个名为ftpuser的新用户
-d /var/www/html: 指定该用户的主目录为/var/www/html
-s /usr/sbin/nologin: 指定该用户不能通过SSH登录,仅用于FTP访问
sudo useradd ftpuser -d /var/www/html -s /usr/sbin/nologin
设置密码,为ftpuser设置密码
sudo passwd ftpuser
指定目录权限,将/var/www/html目录及其所有子文件和子目录的所有者更改为ftpuser
sudo chown -R ftpuser:ftpuser /var/www/html
配置PureFTPd
启用UNIX认证,确保PureFTPd使用系统用户进行认证
echo "yes" | sudo tee /etc/pure-ftpd/conf/UnixAuthentication
限制用户访问特定目录,确保用户只能访问其主目录
echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryone
设置被动端口范围以确保FTP连接能够在防火墙后正常工作
echo "30000 35000" | sudo tee /etc/pure-ftpd/conf/PassivePortRange
服务器有公共IP地址,设置该IP以确保FTP连接正常
echo "外部IP地址" | sudo tee /etc/pure-ftpd/conf/ForcePassiveIP
应用所有配置更改并重启PureFTPd服务
sudo systemctl restart pure-ftpd
连接测试
通过FileZilla或Xftp软件进行连接测试