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

news2024/12/23 3:56:27

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=NO

local_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/bash
 
docker 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/bash
 
vi /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.html

FTP>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.html

FTP>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.com

FTP>help,显示ftp命令说明(同上)

PS:最好将要进行传输的文件或文件夹的权限设置成775777

参考:

  • https://blog.csdn.net/qq_45031509/article/details/128016689
  • https://blog.csdn.net/mshxuyi/article/details/119935069

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/882749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TiDB数据库从入门到精通系列之三:在单机上模拟部署生产环境集群

TiDB数据库从入门到精通系列之三&#xff1a;在单机上模拟部署生产环境集群 一、准备环境二、实施部署1.下载并安装 TiUP2.声明全局环境变量3.安装 TiUP 的 cluster 组件4.如果机器已经安装 TiUP cluster&#xff0c;需要更新软件版本5.由于模拟多机部署&#xff0c;需要通过 r…

注意力机制-基础

注意力机制-基础 基础部分比较简单&#xff0c;全是搬运&#xff0c;主要介绍几个例子。 主要是搬运来的&#xff1a;动手学深度学习 心理学 人类的注意力是有限的、有价值和稀缺的资源。而环境中的干扰注意力的信息却并不少。 比如人类的视觉神经系统大约每秒收到 位的信息…

Hlang社区-前端社区宣传首页实现

文章目录 前言页面结构固定钉头部轮播JS特效完整代码总结前言 这里的话,博主其实也是今年参与考研的大军之一,所以的话,是抽空去完成这个项目的,当然这个项目的肯定是可以在较短的时间内完成的。 那么废话不多说,昨天也是干到1点多,把这个首页写出来了。先看看看效果吧:…

STS(eclipse)批量修改文件里的某个内容

在STS或Eclipse的时候&#xff0c;有时候需要成批修改相应内容&#xff0c;如相关项目里的所有文件的demo修改成test&#xff0c;可以按照下面方式来做。 1、首先&#xff0c;在相应项目下搜索demo&#xff0c;如下图&#xff1a; 2、搜索出内容来&#xff0c;如下&#xff1a;…

Android Alarm闹钟API使用心得

前言 有什么办法可以在不打开App的时候&#xff0c;也能够触发一些操作呢&#xff1f;比如说发送通知&#xff0c;解决这个需求的办法有很多种选择&#xff0c;比如说官方推荐的WorkManager API&#xff0c;可以在后台执行一次性、耗时、定时的任务&#xff0c;但WorkManager是…

【Maven教程】(一)入门介绍篇:Maven基础概念与其他构建工具:理解构建过程与Maven的多重作用,以及与敏捷开发的关系 ~

Maven入门介绍篇 1️⃣ 基础概念1.1 构建1.2 maven对构建的支持1.3 Maven的其他作用 2️⃣ 其他构建工具2.1 IDE2.2 Make2.3 Ant2.4 Jenkins 3️⃣ Maven与敏捷开发&#x1f33e; 总结 1️⃣ 基础概念 "Maven"可以翻译为 “知识的积累者” 或 “专家”。这个词源于波…

【第三阶段】kotlin语言空合并操作符

1.空操作符&#xff1f;&#xff1a; xxx?:“如果是null执行” 如果xxx是null&#xff0c;就执行?:后面的逻辑&#xff0c;如果不是null就执行&#xff1f;&#xff1a;前面的逻辑&#xff0c;后面的不在执行 fun main() {var name:String?"kotlin" namenullvar …

【数据结构OJ题】反转链表

原题链接&#xff1a;https://leetcode.cn/problems/reverse-linked-list/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 方法一&#xff1a;三指针翻转法 使用三个结构体指针n1&#xff0c;n2&#xff0c;n3&#xff0c;原地修改结点…

移动端直播相关技术总结

一、直播APP原理 二、直播APP架构 三、直播APP实现流程 四、流媒体开发 流媒体模块架构 流媒体相关基础知识 帧&#xff1a;每一帧代表一幅静止的图像 GOP&#xff1a;Group of Pictures&#xff0c;画面组&#xff0c;一个GOP就是一组连续的画面&#xff0c;很多帧的集合 码率…

腾讯Perfdog支持Windows PC端体验性能测试

