Docker安装vsftp

2019-06-22  本文已影响0人  KN郑某某

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
上一篇下一篇

猜你喜欢

热点阅读