Linux基础 - 使用 vsftpd 服务传输文件

发布于:2024-06-28 ⋅ 阅读:(14) ⋅ 点赞:(0)

零. 简介

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的标准网络协议。

FTP 允许客户端和服务器之间进行文件的上传、下载、删除、重命名等操作。它基于客户端 - 服务器模型工作,通常使用 TCP 协议进行可靠的数据传输。

FTP 有两种工作模式:主动模式(PORT 模式)和被动模式(PASV 模式)。在主动模式下,客户端向服务器发送端口信息,服务器主动连接客户端的指定端口进行数据传输;在被动模式下,服务器向客户端告知可用的端口,客户端连接服务器指定的端口来进行数据传输。

FTP 的优点包括:

  1. 广泛支持:几乎所有操作系统和网络设备都支持 FTP 协议。
  2. 易于使用:有许多现成的 FTP 客户端软件可供选择,使用相对简单。

然而,FTP 也存在一些缺点:

  1. 安全性较低:数据传输通常是明文的,容易被窃取。
  2. 不适合大文件传输:在传输大文件时可能会出现性能问题。

随着技术的发展,一些更安全和高效的文件传输协议和方法逐渐出现,如 SFTP(SSH File Transfer Protocol)、FTPS(FTP over SSL/TLS)等,但 FTP 因其历史悠久和广泛的兼容性,仍然在许多场景中被使用。

vsftpd(Very Secure FTP Daemon)是一款运行在 Linux 操作系统上的功能强大且安全的 FTP 服务器软件。

vsftpd 具有以下一些显著特点和优势:

  1. 安全性高:它遵循了严格的安全标准,对访问控制、权限管理等方面进行了精心设计,减少了潜在的安全风险。
  2. 性能出色:能够处理大量并发连接,在高负载情况下仍能保持稳定和高效的文件传输。
  3. 配置简单:通过修改其配置文件 /etc/vsftpd.conf ,可以轻松地满足各种不同的需求和场景。
  4. 支持多种模式:例如匿名访问模式和本地用户访问模式等,具有较高的灵活性。
  5. 占用系统资源少:对服务器的资源消耗较低,不会对系统性能造成过大的负担。

vsftpd 常用于以下场景:

  1. 企业内部文件共享:为企业内部员工提供安全、高效的文件传输和共享服务。
  2. 网站文件更新:方便网站管理员上传和下载网站相关的文件。
  3. 数据备份与恢复:作为一种可靠的方式来备份和恢复重要的数据。

总的来说,vsftpd 是一款在 Linux 环境中广泛应用且备受好评的 FTP 服务器软件,能够为用户提供稳定、安全和高效的文件传输服务。

一. 安装vsftpd

  1. 安装 vsftpd 服务:
    在不同的 Linux 发行版中,安装命令可能有所不同。例如,在 Ubuntu 中,可以使用以下命令安装:

   sudo apt-get install vsftpd
  1. 配置 vsftpd :
    主要的配置文件是 /etc/vsftpd.conf 。可以根据需求修改一些常见的配置选项,例如:

    • 允许匿名用户访问:anonymous_enable=YES
    • 允许本地用户登录:local_enable=YES
    • 允许写入:write_enable=YES
  2. 启动 vsftpd 服务:
    不同的发行版启动服务的命令可能有所不同。在 Ubuntu 中,可以使用以下命令:

   sudo systemctl start vsftpd
  1. 设置防火墙规则(如果有防火墙):(我把防火墙全部关闭了)

  2. 确保防火墙允许 FTP 服务使用的端口(默认是 20 和 21 端口)的访问。

  3. 在客户端使用 FTP 客户端软件连接:
    可以使用诸如 FileZilla 等 FTP 客户端工具,输入服务器的 IP 地址、用户名和密码进行连接。

连接成功后,您就可以在客户端和服务器之间进行文件的上传和下载操作了

二. window连接ftp

1.下载ftp客户端

客户端 - FileZilla中文网

选择一个适合自己的版本

我下的绿色版,解压到本地

