美文网首页
centos搭建ftp服务器

centos搭建ftp服务器

作者: 殷俊杰 | 来源:发表于2017-10-26 23:06 被阅读0次

    快速搭建FTP服务器

    一:安装vsftpd

    查看是否已经安装vsftpd
    rpm -qa | grep vsftpd
    若安装了vsftp,使用这个命令会在屏幕上显示vsftpd的版本
    使用命令rpm -e vsftpd 即可卸载ftp
    再使用rpm -qa|grep vsftpd 查看系统是否已删除ftp,若删除成功,屏幕上
    如果没有,就安装,并设置开机启动
    yum -y install vsftpd
    chkconfig vsftpd on

    二、配置防火墙

    • centos6的方式
      打开/etc/sysconfig/iptables文件
      vi /etc/sysconfig/iptables
      在REJECT行之前添加如下代码,就是把前面的复制一行改一下端口号
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
      保存和关闭文件,重启防火墙
      service iptables restart
    • centos7的方式
      firewall-cmd --zone=public --add-port=21/tcp --permanent
      重启防火墙
      firewall-cmd --reload

    三、配置vsftpd服务器

    默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。
    vi /etc/vsftpd/vsftpd.conf

    #chroot_list_enable=YES
    # (default follows)
    #chroot_list_file=/etc/vsftpd.chroot_list

    改为
    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd/chroot_list

    顺便一提

    在/etc/vsftpd/vsftpd.conf配置文件中
    write_enable=yes,
    anon_upload_enable=yes,
    anon_mkdir_wirte_enable=yes,
    这三个条件让匿名用户和虚拟用户具有可以上传的权限。

    四、添加ftp用户并赋权限

    1. 添加ftpuser用户,设置根目录为/home/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
      useradd -d /home/data -g ftp -s /sbin/nologin ftpuser
    2. 设置用户口令
      passwd ftpuser
    3. 赋予用户文件夹权限
      chown ftpuser:root /home/data
      chmod -R 775 /home/data

    五、编辑文件chroot_list:

    vi /etc/vsftpd/chroot_list
    内容为ftp用户名,每个用户占一行,如:
    peter
    john

    设置ftp权限
    setsebool -P allow_ftpd_full_access 1

    六、重新启动vsftpd

    • centos6
      service vsftpd restart
    • centos7
      systemctl restart vsftpd

    七、连接过程中可能会出现的错误

    1、500 OOPS: cannot change directory:/home/**
    解决方法:
    在终端输入命令:

    setsebool -P ftpd_disable_trans 1
    service vsftpd restart
    

    就OK了!
    原因:这是因为服务器开启了selinux,这限制了FTP的登录。

    如果提示

    #setsebool -P ftpd_disable_trans 1
    Boolean ftpd_disable_trans is not defined
    

    则查询selinux

    image.png
    setsebool -P ftp_home_dir 1 image.png
    再重启vsftpd服务就行了
    service vsftpd restart

    !!!!请注意!!!!

    如果你用工具连接连不上,或者连上只能下载不能上传,或者以前能连上现在连不上##了!!!!!报这个错227 Entering Passive Mode!!!!!!

    很大可能是因为连接工具连接ftp服务器分为主动模式和被动模式

    详情如下

    原来FTP有两种工作模式,PORT方式和PASV方式,中文意思为主动式和被动式 ,详细介绍如下:
    
           主动 FTP :
    命令连接:客户端 >1024 端口 → 服务器 21 端口
    数据连接:客户端 >1024 端口 ← 服务器 20 端口
    
      被动 FTP :
    命令连接:客户端 >1024 端口 → 服务器 21 端口
    数据连接:客户端 >1024 端口 ← 服务器 >1024 端口
    
    PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立 一条数据链路来传送数据。   
    
     
    
    PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链 路来传送数据。 
    
    由于我的本地FTP服务器在内网,只是从外网映射了两个端口(20,21),所以无法使用PASV方式,解决此问题的办法也很简单,关闭客户端的PASV方式,强制其用PORT方式访问服务器,登录FTP服务器后用passive命令关闭客户端的PASV方式,如下: 
    
     
    
    ftp> passive
    Passive mode off.
    
    ftp> passive (再次运行命令可打开)
    
    Passive mode on. 
    

    用工具的话只要

    image.png

    或者

    image.png

    understand??????????他妹的折腾我好久!!!!

    相关文章

      网友评论

          本文标题:centos搭建ftp服务器

          本文链接:https://www.haomeiwen.com/subject/mpljuxtx.html