Centos 7 FTP(vsftp)服务安装及配置

前端之家收集整理的这篇文章主要介绍了Centos 7 FTP(vsftp)服务安装及配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

作为前端工程师,要想在中国有一席之地,你不得不作出不可能的努力,把自己变成一个全能的人。你不仅仅要会 HTML、CSS、JavaScript、PhotoShop、Node.js、Angular.js、以及各种前端流行框架如Boostrap、Kube、UIKIT、amazeui 等等,你还得会配置服务器Linux、Windows。所以下面我们变来聊聊的服务器的配置,在本文中我们要介绍的是在 Centos 7 下安装及配置 FTP 服务。

提示FTP服务的软件有很多,在这里我就以 vsftp 为例。并且是在 centos 7 环境下安装的。

服务器端 FTP

vsftp 安装

 
 
# yum install vsftpd

输入上面的安装代码后,不久会有类似is this ok[y/N]:直接输入Y继续就可以了。

vsftp 配置

安装完之后我们就可以进入FTP的配置文件作相关配置了。

# vi /etc/vsftpd/vsftpd.conf

定位到

  
  
  • anonymous_enable=YES

    按下键盘i盘进入编辑模式 把YES改成NO

    NO

    这样就可以了。这里的anonymous_enable=NO意思是不允许匿名登录FTP

    设置完以后,按下 Esc 退出编辑模式,再按下:wq保存退出

    接下来我们就可以启用这个 vsftp 服务了。

    # systemctl start vsftpd.service

    为了避免我们重启服务器后忘记开启FTP服务,我们可以让FTP服务在服务器每次重启后都自动启动。

    # systemctl enable vsftpd.service

    创建用户

    接下来我们就要以创建一个用户,并给这个用户指定一个目录。

    # useradd -d /var/www/html/yunkus.com -s /sbin/nologin yunkus

    -s:禁止用户登录SSH的权限
    /sbin/nologin:不允许此用户登录系统,但可以登录FTP

    设置用户密码

    用户创建好后,我们还得给他设置一个登录密码

    # passwd yunkus

    回车,输入密码即可(需输入两次)
    这样就完成了服务器端的FTP服务的配置

    客户端 FTP

    filezilla 安装

    接下来我们得在客户端通过 FTP 软件来访问刚刚为 yunkus 用户创建好的指定目录了。在这里我用 filezilla 作为例子,来给大家讲解下在客户端,也就是我们常常说的本地,怎么往服务器里上传文件。下载链接https://www.filezilla.cn/download

    filezilla 配置

    打开filezilla,点击左下角的【新站点】,在右边主机一栏写上你的服务器IP如1.1.1.1,端口号如:21,协议一栏默认就好,加密一栏默认就好。登录类型选择帐号,用户一栏填上刚创的用户名yunkus,密码同样道理,帐号一栏填yunkus,点击【连接】就可以了。如图:

    FTP 问题整理

    但当你开心的等待着光明的到来这时,却被告知无法连接。这又是哪一出呢?莫慌,我们去配置下防火墙就好了。因为防火墙没配置FTP端口号规则。

    # vi /etc/sysconfig/iptables

    按“i”切换到编辑模式

    添加一个端口 21

      
      
  • -A INPUT p tcp m state --state NEW m tcp dport 21 j ACCEPT

    按 ESC 键退出编辑模式,然后输入:wq退出保存。

    重启防火墙服务

    # systemctl restart iptables.service

    查看防火墙服务状态

    # systemctl status iptables.service

    现在试试,是不是畅通无阻,直通yunkus站点目录呢?祝你好运。可以当你想修改目录下的一些文件,或者在这个目录下进行操作时,你会被告知,操作失败。这是因为我们还没有给yunkus 这个站点目录添加相关的权限。

    # chown yunkus /home/yunkus

    这行命令的作用就是更改我们刚创建的yunkus目录的所有者。

    很奇怪,当我重装Centos 7 系统后,装完vsftp服务,想通过匿名用户连接FTP时,却被告知

    状态: 正在连接 114.112.28.91:21…
    状态: 连接建立,等待欢迎消息…
    状态: 已登录
    状态: 读取目录列表…
    命令: PWD
    响应: 257 “/”
    命令: TYPE I
    响应: 200 Switching to Binary mode.
    命令: PASV
    响应: 227 Entering Passive Mode (114,112,28,91,64,179).
    命令: LIST
    错误: 20 秒后无活动,连接超时
    错误: 读取目录列表失败

    这是为什么呢?当我把防火关掉之后,再用匿名用户访问时,却又可以。新建一个用户也是如此。只有关闭了防火墙才可以读取目录列表。

    更改目录权限为755没用。但当我把ftp的目录放在home目录下时,就不会出现上面“读取目录列表失败”的提示,并且又可以访问目录了。

    2.当我修改了/etc/vsftpd/vsftpd.conf 里面的代码去掉chroot_local_user=YES、chroot_list_enable=YES 和chroot_list_file=/etc/vsftpd/chroot_list 前面的 # (如下),并在/etc/vsftpd/里新建一个chroot_list文件

      
      
  • chroot_local_userYESchroot_list_enableYES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list

    又不可以打开了,FTP链接提示

      
      
  • 500 OOPS: vsftpd refusing to run with writable root inside chroot()

    搜索了下这个问题,有这样的解释:

    从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了

    通过如下命令行可以解决

    chmod aw homeuser

    user 是你自己创建的目录,如本文例子中是yunkus,这样后你就可能通过FTP链接了,但问题又来了,链接FTP后本该自动跳到/home/yunkus,但却自动跳到根目录下。还有一个问题当执行完个 chmod a-w /home/yunkus 后发现虽然可以列出目录,但操作/home/yunkus时(上传文件删除文件等等),提示“严重文件传输错误”。当我把、home/yunkus这个目录的权限设置回 755 ,并且开启了限制用户的根目录时

    chroot_list

    提示:“500 OOPS: vsftpd: refusing to run with writable root inside chroot() 严重错误: 无法连接到服务器”。最后还是找到了解决方法 当运行下面的命令行后,

    chmod R 755yunkus

    再编辑下/etc/vsftpd/vsftpd.conf 这个文件

    vi etc.conf

    在chroot_local_user=YES 后追加下面一行代码

    allow_writeable_chrootYES

    保存退出,重启下vsftpd服务。现在你就可以上传删除目录下的文件了,也就是说你可以操作这个目录了。让我意外的是在这个过程中也无意中完成了另一个功能,就是用户根目录的配置,这个问题也耗了我不少时间,一直都没得到解决,还真是应了那句话,越折腾越幸运。到这里vsftpd服务就基本搞定了。


    更新于:10:44 2017/2/8

    最总结

    上面说了那么多,可能会让你感觉到有点乱,下面我就把上面一堆东西整理成几句话。

    要想实现ftp的文件上传功能,你只需要按照下面的操作步骤就可以了。

    1.创建一个目录

    mkdir wwwNginxyunkuscom

    2.创建一个FTP用户

    useradd d com s sbinnologin yunkusftp

    3.更改目录所有者及目录权限

    
     
     <!--更改目录所有者-->chown yunkusftp /home/www/Nginx.yunkus.com<!--更改目录权限-->chmod -R 755 /home/www/Nginx.yunkus.com

    4.修改vsftpd的配置文件

    vim conf

    5.修改内容

    
      
      
  • <!-- YES 改成 NO -->anonymous_enable=NO<!-- 去掉前面的# -->chroot_local_user=YES<!--添加下面一行代码-->allow_writeable_chroot=YES
  • 完成以上步骤你就可以通过FTP来上传文件了。

    相关资料

    视频教程:安装与配置 FTP 服务器

    FileZilla:https://filezilla-project.org/

    猜你在找的CentOS相关文章