一、关于vsftpd安装
不同linux系统安装方法
ubuntu apt-get install vsftpd
apt-get --purge remove vsftpd
centos yum list vsftpd
yum install -y vsftpd.x86_64
创建ftp用户
mkdir /home/ftpdir useradd -d /home/ftpdir -s /bin/bash user1 passwd user1 chmod -R 777 /home/ftpdir
重启与查看状态
service vsftpd restart && service vsftpd status
二、关于vsftpd的配置文件
/etc/vsftpd/vsftpd.conf
write_enable=YES
userlist_file=/etc/vsftpd/vsftpd.user_list
userlist_enable=YES
userlist_deny=NO
pasv_enable=yes
#pasv_address=47.104.69.197 pasv_min_port=39000 pasv_max_port=40000 ssl_enable=YES allow_anon_ssl=NO force_local_logins_ssl=YES force_local_data_ssl=YES rsa_cert_file=/etc/ssl/vsftpd/cli.pem rsa_private_key_file=/etc/ssl/vsftpd/cli.pem
三、关于ssl证书
p12证书 导出 pem证书命令
openssl pkcs12 -in client.p12 -password pass:123456 -nodes -out cli.pem
生成测试证书
cd /etc/ssl/ mkdir vsftpd cd vsftpd/ openssl req -x509 -nodes -keyout vsftpd.key -out vsftpd.crt -days 365 -newkey rsa:2048
如果需要可以二合一
cat vsftpd.crt vsftpd.key > vsftpd.pem
证书格式说明
p12/pfx 二进制格式,包含证书本身,即CA签过名的公钥,私钥,以及一些附加信息;
pem 文本格式
从pfx中获取客户端证书 openssl pkcs12 -in client.pfx -password pass:11111111 -clcerts -nokeys -out cert.pem 从pfx中获取客户端私钥 openssl pkcs12 -in client.pfx -password pass:11111111 -nocerts -nodes -out key.pem
四、docker方式下
docker run -d \ -v /home/vsftpd:/home/vsftpd \ -p 20:20 -p 21:21 -p 39000-40000:39000-40000 \ -e FTP_USER=user3 -e FTP_PASS=123 \ -e PASV_ADDRESS=106.15.88.235 \ -e PASV_MIN_PORT=39000 -e PASV_MAX_PORT=40000 \ --name vsftpd --restart=always fauria/vsftpd
从宿主拷贝证书文件,编辑容器中的配置
docker cp /etc/ssl/vsftpd vsftpd:/etc/ssl/ docker exec -it vsftpd ls -ls /etc/ssl docker exec -it vsftpd ls -ls /etc/ssl/vsftpd docker exec -it vsftpd vi /etc/vsftpd/vsftpd.conf
启动、停止
docker stop vsftpd docker ps -a docker start vsftpd
五、常见报错
1、服务器发回了不可路由的地址,使用服务器地址代替
出现该类问题,大多数是安全问题,多数是pure-ftpd。
1)请在服务器运营商放行21端口
2)请在服务器运营商放行39000/40000端口
2、状态: 服务器发回了不可路由的地址。使用服务器地址代替。
命令: LIST
解决方法:更改Filezilla设置,编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。