阿里云服务器Linux实例搭建FTP站点教程!

简介: vsftpd 是 Linux 下的一款小巧轻快、安全易用的 FTP 服务器软件。本教程以 CentOS 7.2 64位操作系统为例,说明如何在 Linux 实例上安装并配置 vsftpd。

vsftpd 是 Linux 下的一款小巧轻快、安全易用的 FTP 服务器软件。本教程以 CentOS 7.2 64位操作系统为例,说明如何在 Linux 实例上安装并配置 vsftpd


步骤一: 安装 vsftpd


  1. 远程连接并登录到 Linux 实例。
  2. 运行命令yum install -y vsftpd安装 vsftpd。出现下图表示安装成功。
  3. 运行以下命令进入/etc/vsftpd目录,并查看该目录下的文件。
    cd /etc/vsftpd
    ls


    说明

    • /etc/vsftpd/vsftpd.conf 是 vsftpd 的核心配置文件。
    • /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
    • /etc/vsftpd/user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器。

  4. 运行以下命令设置FTP服务开机自启动。
    systemctl enable vsftpd.service
  5. 运行以下命令启动 FTP 服务。
    systemctl start vsftpd.service
  6. 运行以下命令查看 FTP 服务监听的端口。
    netstat -antup | grep ftp


步骤二: 配置 vsftpd


vsftpd 安装后默认开启了匿名访问 FTP 服务器的功能。使用匿名访问,您无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。


本教程介绍了以下两种配置 vsftpd 的方法,并提供了相关的参数说明,您可以根据具体需要进行参考。


  • 配置匿名用户上传文件权限
  • 配置本地用户登录

配置匿名用户上传文件权限


匿名访问FTP服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到FTP服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。如果您需要配置匿名用户上传文件的权限,可以参考以下步骤配置:


  1. 修改/etc/vsftpd/vsftpd.conf
    1. 运行vim /etc/vsftpd/vsftpd.conf
    2. 按i 键进入编辑模式。
    3. 将写权限修改为write_enable=YES
    4. 将匿名上传权限修改为anon_upload_enable=YES
    5. 按Esc键退出编辑模式,然后输入:wq保存并退出文件。
  2. 运行以下命令更改/var/ftp/pub目录的权限,为 FTP 用户添加写权限,并重新加载配置文件。
    chmod o+w /var/ftp/pub/
    systemctl restart vsftpd.service


配置本地用户登录


本地用户登录是指用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。


