美文网首页
Docker安装vsftp

Docker安装vsftp

作者: KN郑某某 | 来源:发表于2019-06-22 10:49 被阅读0次

    1 下载

    下载镜像

    $ docker pull fauria/vsftpd
    

    2 主动模式启动

    主动模式下在登录成功后,需要客户端开放动态端口,由FTP主动连接客户端,形成连接。需要客户端在防火墙允许动态端口。

    创建外部保存文件的位置

    $ mkdir -p /opt/files
    

    启动

    $ docker run -d -v /opt/files:/home/vsftpd \
          -p 21:21 \
          -e FTP_USER=izqy -e FTP_PASS=123456 \
          --name vsftpd --restart=always fauria/vsftpd
    

    防火墙需要开放21端口

    $ firewall-cmd --add-port=21/tcp --permanent
    $ firewall-cmd --reload
    

    至此启动成功,使用winscp软件连接ftp测试,连接过程中出现错误如下

    Server sent passive reply with unroutable address 172.17.0.3, using host address instead.

    在连接选项中的高级中设置连接模式,关闭被动模式

    image.png

    3 双模式启动

    被动模式下在登录成功后,服务端开放动态端口,由客户端连接FTP服务器,形成连接。需要FTP服务器的防火墙允许动态端口。

    主动模式和被动模式双模式启动,开放用于客户端连接的其他接口,设置接口范围 21100-21110

    $ docker run -d -v /opt/files:/home/vsftpd \
          -p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
          -e FTP_USER=izqy -e FTP_PASS=123456 \
          -e PASV_ADDRESS=192.111.0.111 \
          -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
          --name vsftpd --restart=always fauria/vsftpd
    

    其中 192.111.0.111 是服务器IP, 防火墙需要开放21端口,阿里云服务器中 PASV_ADDRESS 需要设置成公网IP,否则的话 vpc 中的机器无法使用内网 ip 访问 ftp

    $ firewall-cmd --add-port=20-21/tcp --permanent
    $ firewall-cmd --add-port=21100-21110/tcp --permanent
    $ firewall-cmd --reload
    

    使用winscp软件直接连接ftp进行测试

    4 添加用户

    添加一个 izqy2用户,密码是 123456

    进入容器

    $ docker exec -i -t vsftpd bash
    

    添加用户目录

    $ mkdir /home/vsftpd/izqy2
    

    创建用户,密码并重载配置

    $ echo -e "izqy2\n123456" >> /etc/vsftpd/virtual_users.txt
    $ /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
    

    退出容器

    $ exit
    

    重启容器

    $ docker restart vsftpd
    

    相关文章

      网友评论

          本文标题:Docker安装vsftp

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