一、背景 最近在做抖音的小玩法&#xff0c;其基于unity引擎&#xff0c;然后挂载到直播伴侣。以及Perfdog近期也支持了Windows的测试&#xff0c;所以做一个体验测试。 二、如何做 查看PC端的支持&#xff0c;目前是beat版本 选择或搜索自己需要的对应的程序&#xff0c;如…

Allegro172版本如何在联机模式下使用skill文件操作指导

Allegro172版本如何在Symphony模式下使用skill文件操作指导 在用Allegeo172版本进行PCB设计的时候,有时会用到Symphony模式进行多人实时在线协同设计,如下图 这个模式设计起来可以提升设计速度,但是也有一个缺陷,就是不能使用skill文件 如下图,当调用skill的时候就会出现…

Aspera替代方案:探索这些安全且可靠的文件传输工具

科技的发展日新月异&#xff0c;文件的传输方式也在不断地更新换代。传统的邮件附件、FTP等方式已经难以满足人们对于传输速度和安全性的需求了。近年来&#xff0c;一些新兴的文件传输工具受到了人们的关注&#xff0c;其中除了知名的Aspera之外&#xff0c;还有许多可靠安全的…

全志H616交叉编译,orangepi-zero2

文章目录 交叉编译是什么为什么需要交叉编译&#xff1f; 宿主机和目标机所需工具解压编译工具临时有效&#xff0c;配置环境变量&#xff08;切换终端无效&#xff09;永久有效&#xff0c;配置环境变量大功告成开始测试拷入文件测试结束 交叉编译是什么 交叉编译&#xff1a…

《Learning Combinatorial Optimization Algorithms over Graphs》阅读笔记

一.文章概述 本文提出将强化学习和图嵌入的组合以端到端地自动为图上组合优化问题设计贪心启发式算法&#xff0c;以避免设计传统算法所需要的大量专业知识和试错。学得的贪心策略行为类似增量构造解决方案的元算法&#xff0c;动作由解决方案当前状态上的图嵌入网络确定。作者…

『清安无别事-赠书01期』|〖测试设计思想〗

目录 &#x1f9e1; 内容简介 &#x1f49b; 作者简介 &#x1f496; 本书内容|目录 &#x1f497; 读后感想 &#x1f49d; 参与方式 购书传送门&#xff1a;测试设计思想购书传送门&#xff1a;测试设计思想购书传送门&#xff1a;测试设计思想 &#x1f9e1; 内容简介 …

Win10提醒事项如何打开?电脑上如何添加日程提醒?

有不少上班族表示自己在日常办公时&#xff0c;经常会忘记一些重要的事情&#xff0c;例如领导安排给自己的任务、会议安排、项目截止日期等。为了避免自己忘记工作事项&#xff0c;很多人都想要在电脑上设置提醒事项或添加日程提醒。那么Win10提醒事项如何打开呢&#xff1f;P…

LCS最大公共子序列 与 LIS最大递增子序列

LCS Largest Common Subsequence 最大公共子序列 /* Input s1 s2//两个字符串Output length//长度 ans//具体字母 */ #include<iostream> using namespace std; int main() {string s1,s2;cin>>s1>>s2;int dp[100][100]{0};//dp[i][j]表示s1取前i位&#x…

软件工程概述-架构师(三)

软件工程概述&#xff08;老版&#xff09; 软件开发生命周期&#xff1a; 软件定义时期&#xff1a;包括 可行性研究和详细需求分析过程&#xff0c;任务是软件工程必需完成的目标&#xff0c;具有可行问题分析、可行性研究、需求分析等。软件开发时期&#xff1a;软件的 设…

css浮动(为什么要清除浮动?清除浮动有哪几种方式?)

为什么要清除浮动&#xff1f; 清除浮动主要是为了清除浮动元素造成的影响&#xff0c;使浮动元素不会影响其后元素的布局 防止父元素高度塌陷&#xff1a;当元素浮动后&#xff0c;它会脱离一个标准文档流&#xff0c;不再占用原先的布局空间。如果一个父元素内只有浮动元素&a…

SpringBoot中优雅的实现隐私数据脱敏(提供Gitee源码)

前言&#xff1a;在实际项目开发中&#xff0c;可能会对一些用户的隐私信息进行脱敏操作&#xff0c;传统的方式很多都是用replace方法进行手动替换&#xff0c;这样会由很多冗余的代码并且后续也不好维护&#xff0c;本期就讲解一下如何在SpringBoot中优雅的通过序列化的方式去…