vsftpd 安装后默认只支持匿名访问 FTP 服务器,如果您试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 服务拒绝。您可以参考以下步骤配置 vsftpd 服务,以使用Linux账号和密码访问FTP服务器。


  1. 运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。
    useradd ftptest
  2. 运行以下命令修改ftptest 用户的密码。
    passwd ftptest
  3. 创建一个供FTP服务使用的文件目录。
    mkdir /var/ftp/test
  4. 更改/var/ftp/test目录的拥有者为ftptest。
    chown -R ftptest:ftptest /var/ftp/test
  5. 输入命令vim /etc/vsftpd/vsftpd.conf打开vsftpd.conf配置文件并按键i进入编辑模式。
  6. 修改vsftpd.conf配置文件。

    FTP服务器可以配置为主动模式或被动模式。


    • 主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口。配置FTP为主动模式的参数如下:
      #禁止匿名登录FTP服务器
      anonymous_enable=NO

      允许本地用户登录FTP服务器

      local_enable=YES

      设置本地用户登录后所在的目录

      local_root=/var/ftp/test

      全部用户被限制在主目录

      chroot_local_user=YES

      启用例外用户名单

      chroot_list_enable=YES

      指定例外用户列表,这些用户不被锁定在主目录

      chroot_list_file=/etc/vsftpd/chroot_list

      配置其他参数

      allow_writeable_chroot=YES
      local_umask=022
      dirmessage_enable=YES
      xferlog_enable=YES
      connect_from_port_20=YES
      xferlog_std_format=YES
      listen=YES
      pam_service_name=vsftpd
      userlist_enable=YES
      tcp_wrappers=YES

    • 被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置FTP为被动模式的参数如下:
      #禁止匿名登录FTP服务器
      anonymous_enable=NO

      允许本地用户登录FTP服务器

      local_enable=YES

      设置本地用户登录后所在目录

      local_root=/var/ftp/test

      全部用户被限制在主目录

      chroot_local_user=YES

      启用例外用户名单

      chroot_list_enable=YES

      指定例外用户列表,这些用户不被锁定在主目录

      chroot_list_file=/etc/vsftpd/chroot_list

      开启被动模式

      pasv_enable=YES

      FTP服务器公网IP

      pasv_address=<FTP服务器公网IP>

      设置被动模式下,建立数据传输可使用port范围的最小值

      pasv_min_port=port number

      设置被动模式下,建立数据传输可使用port范围的最大值

      pasv_max_port=port number

      配置其他参数

      local_umask=022
      dirmessage_enable=YES
      xferlog_enable=YES
      xferlog_std_format=YES
      tcp_wrappers=YES
      allow_writeable_chroot=YES
      listen=YES
      listen_ipv6=NO
      pam_service_name=vsftpd
      userlist_enable=YES

      <blockquote> 
       <p><strong>说明</strong> 建议您把端口范围设在比较高的一段范围内&#xff0c;比如50000-50010&#xff0c;有助于提高访问FTP服务器的安全性。</p> 
      </blockquote> </li></ul></li><li>按Esc键退出编辑模式&#xff0c;然后按键<code>:wq</code>保存并退出文件。</li><li>运行<code>vim /etc/vsftpd/chroot_list</code>命令创建chroot_list文件&#xff0c;并写入不受只可以访问其主目录限制的例外用户名单。 


      说明 如果没有例外用户也必须要有 chroot_list文件,内容可为空。


    • 按键Esc退出编辑模式,然后按键:wq保存并退出文件。
    • 运行以下命令重启vsftpd服务。
      systemctl restart vsftpd.service

vsftpd.conf 的配置文件参数说明


运行命令cat /etc/vsftpd/vsftpd.conf查看配置文件内容。


用户登录控制:

参数 说明
anonymous_enable=YES 接受匿名用户
no_anon_password=YES 匿名用户login时不询问口令
anon_root=(none) 匿名用户主目录
local_enable=YES 接受本地用户
local_root=(none) 本地用户主目录

用户权限控制:

参数 说明
write_enable=YES 可以上传(全局控制)
local_umask=022 本地用户上传文件的umask
file_open_mode=0666 上传文件的权限配合umask使用
anon_upload_enable=NO 匿名用户可以上传
anon_mkdir_write_enable=NO 匿名用户可以建目录
anon_other_write_enable=NO 匿名用户修改删除
chown_username=lightwiter 匿名上传文件所属用户名

步骤三: 设置安全组


搭建好 FTP 站点后,您需要在实例安全组的入方向添加放行下列 FTP 端口的规则。


  • FTP 为主动模式时:端口21。
  • FTP 为被动模式时:端口21,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。

添加安全组规则的具体步骤,请参见添加安全组规则


步骤四: 客户端测试


您可以通过 FTP 客户端或浏览器访问 FTP 服务器进行测试。本教程以windows自带的IE(Internet Explorer)浏览器为例,分别为您介绍 FTP 服务器配置为主动模式或被动模式时的访问步骤。


FTP服务器为主动模式


  1. 打开客户端的 IE 浏览器。
  2. 将浏览器设置为主动访问模式。选择 设置 > Internet 选项 > 高级 。勾选 启用 FTP 文件夹视图,取消勾选 使用被动 FTP。
  3. 在地址栏中输入ftp://<FTP服务器IP地址>:FTP端口,例如:ftp://39.10.0.28:21
  4. 在弹出的对话框中,输入用户名和密码,即可对 FTP 文件进行相应权限的操作。

