反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

Linux系统安装配置FTP

  • 文档创建者:susie
  • 历史版本:28
  • 最近更新:Carly 于 2023-01-31
  • 1. 概述

    学习视频:Linux系统安装配置FTP

    1.1 版本

    报表服务器版本
    10.0

    1.2 应用场景

    • 定时任务完成后,希望把生成的附件上传到其他服务器的 FTP 上面,需要提前准备已配置的 FTP 服务器。

    • 配置开启集群 若选择文件服务器共享,协议选择 FTP 时,需要提前准备已配置的 FTP 服务器。

    1.3 功能简介

    VSFTP 是一个基于 GPL 发布的类 Unix 系统上使用的 FTP 服务器软件,它的全称是 Very Secure FTP,从名称上可以看出安全性是编写 VSFTP 的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是 VSFTP 的两个重要特点。

    注:安装 vsftpd 需要使用最高用户(root),否则不能进行。

    2. 操作步骤

    2.1 安装 FTP

    2.1.1 联网安装

    rpm -qa |grep vsftpd   # 检查是否已安装 ftp
    yum install vsftpd -y   # 使用 yum 安装 ftp

    2.1.2 离线安装

    下载安装包:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd (根据系统选择对应 rpm 包)

    例如:vsftpd-2.2.2-24.el6.x86_64.rpm:vsftpd-2.2.2-24.el6.x86_64.rpm

              vsftpd-3.0.2-22.el7.x86_64.rpm :vsftpd-3.0.2-22.el7.x86_64.rpm

    rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm  # 安装 vsftpd 请按照实际 rpm 包的名称写命令

    2.2 修改配置

    编辑 vsftpd.conf 配置文件,将anonymous_enable值改为 NO ,禁止匿名登录。

    vi /etc/vsftpd/vsftpd.conf   # 编辑vsftpd.conf配置文件
    anonymous_enable=NO   # 禁止匿名登录

    1628575583706995.png

    详情见:vsftpd.conf 配置手册

    2.3 新增 FTP 用户并启动 vsftpd 服务

    1)新增 FTP 用户

    useradd ftpuser   # 新建名为 ftpuser 的用户,并自动建立/home/ftpuser 目录
    passwd ftpuser   # 设置该用户的密码

    然后连续两次输入要给该用户设置的密码即可,使用 ftpuser 的账户密码可以登录并使用 ftp 服务。

    注1:平台配置集群的时候使用的用户名和密码是上文新增的用户名和密码,本文中默认用户名为ftpuser。

    注2:vsftpd 会禁止一些用户登录使用FTP(默认为root、bin、daemon、adm、lp、sync、shutdown、halt、mail、news、uucp、operator、games、nobody),如果想使用这些用户名登录,请检查/etc/vsftpd/ftpusers和/etc/vsftpd/user_list文件中是否存在该用户名,并使用“#”屏蔽。

    2)启动 FTP

    使用以下语句启动vsftpd服务

    • 若能成功启动,则不会返回任何信息。

    • 若启动失败,则会返回报错信息。

    systemctl restart vsftpd.service  # 启动vsftpd服务

    2.4 拷贝 WEB-INF,给文件夹赋权限

    1)拷贝正式环境 Web 工程里的 WEB-INF 文件夹,并粘贴到/home/ftpuser目录下,在平台开启文件服务器时,FTP 路径填写 /home/ftpuser/WEB-INF

    2)赋予权限

    chmod -R 777 /home/ftpuser  #给 ftpuser 文件夹赋予写入权限

    注:如果考虑安全性,不能给 777 权限,可以只给 755 权限,命令是 chmod -R 755 /home/ftpuser,但是拷贝 WEB-INF 文件时务必使用 ftp 用户,否则会因为文件归属问题导致不能写入。

    配置 chroot_list 禁止或者允许用户访问上层目录,配置方法请参见:vsftpd:禁止或允许用户访问上层目录

    2.5 测试是否成功

    前提是 FTP 所在服务器防火墙已开放 20、21 端口,此处提供两种方式:

    1)用 FTP 工具连接,比如 Xftp 之类的进行登录 FTP 用户。

    2)在能访问该 IP 的电脑上直接打开一个文件夹,地址里输入ftp://ip

    用上面两种方式连接 FTP 后,新建和删除文件夹确认有读写权限,则表明 FTP 部署成功。

    3. 运维知识

    service vsftpd status   # 查看 ftp 的状态
    service vsftpd start   # 启动服务
    service vsftpd stop   # 停止服务
    service vsftpd restart   # 重启 ftp
    chkconfig vsftpd on   # 设为开机启动

    更多运维知识参见:集群运维手册-Linux 版

    4. 注意事项

    4.1 关闭 SELinux

    注意:登录 ftp 操作文件报错“550 create directory operation failed”或者无法登录以及开启777权限以后仍然没有读写权限考虑以下操作。

    这是 SELinux(Security-Enhanced Linux,是美国国家安全局对于强制访问控制的实现,是 Linux 上最杰出的新安全子系统)安装机制问题,需要关闭 SELinux。

    1)永久关闭 SELinux 的方式

    vi /etc/selinux/config # 编辑 SELinux 的 config 文件
    SELINUX=enforcing --> SELINUX=disabled  # 永久关闭 SELinux 重启系统生效

    2)临时关闭 SELinux 的方式

    setenforce 0 # 执行命令,仅临时关闭,重启后又会恢复原状

    3)不关闭 SELinux

    getsebool -a | grep ftpd # 查询的结果中,只有 ftp_home_dir 和 allow_ftpd_full_access 必须为 on 才能使 vsftpd 具有访问 ftp 根目录,以及文件传输等权限
    setsebool -P ftp_home_dir 1 # 执行即可
    setsebool -P allow_ftpd_full_access 1 # 执行即可

    注:更多 SELinux 相关的知识请参见: SELinux 入门

    4.2 常见问题

    1)其它工具登录 FTP 慢,平台配置 FTP 失败,报错:Invalid config!

    用户名密码访问的时候,ftp服务器如果开启了dns反向解析,就会去查找你是不是从合法 IP 来访问的,内网情况下会出现超时的情况。

    编辑 vsftpd.conf 加一句 reverse_lookup_enable=NO,然后重启 FT。

    2)查看 FTP 状态时报错信息如下:

    Jul 25 22:34:20 localhost vsftpd: pam_shells(vsftpd:auth): /etc/shells is either world writable or not a normal file
    Jul 25 22:45:29 localhost vsftpd: pam_listfile(vsftpd:auth): /etc/vsftpd/ftpusers is either world writable or not a normal file
    Jul 25 22:46:28 localhost vsftpd: pam_listfile(vsftpd:auth): /etc/vsftpd/ftpusers is either world writable or not a normal file

    chmod 664 /etc/vsftpd/ftpusers,然后重启 vsftpd 。

    4.3 FTP 工作模式

    FTP 分为主动 (PORT)和被动(PASV)两种工作模式,服务器只开 20 和 21 端口时,无法使用 PASV 方式。此时连接 FTP 会报错:

    ftp> dir
    227 Entering Passive Mode (10,110,97,66,13,162).
    ftp: connect: Connection refused

    解决方案有两个:

    1)方案一
    关闭被动模式,启用主动模式。输入ftp回车后,输入下方代码:

    1572242082169302.png

    2)方案二

    开启 21 端口和任何大于1024 的端口,再通过 passive 开启 FTP 被动模式

    备注:因为被动模式传输速度大于主动模式,推荐方案二。

    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526