• CentOS7 搭建FTP


    对于linux,只在上个微信公众号开发的时候,玩了CentOS6.5. 现在学习Docker技术,官方建议升级到7.2。于是乎只能捣鼓一下了。

    花了一晚上的时间才真正把vsftpd安装好,flashfxp 正常上传下载文件。这中间碰到一些问题,顺便记录下。

    首先,centos7.2 虚拟机安装完后,要配置网络。

    nmcli connection show   --- 显示当前网络连接

    cd /etc/sysconfig/network-scripts/   

    ls

     vi ifcfg-ens33 --把ONBOOT 改为yes

    然后重启虚拟机,就可以上网了。

    其次,安装vsftpd

    yum intall vsftpd --- 每次问答,都选y即可

    配置防火墙,开通21端口。(注意,Centos7.2 使用firewalld代替了原来的iptables)

    firewall-cmd --zone=public --add-port=21/tcp --permanent

    firewall-cmd --reload   --- 让防火墙设置生效

    vi /etc/vsftpd/vsftpd.conf ,修改ftp根目录local_root=/var/ftp/software(如果不指定,默认就是/home/系统用户目录)

    systemctl start vsftpd --- 开启Vsftpd 服务

    这个时候,尝试如果用FlashFXP 软件 root 用户登陆,报530错误。

    百度了好久,发现

    vi /etc/vsftpd/vsftpd.conf  将userlist_enable=YES改为NO,

    vi /etc/vsftpd/ftpusers 删除root,保存,重启vsftpd

    再systemctl  restart vsftpd  重启vsftpd即可登陆

    只是看不到目录信息,也不能上传文件。

    又继续百度半天,也没找到相关资料。后来发现都是FlashFXP 执行PASV 指令出错。想想是不是没有开通PASV 端口。

    于是又修改vsftpd.conf文件,先指定PASV 端口范围

    pasv_min_port=5000
    pasv_max_port=6000

    然后再修改防火墙,开通5000~6000端口

    firewall-cmd --zone=public --add-port=5000-60000/tcp --permanent

    重启防火墙和vsftp后,总算能看到列表了。万万没想到,上传文件失败,郁闷吧。

    尝试按照网上的把software 目录权限改为777,还是一样不能上传。

    尝试把SELINUX 关闭(修改/etc/selinux/config文件中的SELINUX=”enforcing" 改为 disabled ),重启后,更坑爹。这时候更加FlashFXP登陆不了。

    恢复SELINUX,还是登陆不了。当时,那个心情郁闷啊。辛亏我留了一手,做了个快照,不然早急疯了。

    恢复快照后,继续百度,照着度娘的某个帖子的意思,

    setsebool allow_ftpd_full_access 1  -- 居然可以成功上传了。

    这下高兴了,去楼下买瓶可乐喝了个够。上来再看看文件夹是否可以上传,奶奶的熊。这个时候居然报

    vsftpd:refuse to run with writable root inside chroot()  错误。百思不得其解。刚刚还好好的啊

    没办法,又去找度娘,后面查到,只要在vsftpd.conf 加上这句,就可以了

    allow_writeable_chroot=YES

    但是虚拟机重启后,又不能ftp了,主要是 setsebool allow_ftpd_full_access 1 临时设置的。需要

    setsebool -P allow_ftpd_full_access 1 

    最后, chkconfig vsftpd on 本想让vsftpd 设置为开机自启动,可是这条命令不起作用,谁知道告诉我下:) 

    好了,花了一晚上。搭建个FTP 服务器。真惨!

  • 相关阅读:
    Go 协程(绿程/轻量级线程 用户态)--没有历史包袱
    Go 语言编码规范
    hexo 问题解决
    vue3中的watchEffect的参数
    开机提示0xc0000428无法验证此文件的数字签名的解决方法
    实现用户名的更换登陆
    element 新组件
    Object 常用方法
    Odoo中登录接口返回的session_id失效
    详细解析DLL构建CLR版本冲突问题
  • 原文地址:https://www.cnblogs.com/liguoyi/p/5922160.html
Copyright © 2020-2023  润新知