Linux网络服务——FTP服务器搭建

Posted 0611#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络服务——FTP服务器搭建相关的知识,希望对你有一定的参考价值。

FTP服务器

  • FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
  • FTP是用来在两台计算机之间传输文件,它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。

FTP主动模式

主动模式是FTP的默认模式,也称为PORT模式

  • 在主动模式下,客户端会开启N和N+1两个端口,N为客户端的命令端口,N+1为客户端的数据端口
  • 第一步,客户端使用端口N连接FTP服务器的命令端口21,建立控制连接并告诉服务器我这边开启了数据端口N+1。
  • 第二步,在控制连接建立成功后,服务器会使用数据端口20,主动连接客户端的N+1端口以建立数据连接。这就是FTP主动模式的连接过程。
  • 在这条红色的数据连接建立的过程中,服务器是主动的连接客户端的,所以称这种模式为主动模式。

主动模式利弊

  • 主动模式对FTP服务器的管理有利,因为FTP服务器只需要开启21端口的“准入”和20端口的“准出”即可
  • 但这种模式对客户端的管理不利,因为FTP服务器20端口连接客户端的数据端口时,有可能被客户端的防火墙拦截掉

FTP被动模式

FTP主动模式,简单的理解就是服务器的数据端口20主动连接客户端的数据端口,来建立数据连接,用来传输数据,这个数据连接的建立有可能被客户端防火墙拦截掉。为了解决这个问题就衍生出另外一种连接模式---被动模式。被动模式也称为passive模式。

  • 第一步,客户端的命令端口N主动连接服务器命令端口21,并发送PASV命令,告诉服务器用“被动模式”,控制连接建立成功后,服务器开启一个数据端口P,通过PORT命令将P端口告诉客户端。
  • 第二步,客户端的数据端口N+1去连接服务器的数据端口P,建立数据连接。
  • 在这条红色的数据连接建立的过程中,服务器是被动的等待客户端来连接的,所以称这种模式为被动模式。

被动模式利弊

  • 被动模式对FTP客户端的管理有利,因为客户端的命令端口和数据端口都是“准出”,windows防火墙对于“准出”一般是不拦截的,所以客户端不需要任何多余的配置就可以连接FTP服务器了。
  • 但对服务器端的管理不利。因为客户端数据端口连到FTP服务器的数据端口P时,很有可能被服务器端的防火墙阻塞掉。

一、实验目的

  • 搭建FTP服务器
  • 与客户端共享文件

二、实验环境

  • Linux主机作为FTP服务器,ip地址:192.168.100.20

三、实验过程(如下)

第一步:FTP Server配置

一、使用yum安装方式

[root@pakho ~]# yum -y install vsftpd  #安装

二、准备需要分享的文件

[root@pakho ~]# cp hosts.sh  /var/ftp/  #复制桌面文件hosts到/var/ftp下
[root@pakho ~]# ls /var/ftp/            #查看
hosts.sh  pub                           #pub为公共文件 public hosts.sh为准备分享的文件

注:FTP服务器的主目录:"/var/ftp/" ,是FTP程序分享的本机目录

三、启动FTP服务

[root@pakho ~]# systemctl start vsftpd  #启动FTP服务
[root@pakho ~]# systemctl enable  vsftpd  #也可以设置为开机自启动

使用命令查看21号端口是否开启
20号端口没开是因为没开始传输数据

四、关闭防火墙!!!

[root@pakho ~]# systemctl stop firewalld    #立刻停止防火墙
[root@pakho ~]# systemctl enable firewalld  #开启关闭防火墙
[root@pakho ~]# setenforce 0                #关闭selinux
[root@pakho ~]# vim /etc/selinux/config     #通过配置文件永久关闭selinux

第二步:FTP 客户端配置、测试

一、LinuxFTP客户端程序 lftp测试

  • 打开一台新的虚拟机当客户机安装客户端

第一步:安装客户端工具

[root@611 ~]# yum -y install lftp     #lftp轻量级ftp工具

第二步:访问服务器

  • 首先作为客户端访问的服务器没有hosts这个文件
[root@611 ~]# ls #查看
inodetest.sh  john-1.9.0.tar.gz
  • 访问FTP服务器进行文件操作
[root@611 ~]# lftp 192.168.100.20           #访问FTP服务器的IP地址
lftp 192.168.100.20:~> ls                   #查看文件夹里的文件
-rw-r--r--    1 0        0             321 May 10 20:00 hosts.sh
drwxr-xr-x    2 0        0               6 Oct 13  2020 pub
lftp 192.168.100.20:/> get hosts.sh         #下载文件使用get
321 bytes transferred                       #提示321个字节已经传输完成
lftp 192.168.100.20:/> mirror pub           #下载目录使用mirror mirror:镜像
Total: 1 directory, 0 files, 0 symlinks     #提示1个文件夹已经传输完成 0个文件 0个链接
lftp 192.168.100.20:/> exit                 #完成后退出

注:访问FTP服务器的地址必须是准确地址否则访问错误的地址也提示访问成功

二、LinuxFTP客户端程序 wget测试

  • 先清除环境将刚才下载的文件删除为本次测试准备
    一切操作在客户端上执行
[root@611 ~]# rm -rf hosts.sh
[root@611 ~]# rm -rf pub/
  • 下载文件
[root@611 ~]# wget ftp://192.168.100.20/hosts.sh #使用wget下载文件名必须输全否则无法下载
  • 下载过程

三、windows客户端测试

  • 将文件拖至桌面打开也能看到内容说明搭建ftp服务器成功
    默认仅能下载文件

第三步 FTP优化:启用身份验证功能、上传下载功能

配置文件的操作

[root@pakho ~]# cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.backup  #备份
[root@pakho ~]# vim /etc/vsftpd/vsftpd.conf                       #进入ftp主配置文件

一、检查禁用匿名账户登录开启
目的:启用/禁用匿名账户(默认,比较方便)

anonymous_enable=YES/NO           #是否允许匿名用户开启或者关闭

二、配置上传指令

#anon_upload_enable=YES           #匿名用户启动上传文件的权限默认关闭
#anon_mkdir_write_enable=YES      #匿名用户启动创建目录的权限默认关闭

因为做实验的关系将其打开测试

设置完必须重启ftp服务

[root@pakho ~]# systemctl restart vsftpd #重启ftp

三、创建上传的目录

[root@pakho ~]# mkdir /var/ftp/upload  #准备一个文件夹 upload:上传
[root@pakho ~]# chmod 777 /var/ftp/upload/  #给文件夹提权 给可写权限就行

查看是否提权成功

四、客户端测试
换一台虚拟机!

[root@611 ~]# echo ftptest > ftptest.txt #创建一个需要上传的文件
[root@611 ~]# lftp 192.168.100.20        #进入ftp服务器
lftp 192.168.100.20:~> cd upload/        #进入upload上传文件夹
lftp 192.168.100.20:/upload> put ftptest.txt   #上传文件ftptest.txt
8 bytes transferred                            #提示上传成功
lftp 192.168.100.20:/upload> mkdir mltest      #创建文件夹
mkdir ok, `mltest' created                     #文件夹mltest创建成功
lftp 192.168.100.20:/upload> exit              #退出客户端

完成后进入服务器检查

以上是关于Linux网络服务——FTP服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章

Linux搭建FTP服务器

Linux搭建FTP服务器

linux 搭建ftp服务器和phpstorm搭建ftp服务

Linux中Centos7系统搭建FTP服务详细过程

Linux下FTP服务器搭建

Linux系统搭建FTP服务器