FTP服务器为被动模式


  1. 打开客户端的 IE 浏览器。
  2. 将浏览器设置为被动访问模式。选择 设置 > Internet 选项 > 高级 。勾选 启用 FTP 文件夹视图,勾选 使用被动 FTP。
  3. 在地址栏中输入ftp://<FTP服务器IP地址>:FTP端口,例如:ftp://39.10.0.28:21
  4. 在弹出的对话框中,输入用户名和密码,即可对 FTP 文件进行相应权限的操作。


说明 使用浏览器访问 FTP 服务器出错时,建议您清除浏览器缓存后再尝试。


 


云服务器ECS地址:阿里云·云小站


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
Linux
Linux——服务器时间不同步
Linux——服务器时间不同步
20 0
|
6天前
|
缓存 安全 Linux
本地YUM源大揭秘:搭建您自己的Linux软件宝库,从此告别网络依赖!一文掌握服务器自给自足的终极技能!
【8月更文挑战第13天】在Linux中,YUM是一款强大的软件包管理工具,可自动处理依赖关系。为适应离线或特定安全需求,本指南教你搭建本地YUM源。首先创建存放软件包的`localrepo`目录,复制`.rpm`文件至其中。接着,安装并运用`createrepo`生成仓库元数据。随后配置新的`.repo`文件指向该目录,并禁用GPG检查。最后,清理并重建YUM缓存,即可启用本地YUM源进行软件搜索与安装,适用于网络受限环境。
24 3
|
5天前
|
监控 Linux Shell
"揭秘!一键掌控Linux服务器健康的秘密武器——超实用系统检查脚本,让你的服务器稳如老狗,告别宕机烦恼!"
【8月更文挑战第14天】服务器宕机或资源耗尽会严重影响业务。为此,你需要一个Linux系统检查脚本来守护服务器健康。它可以自动检测潜在问题如磁盘满载、内存泄漏等,避免服务中断。脚本应包括磁盘空间、内存/CPU使用、系统时间准确性、关键服务状态及系统日志分析等检查项。通过编写并定期运行这样的脚本,可以显著提高服务器的稳定性和可靠性。
16 1
|
14天前
|
缓存 监控 网络协议
Linux性能大飞跃:揭秘系统优化秘籍,让你的服务器秒变性能怪兽,轻松应对万千挑战!
【8月更文挑战第5天】作为开源界的常青树,Linux以稳定高效著称,但也可能面临性能瓶颈。本文从五个维度探讨Linux优化:1) 更新系统与软件确保最新状态;2) 调整文件系统以适应应用需求;3) 根据具体需求调整内核参数;4) 利用工具管理进程与资源;5) 优化磁盘I/O性能。通过这些策略,可显著提升Linux系统的运行效率与响应速度,使其保持最佳状态。
41 7
|
17天前
|
安全 Linux Shell
Linux服务器 /etc/pam.d目录下的文件都是什么作用?
【8月更文挑战第2天】Linux服务器 /etc/pam.d目录下的文件都是什么作用?
40 2
|
4天前
|
存储 监控 Unix
|
4天前
|
安全 Linux Shell
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
10 0
|
10天前
|
Linux 网络安全 数据安全/隐私保护
Linux专栏03:使用Xshell远程连接云服务器
Linux专栏03:使用Xshell远程连接云服务器
19 0
|
12天前
|
Linux Python
解决Linux服务器中pip安装包后,能使用pip show packageName 却不能import
本文讨论了在Linux服务器中使用pip安装Python包后,通过pip show命令能查看包信息但无法import的问题,并提供了两种解决方法:一是解决因用户权限不一致导致的问题,二是解决因Python环境版本不匹配导致的问题。
22 0
|
12天前
|
关系型数据库 Linux 应用服务中间件
linux服务器下LNMP安装与配置方法
通过遵循上述步骤,你已经在Linux服务器上成功配置了LNMP环境。这只是初步设置,根据你的实际需求,可能需要进一步的调整与优化。记得经常检查每个组件的默认配置文件,并根据需要进行调整以优化性能和安全性。
11 0