FTP服务器搭建(Linux)
目录
一、FTP
1.1 FTP简介
1.2 Linux搭建FTP(需确认防火墙是否开启,如未开启防火墙需要打开)
1.2.1安装Vsftpd
1.2.2配置vsftpd
1.3设置安全组
1.4验证FTP
1.5FTP主动模式与被动模式区别
1. 主动模式
2. 被动模式
一、FTP
1.1 FTP简介
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一.FTP协议包括两个部分,FTP服务器和FTP客户端。FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。可以利用FTP协议把网页或程序传到Web服务器上。因为FTP传输效率高,所以在网络上传输大的文件时,一般也采用该协议。默认情况下FTP协议使用TCP端口中的 20、21端口,20用于传输数据,21用于传输控制信息。
1.2 Linux搭建FTP(需确认防火墙是否开启,如未开启防火墙需要打开)
本实验Linux操作系统版本: CentOS 7.6
Vsftpd版本为:
[root@VM-0-15-centos ~]# vsftpd -v
vsftpd: version 3.0.2
1.2.1安装Vsftpd
[root@VM-0-15-centos ~]# yum install -y vsftpd
#设置开机自启
[root@VM-0-15-centos ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
#启动vsftpd服务
[root@VM-0-15-centos ~]# systemctl start vsftpd
#查看服务启动是否启动
[root@VM-0-15-centos ~]# netstat -antup | grep ftp
tcp6 0 0 :::21 :::* LISTEN 12553/vsftpd
注意:vsftpd服务启动后,会默认开启匿名访问,无需通过用户名和密码即可登录到 FTP 服务器。但此方式登录 FTP 服务器的用户没有权修改或上传文件的权限。
1.2.2配置vsftpd
#创建 FTP 服务用户
[root@VM-0-15-centos ~]# useradd vsftpd_test
#给这个FTP用户设置密码
[root@VM-0-15-centos ~]# passwd vsftpd_test
#创建 FTP 服务使用的目录
[root@VM-0-15-centos ftp]# mkdir /var/ftp/test
#更改目录权限
[root@VM-0-15-centos ftp]# chown -R vsftpd_test:vsftpd_test /var/ftp/test/
#打开 vsftpd.conf 文件
[root@VM-0-15-centos ftp]# vim /etc/vsftpd/vsftpd.conf
#设置匿名用户和本地用户的登录权限
anonymous_enable=NO
local_enable=YES
#设置指定用户列表文件的路径,并开启 IPv4 sockets 的监听。
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#关闭 IPv6 sockets 的监听(部分FTP客户端可能无法正确处理IPv6连接、同时监听IPv4和IPv6会增加配置复杂度)
#listen_ipv6=YES#开启被动模式,设置本地用户登录后所在目录,以及云服务器建立数据传输可使用的端口范围值。
local_root=/var/ftp/test
allow_writeable_chroot=YES
pasv_enable=YES
pasv_address=132.232.1.148
pasv_min_port=40000
pasv_max_port=45000#创建并编辑 chroot_list 文件。
vim /etc/vsftpd/chroot_list #输入用户名,一个占据一行,若没有设置例外用户的需求,可跳过
#重启 FTP 服务。
systemctl restart vsftpd
1.3设置安全组
搭建好 FTP 服务后,要根据实际使用的 FTP 模式给 Linux 云服务器放通入站规则。
多数客户端机器IP 是经过转换的。如果选择的是 FTP 主动模式,请确保客户端机器已获取真实的 IP ,否则会导致客户端无法登录 FTP 服务器。
主动模式:放通端口21。
被动模式:放通端口21,及 修改配置文件 中设置的 pasv_min_port 到 pasv_max_port 之间的所有端口,本文放通端口为40000 - 45000。
1.4验证FTP
- 打开浏览器,选择【工具】>【Internet 选项】>【高级】,根据您选择的 FTP 模式进行修改:
- 主动模式:取消勾选【使用被动 FTP】
- 被动模式:勾选【使用被动 FTP】
1.5FTP主动模式与被动模式区别
1. 主动模式
工作流程:
客户端通过随机端口(如
N
)连接到服务器的 21 端口(控制连接)。客户端发送
PORT
命令,告知服务器自己的一个随机端口(如N+1
)用于数据连接。服务器主动从 20 端口 连接到客户端的指定端口(
N+1
)建立数据连接。特点:
服务器主动发起数据连接,客户端被动接受。
防火墙问题:如果客户端位于防火墙/NAT后,服务器的连接可能被拦截。
适用于服务器和客户端之间无防火墙限制的环境(如局域网)。
2. 被动模式
工作流程:
客户端通过随机端口连接到服务器的 21 端口
客户端发送
PASV
命令,服务器回应一个随机端口(如P
)用于数据连接。客户端主动连接到服务器的端口
P
建立数据连接。特点:
客户端发起数据连接,服务器被动接受。
防火墙友好:适合客户端位于防火墙/NAT后的场景。
服务器需开放随机端口:可能需配置防火墙允许高端口号范围