当前位置: 首页 > news >正文

ubuntu篇---配置FTP服务,本机和docker安装

ubuntu篇---配置FTP服务

  • 一、本机安装
    • 1.1 安装FTP服务器软件
    • 1.2 配置FTP服务
  • 二、docker安装(我用的这个)
    • 2.1 创建 目录
    • 2.2 启动脚本
    • 2.3 访问
    • 2.4 如何创建一个新的用户
    • 2.5 测试
    • 2.6 使用

一、本机安装

1.1 安装FTP服务器软件

  • ubuntu安装vsftp
sudo apt install vsftpd
  • 查看安装后的版本
vsftpd --version

1.2 配置FTP服务

  • 为FTP添加用户ftpuser,并设置用户的密码
sudo useradd -m ftp
sudo passwd uftp
  • 创建ftp的根目录

#这里再/home/uftp/下创建一个ftpdir作为ftp的根目录

  • 配置vsftpd.conf文件
sudo vim /etc/vsftpd.conf
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_enable=YES
userlist_deny=NOlocal_root=/home/uftp
  • 启动ftp服务
 sudo service vsftpd start
sudo service vsftpd status
sudo service vsftpd restart

二、docker安装(我用的这个)

2.1 创建 目录

mkdir -p /docker/vsftp

2.2 启动脚本

#!/bin/bashdocker run \
--name vsftpd \
-p 20:20 -p 21:21 -p 33361-33365:33361-33365 \
-v ./vsftp/ftpfile:/home/vsftpd \
-e FTP_USER=admin \
-e FTP_PASS=!Admin123 \
-e PASV_ADDRESS=127.0.0.1 \
-e PASV_MIN_PORT=33361 \
-e PASV_MAX_PORT=33365 \
--restart=always \
-d fauria/vsftpd

2.3 访问

ftp://127.0.0.1        账密 admin/!Admin123

2.4 如何创建一个新的用户

docker exec -it vsftpd /bin/bashvi /etc/vsftpd/virtual_users.txt# 这里的 admin 用户跟密码是安装的时候创建的
# 这里创建一个新用户
admin
!Admin123
uftp
123456# 保存数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db# 设置新用户家目录
mkdir -p /home/vsftpd/uftp# 改变目录权限
chown ftp:ftp /home/vsftpd/uftp/

在这里插入图片描述
在这里插入图片描述

 
docker容器中vsftpd修改账号密码

进入容器,直接编辑 /etc/vsftpd/virtual_users.txt,添加用户、修改密码即可

2.5 测试

ftp 127.0.0.1

在这里插入图片描述

2.6 使用

1、连接服务器
格式:ftp [hostname| ip-address]

ftp 192.168.x.xx

2、下载文件
get
格式:get [remote-file] [local-file]
将文件从远端主机中传送至本地主机中。
如要获取远程服务器上/usr/your/1.htm,则

ftp> get /usr/your/1.htm 1.htm (回车)

mget      
格式:mget [remote-files]
从远端主机接收一批文件至本地主机。
如要获取服务器上/usr/your/下的所有文件,则

ftp> cd /usr/your/
ftp> mget . (回车)

3、上传文件
put
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中。
如要把本地的1.htm传送到远端主机/usr/your,并改名为2.htm

ftp> put 1.htm /usr/your/2.htm (回车)

mput
格式:mput local-files
将本地主机中一批文件传送至远端主机。
如要把本地当前目录下所有html文件上传到服务器/usr/your/ 下

ftp> cd /usr/your (回车)
ftp> mput *.htm (回车)

4、断开连接
bye:中断与服务器的连接。

ftp> bye (回车)

另外的用法:

在shell命令行下输入:ftp 192.168.x.xx根据提示输入正确的用户名和密码即可常用操作命令(,号不是命令内容)FTP>open  [ftpservername],和指定的远程Linux FTP服务器连接FTP>user  [username]  [password],使用指定远程Linux FTP服务器的用户登录FTP>pwd,显示远程Linux FTP服务器上的当前路径文章地址https://www.yii666.com/blog/144054.htmlFTP>ls,列出远程Linux FTP服务器上当前路径下的目录和文件FTP>dir,列出远程Linux FTP服务器上当前路径下的目录和文件(同上)FTP>mkdir  [foldname],在远程Linux FTP服务器上当前路径下建立指定目录FTP>rmdir  [foldname],删除远程Linux FTP服务器上当前路径下的指定目录FTP>cd  [foldname],更改远程Linux FTP服务器上的工作目录FTP>delete  [filename],删除远程Linux FTP服务器上指定的文件FTP>rename  [filename]  [newfilename],重命名远程Linux FTP服务器上指定的文件FTP>close,从远程Linux FTP服务器断开但保留FTP命令参数提示网址:yii666.com<文章来源地址:https://www.yii666.com/blog/144054.htmlFTP>disconnect,从远程Linux FTP服务器断开但保留FTP命令参数提示(同上)FTP>bye,结束和远程Linux FTP服务器的连接FTP>quit,结束和远程Linux FTP服务器的连接(同上)FTP>!,直接从远程Linux FTP服务器进入到本地shell中FTP>exit,(接上步)从本地shell环境中返回到远程Linux FTP服务器环境下FTP>!ls,列出本地机器上当前路径下的目录和文件FTP>lcd  [foldname],更改本地机器的工作目录FTP>?,显示ftp命令说明网址:yii666.comFTP>help,显示ftp命令说明(同上)PS:最好将要进行传输的文件或文件夹的权限设置成775777

参考:

  • https://blog.csdn.net/qq_45031509/article/details/128016689
  • https://blog.csdn.net/mshxuyi/article/details/119935069
http://www.lryc.cn/news/125598.html

相关文章:

  • SpringBoot中properties、yml、yaml的优先级
  • SHELL 基础 SHELL注释 及 执行SHELL脚本的四种方法
  • 【Spring】深入探索 Spring AOP:概念、使用与实现原理解析
  • LocalDate介绍和使用
  • 三、使用注解形式开发 Spring MVC程序
  • 【Go】常见的四个内存泄漏问题
  • 【LeetCode-简单】剑指 Offer 29. 顺时针打印矩阵(详解)
  • TOMCAT基础
  • 自动化集装箱码头建设指南
  • 为什么要用redis
  • QT qmake解析
  • 【TypeScript】this指向,this内置组件
  • MySQL 深度分页优化
  • 如何在CSS中水平居中一个元素?
  • 生信豆芽菜-ESTIMATE预测免疫评分
  • 分享一颗能用在TYPE-C接口取电协议芯片LDR6328Q,方便好用
  • 【java】Java与SQLite3数据库类型之间对应关系
  • ELK常见部署架构以及出现的问题及解决方案
  • windows使用vscode配置java开发环境
  • centos系统kubeadm安装K8S_v1.27.x容器使用docker(K8S_v1.24版本以后依然使用docker容器管理)
  • 如何使用索引加速 SQL 查询 [Python 版]
  • Oracle 开发篇+Java通过DRCP访问Oracle数据库
  • 在安装 ONLYOFFICE 协作空间社区版时如何使用额外脚本参数
  • ChatGPT在智能家居控制和环境管理中的应用如何?
  • 理解 Go 中的切片:append 操作的深入分析(篇2)
  • GPT-4 如何为我编写测试
  • java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration
  • 19、SQL注入之SQLMAP绕过WAF
  • Redis对象类型和结构、内存回收、对象共享
  • 标准模板库STL——容器适配器-stack/queue/priority_queue