运行环境
系统版本:CentOS Linux release 7.3.1611 (Core)
软件版本:vsftpd-3.0.2
硬件要求:无
安装过程
1、安装YUM-EPEL存储库
YUM-EPEL存储库由EPEL官网提供。
[[email protected] ~]# yum -y install epel-release.noarch
2、安装vsFTP和FTP
vsFTP是FTP服务端,FTP是FTP客户端。
[[email protected] ~]# yum -y install vsftpd ftp
3、创建要共享的目录
[[email protected] ~]# mkdir -p /var/ftp/share
4、配置vsFTP
配置一个使用本地用户进行身份验证的文件服务。
[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
### 全局配置 ###
listen=YES
#设置监听进程的方式,YES为独立进程运行,NO则以Xined进程的方式运行,服务则由Xined管理工具控制。Xined是一种服务管理工具,类似于Redhat中的service命令。一般设置为YES。
listen_port=21
#设置监听端口号。默认为21。
listen_address=0.0.0.0
#设置监听地址。如果不配置,默认监听所有IP。
connect_from_port_20=NO
#设置服务器数据传输是否为主动模式。如果为YES,则服务器主动从客户端的20端口建立数据连接,传输数据。
pasv_enable=YES
#设置服务器数据传输是否为被动模式。默认开启,当服务端被动传输数据。
pasv_max_port=0
#设置被动模式下客户端开启的最大端口号。
pasv_min_port=0
#设置被动模式下客户端开启的最小端口号。
tcp_wrappers=NO
#设置是否开启TCP_wrappers主机访问控制功能。如果为YES,则由TCP_wrappers网络防火墙控制,允许或拒绝那些主机才能访问FTP服务。
pam_service_name=vsftpd
#设置用于用户认证的PAM文件位置。此项必须存在。对应/etc/pam.d/vsftpd文件。
max_clients=2000
#设置客户端最大连接数。
max_per_ip=50
#设置相同IP同时连接的数量。0表示无限制。
ascii_download_enable=NO
#是否启用下载时采用ASCII方式传输文件。加密传输。
ascii_upload_enable=NO
#是否启用上传时采用ASCII方式传输文件。加密传输。
xferlog_enable=NO
#控制开启xferlog日志功能。
xferlog_file=/var/log/xferlog
#指定日志记录位置。
xferlog_std_format=NO
#是否将日志记录的格式转换成xferlog格式。
write_enable=YES
#控制所有用户登录是否可写。
download_enable=YES
#控制所有用户是否允许下载操作。
userlist_enable=NO
#是否开启用户列表控制功能。创建一个用户列表文件,每个用户名为一行。
userlist_file=/etc/vsftpd/user_list
##指定用户列表文件位置。
userlist_deny=YES
#设置是否拒绝这个用户列表文件中的用户访问登录。如果为YES则为拒绝,如果为NO则为允许。
### 匿名用户配置 ###
anonymous_enable=NO
#控制匿名登录是否启用。如果启用则默认使用ftp和anonymous为匿名用户。
ftp_username=ftp
#设置匿名用户名。默认为ftp。
anon_root=/var/ftp
#设置匿名用户的主目录位置。默认是/var/ftp目录。
anon_mkdir_write_enable=NO
#如果为YES,则匿名用户允许创建、删除目录的权限,前提是开启write_enable=YES。
anon_other_write_enable=NO
#如果为YES,则匿名用户允许执行写入操作,除了上传和创建目录,如删除和重命名。
anon_upload_enable=NO
#如果为YES,则允许匿名用户上传文件,前提是开启write_enable=YES。
anon_world_readable_only=YES
#如果为YES,则匿名用户只拥有只读权限,只可以下载文件,不可修改和写入。
anon_max_rate=0
#设置匿名传输最大速率(以字节为单位)。
anon_umask=077
#设置匿名用户创建文件时的文件权限。为反掩码,转换成正掩码:777-077=700。
no_anon_password=YES
#如果为YES,则匿名登录时不用要求输入密码直接登录。
### 本地用户配置 ###
local_enable=YES
#本地用户启用开关,如果启用的话则访问文件服务需要输入用户名和密码,默认读取系统中/etc/passwd文件中的用户账户。说白了就是使用系统用户登录。
local_root=/var/ftp/share
#设置要共享的目录路径。
local_umask=077
#设置本地用户创建文件时的文件权限。为反掩码,转换成正掩码:777-077=700。
chroot_local_user=NO
#设置是否将用户限制在自己的用户家目录(/home/{users})中,不允许切换到其他目录。
allow_writeable_chroot=YES
#设置允许用户在家目录下可写权限。在vsFTP新版以后,为了增加安全性,默认情况下如果限制用户在自己的家目录,家目录不允许有可写的权限。我们可以通过此配置控制用户家目录可写。
chroot_list_enable=NO
#如果为YES,则你需要提供一个本地用户列表的文件。在该列表中的用户都不允许切换到上级目录,将其限制在家目录(共享目录)中。你需要指定一个本地用户列表的文件。
chroot_list_file=/etc/vsftpd/chroot_list
#设置一个本地用户列表文件。
local_max_rate=0
#设置本地用户传输最大速率(以字节为单位)。
userlist_enable=NO
#设置使用一个本地用户列表控制用户访问登录,只允许此列表中的用户访问文件服务。
userlist_deny=NO
#设置使用一个本地用户列表控制用户访问登录,在此列表中的用户禁止访问文件服务。
userlist_file=/etc/vsftpd/user_list
#本地用户列表文件位置。
### 虚拟用户配置 ###
guest_enable=NO
#如果开启此项则所有非匿名登录用户都将被视为“访客”登录。开启虚拟用户映射功能。
guest_username=ftp
#设置虚拟用户对应的真实系统用户名。
5、创建一个系统用户
我们创建一个系统用户,用于访问到FTP服务器。
[[email protected] ~]# useradd test
[[email protected] ~]# passwd test
6、目录授权
用户必须拥有对目录的操作权限。
[[email protected] ~]# chown -R test.test /var/ftp/share/
7、启动vsFTP服务
[[email protected] ~]# systemctl restart vsftpd
[[email protected] ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2019-06-20 01:52:50 EDT; 4s ago
8、使用FTP客户端访问到FTP服务器
我们输入账号密码即可登陆到FTP服务器上。
[[email protected] ~]# ftp 172.16.254.129
Connected to 172.16.254.129 (172.16.254.129).
220 (vsFTPd 3.0.2)
Name (172.16.254.129:root): test
331 Please specify the password.
Password:
230 Login successful.
9、也可以使用CurlFTPFS工具将远端目录挂载到本地
但是前提是我们需要安装它。
9.1、安装CurlFTPfs
[[email protected] mnt]# yum -y install curlftpfs
9.2、将FTP服务器上的共享目录挂载到本地
语法:curlftpfs ftp://用户名:密码@FTP服务器地址 本地目录
[[email protected] ~]# curlftpfs ftp://test:[email protected]/ /var/ftp/mnt
原文地址:https://www.cnblogs.com/network-ren/p/12400832.html
时间: 2024-10-11 04:03:46