2.打开

3.配置

4. 连接成功

5.下载文件

选择文件,右键下载

6.下载成功

7.上传文件

打开配置文件

打开 write_enable = YES

修改完配置 重启

sudo /etc/init.d/vsftpd restart

直接鼠标左键拖进去即可

8.上传成功

三. 总结

在 Ubuntu 中安装vsftpd(Very Secure FTP Daemon)可以按照以下步骤进行:

打开终端,运行以下命令安装vsftpd

sudo apt-get update

sudo apt-get install vsftpd

安装完成后,启动VSFTPD服务:

sudo systemctl start vsftpd

(可选)创建用户主目录并设置权限(例如,创建/home/uftp作为用户主目录):

sudo mkdir /home/uftp

sudo chmod 775 /home/uftp

创建 FTP 用户并设置密码:

sudo adduser -m -d /home/uftp -s /bin/sh -g root uftp(添加用户,-m表示创建用户主目录,-d指定主目录路径,-s指定用户登录的 shell,-g指定用户所属的组)

sudo passwd uftp(设置用户密码)

修改vsftpd配置文件/etc/vsftpd.conf

sudo vi /etc/vsftpd.conf

一些重要的配置选项如下:

  • anonymous_enable=NO:禁止匿名登录 FTP 服务器(可选,根据需求决定是否禁止匿名访问)。
  • local_enable=YES:允许本地用户登录 FTP 服务器。
  • write_enable=YES:允许登录用户有写的权限(启用上传功能)。
  • 若要限制用户在主目录下,可使用以下配置:
    • chroot_local_user=YES
    • chroot_list_enable=YES
    • chroot_list_file=/etc/vsftpd.chroot_list
      /etc/vsftpd.chroot_list文件中列出的用户可以跳出主目录,未在文件中列出的用户不允许跳出主目录。

重启vsftpd服务,使配置生效:

sudo systemctl restart vsftpd

(可选)如果系统启用了防火墙(如ufw),需要打开 FTP 的数据端口:

sudo ufw allow 20/tcp

sudo ufw allow 21/tcp

在 Windows 端远程连接 Ubuntu 并进行文件上传下载,可以使用 FileZilla 等 FTP 客户端软件。具体步骤如下:

  1. 在 Windows 上下载并安装 FileZilla 客户端。

  2. 打开 FileZilla 软件,选择“文件”->“站点管理器”->点击“新增站点”,然后配置连接参数,包括主机(Ubuntu 服务器的 IP 地址)、用户名、密码、端口(默认为 21)等。

  3. 点击“连接”,如果连接成功,就可以看到 Ubuntu 服务器上的文件和目录。

  4. 要从 Windows 上传文件到 Ubuntu,直接在左侧把 Windows 下的目录文件拖到右侧 Ubuntu 中指定的目录即可;要从 Ubuntu 下载文件到 Windows,在右侧选择要下载的文件或目录,拖到左侧 Windows 的相应位置。

在实际操作过程中,可能会遇到一些问题,例如连接失败、权限问题或文件名乱码等。常见的解决方法包括:

  • 确保 Ubuntu 端的vsftpd服务已正确安装、配置并启动。
  • 检查网络连接,确保 Windows 能够ping 通 Ubuntu 服务器的 IP 地址。
  • 若文件名出现乱码,可在 FileZilla 的站点管理器中,选择对应的站点,在“字符集”选项中选中“强制 UTF-8”。
  • 如果遇到权限问题,检查/etc/vsftpd.conf文件中的权限设置,以及相关目录的权限。

另外,除了使用 FTP 方式,还可以通过 SSH 方式实现 Windows 与 Ubuntu 之间的远程连接和文件传输。但这种方式需要在 Ubuntu 上安装并配置 SSH 服务器,而 Windows 端也需要使用支持 SSH 的客户端软件。

需注意,在进行任何远程连接和文件传输操作时,确保你有足够的权限并且了解相关的安全风险。同时,保护好服务器的登录凭据,以防止未经授权的访问。