1. 首页
  2. >
  3. 服务器技术
  4. >
  5. Linux

Linux搭建FTP服务器

Linux搭建FTP服务器

1..FTP服务器有什么用

.FTP服务器是能够提供文件存储、访问的计算机,实现了文件共享。

2.FTP是什么

FTP是File Transfer Protocol(文件传输协议),是一种基于TCP的协议,采用客户/服务器模式。

3.FTP工作模式

FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。

不管哪种模式都是先建立客户端和服务器端的控制连接,然后在需要的时候建立数据连接进行数据传输。FTP工作模式的视频演示见FTP的工作模式

4.Linux服务器下搭建FTP服务器

一、安装vsftpd服务

(1)安装ftp服务端--vsftpd

yum  -y   installed   vsftpd

能连接互联网或者配置了局域网yum源(Linux中为局域网配置yum源(httpd方式))的,通过上述命令可以直接安装vsftpd服务。

(2)验证vsftpd是否验证成功及查看其版本

vsftpd    -v 

(3)管理vsftpd服务

启动vsftpd服务:systemctl  start  vsftpd 停止vsftpd服务:systemct  stop  vsftpd 重启vsftpd服务:systemctl  restart  vsftpd

二、新增ftp用户

(1)创建ftp用户并设置密码

创建用户:useradd  ftptest 设置密码:passwd   ftptest

当未给新创建的用户分配用户组时,会默认生成与新用户名称一致的用户组,即上述用户ftptest,属于ftptest用户组。

(2)配置ftp用户只能通过ftp方式进行登陆,即不能通过ssh登陆

禁止ftptest用户使用ssh登陆:usermod   -s    /sbin/nologin   ftptest 恢复ftptest用户使用ssh登陆:usermod   -s     /bin/bash    ftptest

通过passwd文件,可以查看用户登录方式。cat /etc/passwd

Linux搭建FTP服务器

三、修改FTP的配置文件

(1)配置文件位置:/etc/vsftpd/vsftpd.conf,修改内容:

# 关闭匿名用户访问,修改为NO anonymous_enable=NO # 禁止切换目录,将所有本地用户限制在设定的目录中,NO则不限制 chroot_local_user=YES # 设置系统用户FTP主目录,如果没有对ftp用户再设置独立允许访问的目录,则用以下目录 local_root=/data # 开启charoot写权限 allow_writeable_chroot=YES #配置可以登录ftp的用户 userlist_deny=NO userlist_file=/etc/vsftpd/user_list #配置ftp用户可以访问目录,与上述ftp主目录不同,这里是设置了ftp用户独立允许访问的目录 user_config_dir=/etc/vsftpd/userconfig # 配置FTP被动模式的端口 pasv_min_port=60000 pasv_max_port=60100

(2)防火墙中开放相应端口

firewall-cmd   --zone=public  --add-port=60000-60100/tcp  --permanent firewall-cmd   --zone=public  --add-port=21/tcp  --permanent firewall-cmd   --reload  #查看防火墙开放的端口 firewall-cmd  --zone=public   --list-ports

(3)配置可以登录ftp用户

#编辑user_list文件,添加刚新增的ftp用户 vim /etc/vsftpd/user_list

(4)设置ftp用户登录后可以独立访问的目录

#根据vsftpd.conf配置文件中设置user_config_dir的参数,创建userconfig目录 mkdir /etc/vsftpd/userconfig #创建文件(文件名称与ftp用户需要一致),添加ftptest用户可以独立访问的目录 vim /etc/vsftpd/userconfig/ftptest local_root=/data/ftptest 

重启vsftpd服务:systemctl restart vsftpd

(5)设置ftp用户独立访问目录的权限

#为所有的用户设置访问/data/ftptest目录读、写、执行的权限 chmod    777   -R   /data/ftptest #也可以为将/data/ftptest目录的操作权限赋给ftp用户 chown   -R    ftptest:ftptest    /data/ftptest