centos7   使用docker方式部署vsftp服务

centos7   使用docker方式部署vsftp服务

  1. 安装docker(略)

 

创建ftp数据文件目录

 

cd /home

mkdir ftp

 

创建ftp配置文件

vi /home/vsftpd.conf

配置文件内容

# Run in the foreground to keep the container running:
background=NO

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO

# Uncomment this to allow local users to log in.
local_enable=YES

## Enable virtual users
guest_enable=YES

## Virtual users will use the same permissions as anonymous
virtual_use_local_privs=YES

# Uncomment this to enable any form of FTP write command.
write_enable=YES

## PAM file name
pam_service_name=vsftpd_virtual

## Home Directory for virtual users
user_sub_token=$USER
local_root=/home/vsftpd/$USER

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
 #所有用户都被限制在其主目录下,可以配合chroot_list_enable=YES 指定用户列表chroot_list_file #不受限制
chroot_local_user=YES          

# Workaround chroot check.
# See https://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/
# and http://serverfault.com/questions/362619/why-is-the-chroot-local-user-of-vsftpd-insecure
#allow_writeable_chroot=YES
 #允许主目录有写的权限
allow_writeable_chroot=YES     

## Hide ids from user
hide_ids=YES

## Enable logging
xferlog_enable=YES
xferlog_file=/var/log/vsftpd/vsftpd.log

## Enable active mode
port_enable=YES
connect_from_port_20=YES
ftp_data_port=8041

## Disable seccomp filter sanboxing
# ftp宿主机ip地址
pasv_address=$PASV_ADDRESS    
pasv_max_port=21104
pasv_min_port=21100
pasv_addr_resolve=NO
pasv_enable=YES
file_open_mode=0666
local_umask=077
xferlog_std_format=NO

 

 

启动vsftpd服务: 

    注意:ftp支持主动和被动模式,主动模式需要公司防火墙开放大范围的端口;

     而被动模式根据并发在服务器开放小范围端口就行21100-21104,所以我选择使用被动模式

docker run -d \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-v /home/ftp:/home/vsftpd \
-v /home/vsftpd.conf:/etc/vsftpd/vsftpd.conf \
-e FTP_USER=ftp -e FTP_PASS=ftp \
-e PASV_ADDRESS=192.168.199.105 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always \
 fauria/vsftpd

备注:

-d                         #后台启动
--restart=always        #开机启动
--cpuset-cpus="0,1"        #cpu只是用0,1核
-m 1g --memory-swap -1     #内存1g 不限制交换内存使用,反正我系统swap为0
-p 21:21                #ftp监听端口
-p 21100-21104:21100-21104             #pasv端口,就是被动端口范围,配合配置文件进行设定就是这两个参数的范围:PASV_MIN_PORT=21100  PASV_MAX_PORT=21104
-e FTP_USER=dev -e FTP_PASS=dev        #用户/密码
-e PASV_ADDRESS=47.107.43.3            #这个参数一定要设为公网,因为我的ftp服务器做了nat映射!!!
-v /data/ftp/file:/home/vsftpd        #映射用户家目录
-v /data/ftp/conf/vsftpd.conf:/etc/vsftpd/vsftpd.conf        #映射配置文件
fauria/vsftpd            #镜像名称
 

镜像来自docker官网:hub.docker.com
可以查看里面的说明,有启动方法介绍

3. 添加用户

 

docker exec -i -t vsftpd bash
mkdir /home/vsftpd/dev
echo -e "dev\dev" >> /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

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值