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服务器搭建相关推荐

  1. Linux网络实战- FTP服务器搭建

    FTP服务器是互联网上提供文件存储和访问访问的计算机,它们依照FTP协议提供服务,FTP是(文件传输协议).顾名思义,就是专门用来传输文件的协议,简单来说,支持FTP协议的服务器就是FTP服务器. v ...

  2. Linux网络实战——Samba服务器搭建

    Linux网络实战--Samba服务器搭建 安装Samba服务软件 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Message ...

  3. Linux实验整理——FTP服务器搭建

    三.实验内容 1.使用NAT方式,连接网络. 2.使用FTP命令 172.17.60.253,练习put .get. mput. mget. lcd. ls. cd等命令 3.配置FTP服务器,要求实 ...

  4. 云服务ftp服务器搭建_在阿里云服务器搭建FTP服务器,在本地电脑连接并操作

    首先你需要有一个阿里云的ECS服务器 并且开通了公网宽带(话说也不贵,开来玩玩还是可以的,第一次买会比较便宜,第二次买1M的宽带两天是九毛多吧~) 开通了宽带之后,ECS服务器就可以上网了 如果嫌弃阿 ...

  5. 云服务ftp服务器搭建_如何在阿里云服务器搭建FTP服务器,在本地电脑连接并操作...

    首先你需要有一个阿里云的ECS服务器 并且开通了公网宽带(话说也不贵,开来玩玩还是可以的,第一次买会比较便宜,第二次买1M的宽带两天是九毛多吧~) 开通了宽带之后,ECS服务器就可以上网了 如果嫌弃阿 ...

  6. 【Linux网络服务】Centos7搭建yum服务器

    yum服务器概述 yum软件仓库通常借助HTTP或FTP来进行发布,这样可以面向网络中的所有客户机提供软件源服务.为了便于客户机查询软件包,在软件仓库中需要提供仓库数据,其中手机了目录下所有rpm包的 ...

  7. linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...

    第五章 FTP服务器搭建 1.看看是否已经安装FTP服务器 service vsftpd start ftp localhost 如果不认识ftp命令是因为没有安装ftp的client包,需要拿安装光 ...

  8. Linux(centos7.4)上FTP服务器搭建(使用yum)

    Linux(centos7.4)上FTP服务器搭建(使用yum) 安装步骤 1.安装 $ yum -y install vsftpd 2.备份配置 cp /etc/vsftpd/vsftpd.conf ...

  9. Linux网络服务_邮件服务器-Redhat Enterprise 5.9

    Linux网络服务_邮件服务器-Redhat Enterprise 5.9 案例环境: 邮件服务器:mail.tarena.com192.168.1.100 邮件域:@tarena.com 邮件账号: ...

最新文章

  1. 机器人流程自动化崛起,中国是否准备好迎接智能自动化时代?
  2. Mysql性能优化二
  3. 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...
  4. 【Python五篇慢慢弹】数据结构看python
  5. java 创建定时器_SpringBoot创建定时任务
  6. RandomShuffleQueue '_1_input/shuffle_batch/random_shuffle_queue' is closed and has insufficient elem
  7. android https详解,如何使用HTTPS和HTTP来解析Android中的JSON数据?
  8. Elasticsearch-head插件的安装与使用
  9. [常用知识]如何在Eclipse、myEclipse中分别配置Tomcat和JBoss应用服务器
  10. 360影视php采集接口,基于360影视采集实例
  11. OpenCV保存H264视频的问题
  12. GitHub中文社区
  13. libcef-编译运行模式-MTD/MT-MDD/MD
  14. 开发撞墙之奇怪的需求:经纬度带符号转换
  15. MNN Interpreter and Session
  16. 第一次写,好不容易,最基本的C++题目
  17. HI3516DV300笔记(四)修改uboot环境变量
  18. python【第七篇】网络编程
  19. 解决Partially written block xxx being set for retirement(dm365)
  20. SFM之通过exif获取初始焦距

热门文章

  1. vlc-android源码git下载
  2. 使用 LaTeX 的笔记
  3. 数据库实验三 数据查询一
  4. 解读2018:13家开源框架谁能统一流计算?
  5. 基于SSM生产计划排程管理系统
  6. SuperMap Desktop制作地图
  7. 网页调用迅雷的JS(支持客户端版和网页版)
  8. 骨骼动画——2D Animation
  9. FPGA时钟设计方案
  10. cdh6.1,cdh6.2 hue sqoop组件提交异常