【FTP】FTP服务搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26545305/article/details/80473205

基本介绍:

         FTP是文件传输协议的缩写,基于网络来传输文件的应用层协议。

         FTP支持两种模式:Standard(PORT方式,主动方式),Passive(PASV,被动方式)。

Port模式:

FTP客户端首先和服务器的TCP21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令,PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器通过自己的TCP20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式:

建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

用途:

              本地主机和远程主机之间传送文件。

实现文件传输协议的服务器和客户端软件非常多,VSftp就是服务器端的一个,一般安装在linux上。FileZilla Server也是服务器端的一个,一般安装在windows上。

客户端软件,一般推荐FileZilla。

         本文档主要介绍centos7安装vsftp。

基本环境:

1、  centOS7

2、  测试服务器IP192.168.224.224

一、安装并启动FTP服务

安装VSFTPD

使用yum安装vsftpd

yum install – y vsftpd

启动VSFTPD服务

安装完成后,启动FTP服务

service vsftpd start

启动后,可以看到系统已经监听了21端口:

netstat –nltp | grep 21

此时,使用IE浏览器访问ftp://192.168.224.224/可浏览器服务器上的/var/ftp目录。

设置开机启动:systemctl enable vsftpd

二、配置FTP权限

了解VSFTP配置

Vsftpd的配置目录为/etc/vsftpd,包含下列的配置文件:

vsftpd.conf 为主要配置文件

ftpusers : 配置禁止访问FTP服务器的用户列表

user_list : 配置用户访问控制

组织匿名访问和切换根目录

匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。

编辑/etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

# 禁用匿名用户  YES改为NO

Anonymous_enable=NO

# 禁止切换根目录  删除#

chroot_local_enable=YES

编辑完成后保存配置,重新启动FTP服务

service vsftpd restart

创建FTP用户

创建一个用户ftpuser::

useradd ftpuser

为用户ftpuser设置密码:

echo "javen205" | passwd ftpuser –stdin

   限制该用户仅能通过FTP访问

       限制用户ftpuser只能通过FTP访问服务器,而不能直接登录服务器:

       usermod -s /sbin/nologin ftpuser

   为用户分配主目录

  /data/ftp为主目录,

  /data/ftp/pub文件只能上传到该目录下

       

       在/data中创建相关的目录

                   mkdir–p /data/ftp/pub

创建登录欢迎文件

    echo”Welcome to use FTP service.”  >/data/ftp/welcome.txt

    设置访问权限:

    chmod a-w /data/ftp && chmod 777 -R/data/ftp/pub

    设置为用户的主目录:

    usermod -d /data/ftp ftpuser

三、访问FTP

根据个人工作环境,选择一种方式来访问已经搭建的FTP服务。

# 关闭SELinux服务:

setenforce 0

# 开启21、20端口

firewall-cmd --zone=public --add-port=21/tcp –permanent

firewall-cmd --permanent --list-port

service firewalld restart

通过windows资源管理器访问

ftp://ftpuser:[email protected]

如果提示如下信息:


解决访问把“使用被动FTP”去掉。

控制面板→Internet选项→使用被动FTP(用于防火墙和DSL调制解调器的兼容)


通过FTP客户端工具FileZilla访问

FileZilla:跨平台的FTP客户端,支持Windows和Mac

                        如果出现下图所示,卡在这里,不往下走。

 

解决访问

文件→站点管理器→传输设置。把传输模式改为“主动”。

  问题原因:

  Internet选项和FTP客户端工具默认使用的都是PASV模式连接FTP服务。

         附录:   

linux下ftp命令的安装与使用

https://www.cnblogs.com/tjudzj/p/7700686.html

       

猜你喜欢

转载自blog.csdn.net/qq_26545305/article/details/80473205