网络协议——FTP(简介、搭建FTP服务端)

一、简介 

1、什么是FTP?

  • FTP(File Transfer Protocol,文件传输协议)
    • TCP/IP 协议组的协议之一。
    • 常用20(数据)、21(命令)端口作为通讯端口。(22为SSH端口)
    • FTP分为服务端和客户端。
    • 以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。
    • 用户不能成为服务端计算机中的正常用户。
  • 工作机制
    • 使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应)。
    • 整个交互的 FTP 会话中,控制连接始终是处于连接状态的,数据连接则在每一次文件传送时先打开后关闭。

2、作用

  • 服务端的文件上传与下载。
  • 两台计算机间的文件共享。
  • 家庭照片远程存储。

3、缺点

  • 无法自动检测传输
    • FTP拥有ASCII和BINARY两种传输模式,图片和执行文件必须用BINARY模式,CGI脚本和普通HTML文件用ASCII模式上传。
  • 报文明文传输
    • FTP报文在传输过程中是不进行加密的,通过抓包软件能够直接查看报文内容,甚至FTP的用户名/密码。
  • 大文件传输不可靠
    • FTP在传输超过2G文件时,可能出现提示传输成功,但实际文件未完全传输的情况,所以在传输大文件时需要人为的分解文件,分别传输。

4、服务端与客户端

  • FTP服务端
    • 存储相应文档、图片及文件,并将存储目录分享给客户端进行访问的计算机或者服务器。
  • FTP客户端
    • 从FTP服务端上传或下载相应文档、图片及文件的计算机。

二、主动模式和被动模式

  • 这两种模式的主要区别在于如何建立数据连接。(服务器主动或被动)
  • 主动模式
    • 在主动模式下,FTP客户端会向服务器发起连接并建立控制通道(通常是通过端口21)。当客户端需要传输数据时,它会通过控制通道告诉服务器客户端正在监听的IP地址和端口号。服务器随后会从其数据端口(通常是20)主动连接到客户端提供的数据端口。
    • 服务端 连接到 客户端 的端口。
    • 问题:主动模式在某些情况下可能会被防火墙阻挡,因为服务器主动连接客户端的端口,可能会被防火墙认为是未经请求的连接。并且大多数的客户端没有独立的公网IP。
  • 被动模式
    • 在被动模式下,客户端和服务器仍然会首先建立控制通道。不同的是,当需要传输数据时,客户端请求服务器进入被动模式(通过发送PASV命令)。服务器在接收到该命令后,会打开一个随机的非特权端口并通知客户端(1024以上)。随后,客户端会主动连接到服务器的该端口来建立数据通道。
    • 客户端 连接到 服务端 的端口。
    • 优点:被动模式通常能更好地穿透防火墙和NAT(网络地址转换)设备,因为所有连接都是由客户端发起的,这样防火墙和NAT设备更容易处理。
  • 选择何种模式
    • 主动模式:适用于客户端能够直接接受外部连接的情况,且没有严格的防火墙限制。
    • 被动模式:适用于客户端在防火墙后面,或无法接受外部连接的情况。

三、搭建FTP服务端

  • 在Win7虚拟机上搭建FTP服务端,并通过本机进行访问。
  • 虚拟机:控制面板 -> 程序和功能 -> 打开或关闭Windows功能
  • 勾选下面的功能。
  • 打开计算机管理。
  • 添加FTP站点,物理路径是在虚拟机中要共享的文件夹。
  • 设置虚拟机的ip,端口保持为21不变,启用虚拟主机名项可以不必勾选,自动启动FTP站点可以勾选,SSL可以选择无SSL。
  • 身份验证勾选匿名和基本,允许访问项设置为所有用户,勾选读取和写入权限。
  • 这时可以看到,FTP站点已经创建成功并正常运行。
  • 设置允许FTP服务器通过防火墙。找到防火墙,点击进入允许程序通过Windows防火墙。勾选列表中FTP服务器,确定。
  • 右键浏览FTP服务器,可以看到之前设置的物理文件夹。
  • 放入需要传输的文件。
  • 本机:先查询虚拟机的ip地址,以供本机访问。
  • 打开文件资源管理器中输入FTP服务器的地址,ftp:// [虚拟机的IP地址],回车即可访问。
好的,我可以回答您关于Linux网络实战中FTP服务器搭建的问题。首先,我们需要在Linux系统上安装FTP服务器软件。常用的FTP服务器软件有vsftpd、proftpd、pure-ftpd等。这里以vsftpd为例,介绍FTP服务器的搭建过程。 1. 安装vsftpd软件 在Linux系统上使用以下命令安装vsftpd软件: ``` sudo apt-get install vsftpd ``` 2. 配置vsftpd 在安装完成后,需要对vsftpd进行配置。配置文件一般位于/etc/vsftpd.conf。可以使用以下命令进行编辑: ``` sudo nano /etc/vsftpd.conf ``` 在编辑器中,您可以设置FTP服务器的参数,例如允许匿名访问、允许本地用户访问、设置FTP根目录等。 3. 启动vsftpd服务 配置完成后,需要启动vsftpd服务。可以使用以下命令启动服务: ``` sudo service vsftpd start ``` 4. 防火墙设置 如果您的Linux系统启用了防火墙,需要设置FTP服务器的防火墙规则,允许FTP数据传输的端口通过防火墙。一般FTP数据传输使用的是20和21端口。可以使用以下命令设置防火墙规则: ``` sudo ufw allow 20/tcp sudo ufw allow 21/tcp ``` 5. 测试FTP服务器 在FTP服务器搭建完成后,可以使用FTP客户端测试FTP服务器是否正常工作。您可以使用Linux系统自带的FTP客户端命令进行测试。例如: ``` ftp IP地址 ``` 其中IP地址为您的FTP服务器所在主机的IP地址。在连接成功后,您可以使用FTP客户端进行文件上传、下载等操作。 希望以上内容能够帮到您。如果您有其他问题,欢迎继续向我提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恣睢s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值