Docker 搭建 vsftpd 以及 ncftp 使用详解

一、搭建ftp

1. docker搭建

docker run -d \
-v /home/docker/vsftpd:/home/vsftpd \
-p 20:20 \
-p 21:21 \
-p 21100-21110:21100-21110 \
-e FTP_USER=admin \
-e FTP_PASS=123456 \
-e PASV_ADDRESS=172.21.9.125 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
--name vsftpd \
--restart=always fauria/vsftpd

这里的 PASV_ADDRESS 修改为服务器的IP。

2. 创建新用户

如果有需要可以创建新的用户。

# 创建新用户的目录
docker exec -it vsftpd mkdir /home/vsftpd/test
# 创建账户密码
docker exec -it vsftpd echo -e "test\n123456" >> /etc/vsftpd/virtual_users.txt
# 重新加载数据库文件
docker exec -it vsftpd /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
# 重启容器
docker restart vsftpd

二、ncftp安装使用

ncftp 相比较于传统的 ftp 有以下优点:

1.支持命令行自动化:ncftp 提供了丰富的命令行选项和参数,使其非常适合自动化脚本和批处理任务。你可以编写脚本来执行复杂的文件传输操作,并将其集成到自动化流程中。

2.递归传输:ncftp 支持递归传输,可以传输整个文件夹及其子目录,而不仅仅是单个文件。这对于需要传输大量文件或整个目录结构的情况非常有用。

3.断点续传:ncftp 具有断点续传的功能,如果在文件传输过程中断开连接,它可以从中断的地方继续传输,而不需要重新传输整个文件。这对于大文件或不稳定的网络连接非常有用。

4.支持脚本化批量操作:ncftp 具有批处理操作的功能,可以通过脚本一次执行多个命令和任务,提高效率和便捷性。

1. 安装

yum -y install ncftp

2. ftp使用

2.1 连接ftp服务器

ncftp -u username -p password ftp.example.com

2.2 列出目录内容

列出本地目录内容:

lls

列出服务器目录内容

ls

2.3 切换目录

切换本地目录:

lcd /tmp

切换服务器目录:

cd /tmp

2.4 上传

上传文件:

这里本地目录可以使用相对路径或者绝对路径。

# 上传到当前路径
put /tmp/1.txt 1.txt
# 上传到绝对路径
put -z /tmp/1.txt /tmp/1.txt
# 上传并修改文件名
put -z /tmp/1.txt /tmp/2.txt
# 上传多个文件到当前目录
put /tmp/1.txt /tmp/2.txt

上传目录:

# 递归上传
put -R /tmp/ /tmp

2.5 下载

下载文件:

# 可下载一个或多个文件
get /tmp/1.txt /tmp/2.txt
# 下载并修改文件名
get -z /tmp/1.txt 2.txt
# 根据后缀下载
get /tmp/*.txt

下载目录:

get -R /tmp

提示是这样下载目录,但是报错,暂不清楚原因。

Could not traverse directory: could not parse extended file or directory information.
get /tmp/: bad parameter given to library.

2.6 删除

删除文件:

rm /tmp/1.txt

删除文件夹:

rm -r /tmp
阅读剩余
THE END