文档 · 2019年5月20日

linux搭建FTP服务

安装环境Centos 7.2

1.安装ftp软件:

[root@logstash-01 /]# yum install -y vsftpd

2.启动ftp软件并加入开启自启:

[root@logstash-01 /]# systemctl start vsftpd
[root@logstash-01 /]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-05-20 13:23:43 CST; 5s ago
  Process: 31661 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 31662 (vsftpd)
   Memory: 564.0K
   CGroup: /system.slice/vsftpd.service
           └─31662 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@logstash-01 /]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

3.查看端口是否启用:

[root@logstash-01 /]# lsof -i:21
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
vsftpd  31662 root    4u  IPv6 526557829      0t0  TCP *:ftp (LISTEN)

4.配置登陆用户和密码:

a.创建用户:
[root@logstash-01 /]# useradd ftpadmin

b.设置用户密码:
[root@logstash-01 /]# passwd ftpadmin

c.创建供FTP使用的文件目录 
[root@logstash-01 /]# mkdir /volumes01

d.修改工作目录的权限:
[root@logstash-01 /]# chown -R ftpadmin:ftpadmin /volumes01

e.修改vsftpd.conf 配置文件:
[root@logstash-01 /]# vim /etc/vsftpd/vsftpd.conf
#主动模式:
anonymous_enable=NO                                  #不允许匿名登陆FTP服务器
local_enable=YES                                     #允许本地用户登陆FTP服务器
local_root=/volumes01                                #供FTP本地用户使用的文件目录
#设置以下参数,限制用户只能访问自身的主目录。
chroot_local_user=YES                      #所有用户都被限制在其主目录
chroot_list_enable=YES                     #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list   #例外用户名单
allow_writeable_chroot=YES                 
#被动模式(被动模式除了需要配置主动模式所需的所有参数外,还需要配置的参数如下:)
listen=YES                    
listen_ipv6=NO                
pasv_address=192.168.10.10      #FTP服务器的IP地址
pasv_min_port=3000            #被动模式下的最小端口
pasv_max_port=3100            #被动模式下的最大端口

f.修改后的配置文件如下:
[root@az2-cls-prd-logstash-01 /]# cat /etc/vsftpd/vsftpd.conf | grep -v '#'
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
listen=YES
local_root=/volumes01
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_address=10.102.11.17
pasv_min_port=10000
pasv_max_port=10100

g.在“/etc/vsftpd/”目录下创建“chroot_list”文件:
chroot_list 文件是限制在主目录下的例外用户名单。如果需要设置某个用户不受只可以访问其主目录的限制,可将对应的用户名写入该文件。如果没有例外也必须要有 chroot_list 文件,内容可为空。

h.重启vsftpd 使配置生效:
[root@logstash-01 vsftpd]# systemctl restart vsftpd

i.关闭防火墙或者设置防火墙允许 20 21 端口通信:

4.连接ftp服务器:

在win终端快捷键 xin+e 打开文件管理器

地址栏输入ftp://ip:21   不加端口默认为21 弹出对话框 输入用户名密码即可

FQA:

出现错误:  打开ftp服务器上的文件时发生错误。请检查是否有权限访问该文件夹

解决办法:  a. 首先打开一个IE浏览器(如果打开了多个浏览器,请关闭)。 b.点击打开“工具”—“internet选项”—“高级” c.找到使用被动FTP(为防火墙和DSL调制解调器兼容性),并把前面的勾去掉。 d. 然后点击确定并且关闭IE浏览器。

打赏