一. FTP详解
FTP(File Transfer Protocol):文件传输协议
目的:共享文件
作用:提供各主机之间文件共享服务,可以应用在互联网中,实现外地登陆服务器下载公司文件功能,不区分客户端,在windows和linux中都可以使用。
linux下ftp服务器端软件:
vsftpd —— Very Secure FTP Daemon
ftp客户端软件:
linux:ftp lftp
windows:FileZilla
默认端口及协议: tcp 20/21
连接端口:21(等待客户端建立管理连接)
数据端口:20(主动) 1025~65535(随机,被动)
工作模式:
主动模式
被动模式
默认开启被动传输模式
set ftp:passive-mode off # 登录ftp后,命令行关闭被动模式,变为主动模式
三类用户:
本地用户:服务器上存在的用户
匿名用户:匿名用户实际上有一个与之对应的系统用户 — “ftp”这个用户默认是匿名用户所对应的用户,匿名用户映射为ftp
虚拟用户
二. 安装FTP,并配置仅本地用户可远程登录ftp
- 查看软件包是否安装
rpm -qa | grep vsftpd
- 安装vsftp服务器端
yum install vsftpd -y
- 查看软件安装产生的文件
rpm -ql vsftpd
/etc/vsftpd # 配置文件的目录
/etc/vsftpd/ftpusers # 访问控制
/etc/vsftpd/user_list # 访问控制
/etc/vsftpd/vsftpd.conf # 配置文件
/var/ftp # 匿名用户的家目录
/var/ftp/pub # 默认上传下载的目录
- 启动服务
systemctl start vsftpd
# 开机自启
systemctl enable vsftpd
- 服务端提供本地用户异地登录
# 提供普通用户
useradd hqx
# 为用户设置密码
echo 123 | passwd --stdin hqx
- 配置文件
# 简洁明了的配置文件参数
# 此配置已经关闭了被动模式,只使用主动模式
egrep -v '^$|^#' /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_max_rate=0
local_max_rate=0
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
ftp_data_port=20
pasv_enable=NO
pasv_address=192.168.4.39
pasv_addr_resolve=YES
max_clients=0
max_per_ip=0
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
log_ftp_protocol=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES
listen_address=192.168.4.39
listen_port=21
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=NO
上面的配置文件参数详解: \color{red}上面的配置文件参数详解: 上面的配置文件参数详解:
注意:只要参数生效的配置行里,从行首到行尾绝对不能有空格
# 首先备份原始配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default
vim /etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.