Ubuntu22.04搭建FTP服务器保姆级教程
在网络环境中,文件传输是一项至关重要的任务。FTP(文件传输协议)是一种基于客户端/服务器模式的协议,广泛用于在互联网上传输文件。Ubuntu作为一款流行的Linux发行版,因其稳定性和易用性而广受开发者和系统管理员的喜爱。本文将详细介绍如何在Ubuntu22.04上搭建FTP服务器。
一、准备工作
-
更新系统:
确保你的Ubuntu系统是最新的。可以通过以下命令来更新系统:sudo apt update && sudo apt upgrade
-
检查21端口:
FTP默认使用21端口,因此在安装之前需要确保该端口没有被占用。可以使用以下命令检查:lsof -i:21
如果端口被占用,可以使用
kill -9 <进程号>
命令终止占用进程。
二、安装vsftpd
vsftpd(Very Secure FTP Daemon)是一个安全、快速的FTP服务器程序。通过以下命令安装:
sudo apt-get install vsftpd
三、配置vsftpd
vsftpd的主要配置文件位于/etc/vsftpd.conf
。安装完成后,需要对vsftpd进行配置。
-
备份配置文件:
在编辑之前,先备份原始配置文件:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
-
编辑配置文件:
使用你喜欢的文本编辑器打开配置文件,例如:sudo vim /etc/vsftpd.conf
-
常用配置选项:
- 禁止匿名登录:
anonymous_enable=NO
- 允许本地用户登录:
local_enable=YES
- 关闭监听IPv6(如果网络环境不支持IPv6):
listen_ipv6=NO listen=YES
- 允许对文件系统进行更改(例如上传和删除文件):
write_enable=YES
- 限制用户只能访问自己的主目录:
chroot_local_user=YES
- 禁止匿名登录:
四、启动vsftpd服务
配置完成后,可以通过以下命令启动vsftpd服务:
sudo systemctl start vsftpd
设置vsftpd服务开机自启动:
sudo systemctl enable vsftpd
检查服务状态:
sudo systemctl status vsftpd
如下图,服务处于运行状态:
五、防火墙设置
如果系统启用了UFW防火墙,需要允许FTP相关端口的通信:
sudo ufw allow 20:21/tcp
sudo ufw allow 50000:50010/tcp
sudo ufw enable
六、创建FTP用户
为了安全性考虑,最好为每个需要使用FTP服务的用户创建一个独立的账户。
-
创建用户主目录:
sudo mkdir /home/ftpuser
-
添加用户:
sudo useradd -d /home/ftpuser ftpuser
-
设置用户密码:
sudo passwd ftpuser
-
设置目录权限:
sudo chown -R ftpuser:ftpuser /home/ftpuser sudo chmod -R 755 /home/ftpuser
七、测试FTP连接
测试FTP服务器是否正常运行。
输入服务器IP地址、用户名和密码,尝试连接。
尝试上传或下载文件,这里不做演示。
八、常见问题及解决方案
-
FTP登录失败,提示“530 Login incorrect”:
检查/etc/vsftpd.conf
中的pam_service_name
是否设置为vsftpd
,如果不是,请修改为:pam_service_name=vsftpd
然后重启vsftpd服务:
sudo systemctl restart vsftpd
-
无法通过被动模式连接FTP服务器:
确保UFW防火墙已允许被动端口范围,并检查被动端口范围内是否有其他服务占用。可以使用netstat
命令查看:sudo netstat -tuln | grep ':[50000-50010]'
如果发现有冲突,可以调整
pasv_min_port
和pasv_max_port
的值,然后重启vsftpd服务。 -
设置匿名用户可以连接FTP服务器:
配置/etc/vsftpd.conf,添加以下:
anonymous_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_root=/var/ftp
通过以上步骤,你应该能够在Ubuntu上成功搭建并配置一个功能完备的FTP服务器。vsftpd作为一个安全且高效的FTP服务器软件,能够满足大多数文件传输和管理的需求。如果在配置过程中遇到任何问题,建议查阅官方文档或社区论坛以获取更多帮助。
相关文章:
Ubuntu22.04搭建FTP服务器保姆级教程
在网络环境中,文件传输是一项至关重要的任务。FTP(文件传输协议)是一种基于客户端/服务器模式的协议,广泛用于在互联网上传输文件。Ubuntu作为一款流行的Linux发行版,因其稳定性和易用性而广受开发者和系统管理员的喜爱…...
微信小程序5-图片实现点击动作和动态加载同类数据
搜索 微信小程序 “动物觅踪” 观看效果 感谢阅读,初学小白,有错指正。 一、功能描述 a. 原本想通过按钮加载背景图片,来实现一个可以点击的搜索button,但是遇到两个难点,一是按钮大小调整不方便(网上搜索…...
leetcode 接雨水II(407)
题目: 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。 示例 1: 输入: heightMap [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]] 输出: 4 解释: 下雨后,雨水…...
使用 ESP32 构建倒车雷达系统:蜂鸣器警报功能详解
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:趣享先生的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏&…...
Cesium中实现仿ArcGIS三维的动态图层加载方式
Cesium 加载 ArcGIS 动态图层的方式 如果你在 Cesium 中加载过 ArcGIS 的动态图层,你会发现,Cesium 对于动态图层仍然采用类似切片图层的逻辑进行加载。也就是每个固定的瓦片 export 一张图片。 这样会造成一些问题: 请求量大,…...
国际荐酒师(香港)协会亮相第六届地博会助力中欧地标交流合作
国际荐酒师(香港)协会亮相第六届知交会暨地博会,助力中欧地理标志产品交流合作 12月9日,第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会(以下简称“第六届知交会暨地博会”)在中新广州…...
java八股-索引下推(图解对比)
参考链接 https://xiaolincoding.com/mysql/base/how_select.html#%E6%89%A7%E8%A1%8C%E5%99%A8 https://javaguide.cn/database/mysql/mysql-index.html#%E7%B4%A2%E5%BC%95%E4%B8%8B%E6%8E%A8 如何理解索引下推这个概念,其实就是index把Server层的工作࿰…...
自荐一部IT方案架构师回忆录
作者本人毕业于一个不知名大专院校,所读专业计算机科学技术。2009年开始IT职业生涯,至今工作15年。擅长TSQL/Shell/linux等技术,曾经就职于超万人大型集团、国内顶级云厂商、央国企公司。参与过运营商大数据平台、大型智慧城市ICT、云计算、人…...
C语言理解 —— 实用的字符串函数
目 录 字符串函数的头文件strlenstrstrstrncpystrncmp 字符串函数的头文件 #include <string.h>strlen 计算字符串长度的,从字符的首地址开始遍历,以 ‘\0’ 为结束标志,然后将计算的长度返回,但是计算的长度不包含’\0’…...
“Python-OpenCV初体验:简单实现颜色识别与轮廓绘制”
一、引言 图像处理技术在现代科技中扮演着重要角色,但对于初学者来说,掌握这些技术可能显得有些复杂。在这篇博客中,我们将带你一步步了解如何利用Python和OpenCV来识别图像中的颜色并绘制轮廓。通过简明的实验原理和代码示例,你…...
导游现场面试需要注意的问题
今天给大家带来一些导游现场面试需要注意的问题,大部分的城市导游考试已经考完了,但是还有一些城市的十二月份才考,有需要的朋友们赶紧来看,有备无患。 01、做好充足准备 认真准备做好每个景点的讲解介绍,不要抱有侥幸…...
JDK8新特性:Stream
JDK8最大的改变: 1. lambda表达式 2. Stream 1. Steam流的入门 什么是Stream? 也叫Stream流,是jdk8开始的一套API,用于操作集合或者数组中的数据 优点: Stream流大量结合了Lambda的语法风格来创建,提…...
CSS的2D和3D动画效果
CSS的2D和3D动画效果:网页动态设计的魔法 在现代网页设计中,动画已经成为提升用户体验的重要元素。通过引入动态效果,我们不仅可以使交互更加流畅和直观,还能吸引用户的注意力,增强品牌认知度。CSS提供了强大的工具&a…...
OpenCV相机标定与3D重建(16)将点从齐次坐标转换为非齐次坐标函数convertPointsFromHomogeneous()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::convertPointsFromHomogeneous 是 OpenCV 库中的一个函数,用于将点从齐次坐标(homogeneous coordinates)…...
动态流程图制作方法
动态流程图制作方法 1.方法1 有各种 echars模板 可以自己改代码 https://www.isqqw.com/viewer?id42201echars 在线生成 https://codevtool.com/echarts2. 方法2电脑软件,画图的。 《亿图图示》...
【pytroch】线性回归
构造一个PyTorch数据迭代器 def load_array(data_arrays, batch_size, is_trainTrue): #save"""构造一个PyTorch数据迭代器"""dataset data.TensorDataset(*data_arrays)return data.DataLoader(dataset, batch_size, shuffleis_train)batch_…...
前端请求后端接口报错(blockedmixed-content),以及解决办法
报错原因:被浏览器拦截了,因为接口地址不是https的。 什么是混合内容(Mixed Content) 混合内容是指在同一页面中同时包含安全(HTTPS)和非安全(HTTP)资源的情况。当浏览器试图加载非…...
基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理
基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…...
Pull requests 和Merge Request其实是一个意思
Pull requests的定义 在Git中,PR(Pull Request)是一种协作开发的常用方式。它允许开发者将自己的代码变更(通常是一个分支)提交到项目的仓库中,然后请求负责代码审查的人员将这些变更合并到主分支中。通过…...
网络原理03
回顾 应用层:应用程序,数据具体如何使用 传输层:关注起点和终点 网络层:关注路径规划 数据链路层:关注相邻节点的转发 物理层:硬件设备 应用层 应用程序 在应用层,很多时候,…...
yarn 安装问题
Couldn’t find package “regenerator-runtime” on the “npm” registry. Error: Couldn’t find package “watch-size” on the “npm” regist 标题Error: Couldn’t find package “babel-helper-vue-jsx-merge-props” on the “npm” registry. Error: Couldn’t f…...
优选算法——分治(快排)
1. 颜色分类 题目链接:75. 颜色分类 - 力扣(LeetCode) 题目展示: 题目分析:本题其实就要将数组最终分成3块儿,这也是后面快排的优化思路,具体大家来看下图。 这里我们上来先定义了3个指针&…...
深入解析强化学习中的 Generalized Advantage Estimation (GAE)
中文版 深入解析强化学习中的 Generalized Advantage Estimation (GAE) 1. 什么是 Generalized Advantage Estimation (GAE)? 在强化学习中,计算策略梯度的关键在于 优势函数(Advantage Function) 的设计。优势函数 ( A ( s , a ) A(s, a…...
PostgreSQL/PostGIS中提升空间查询(分析)性能(效率)的一些方法
目录 1. 使用适当的索引 1.1 索引类型 1.2 分析查询计划 1.3 覆盖索引 1.4 复合索引 1.5 维护索引 1.6 删除不必要的索引 1.7 使用适当的数据类型 2. 建立分区表 2.1 分区表的基本概念 2.2 创建分区表的步骤 2.3 空间数据的分区 2.4 分区表优点 3. 简化几何形状 …...
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球最受欢迎的Web服务器软件,支持约30.2%的所有活跃网站。凭借其可靠性、灵活性和强大的功能,Apache数十年来一直是互联网的中坚力量。 一、Apache Web服务器的工作原理 Apache Web服务器的工作原理如下: 接收HTTP请求࿱…...
攻防世界Reversing-x64Elf-100
一、使用Exeinfo PE 查壳 64无壳 二、使用IDA静态分析 1.找main 总览分析到:要使sub_4006FD出0,就可以得到"Nice!" 2.找到关键函数sub_4006FD 总览分析:v3是二维数组,要使if( )里的值1,就可以出0 分析if(…...
MySQL生产环境备份脚本
全量备份脚本,其中BakDir,ZlbakDir,LogFile需要自己创建 #!/bin/bash export LANGen_US.UTF-8# 指定备份目录 BakDir/root/beifen/data/mysqlbak/data/allbak # 指定增量备份目录 ZlbakDir/root/beifen/data/mysqlbak/data/zlbak # 备份日志…...
redis 怎么样删除list
在 Redis 中,可以使用以下方法删除列表或列表中的元素: 1. 删除整个列表 使用 DEL 命令删除一个列表键: DEL mylist这个命令会删除键 mylist 及其值(无论 mylist 是一个列表还是其他类型的键)。 2. 删除列表中的部分…...
uniapp小程序 slot中无法传递外部参数的解决方案
最近在封装一个List组件,外部传给我数据,我循环后将每个Item部分slot到外部,由调用者自己去写item布局,类似ElementUI、iView的Tabe列表。 List: <view v-if"list.length > 0" class"list-scroll__item&quo…...
Java面试之实现多线程(二)
此篇接上一篇Java面试之什么是多线程(一) Java多线程是Java语言中的一个重要特性,它可以实现并发处理、提高程序的性能和响应能力。开发者需要了解多线程的概念和机制,并采用合适的多线程编程模型和同步机制,以保证程序的正确性和稳定性。Jav…...
论文笔记:Treat Visual Tokens as Text? But Your MLLM Only Needs Fewer Efforts to See
2024 10月的arxiv 1 主要idea 针对多模态大模型(如LLaVA),提出了一系列高效的剪枝策略 在显著降低计算开销(多达 88%)的同时,保持了模型在多模态任务中的性能表现 2 目前的问题 与文本 token 相比&…...
HDOJ 1735:字数统计 ← 贪心
【题目来源】https://acm.hdu.edu.cn/showproblem.php?pid1735【题目描述】 一天,淘气的 Tom 不小心将水泼到了他哥哥 Jerry 刚完成的作文上。原本崭新的作文纸顿时变得皱巴巴的,更糟糕的是由于水的关系,许多字都看不清了。可怜的 Tom 知道他…...
Java常用类(完整版)
其他类 Object类 超类、基类,所有类的直接或间接父类,位于继承树的最高层 任何类,如果没有书写extends显示继承某个类,都默认直接继承Object类 Object类中所定义的方法,是所有对象都具备的方法 Object类型可以存储…...
【JAVA】Java项目实战—Java SE进阶项目:在线考试系统
在数字化教育中,在线考试系统的需求日益增加。它不仅提高了考试的效率,还能方便学生随时随地进行学习和测试。Java作为一种强大的编程语言,因其平台无关性、丰富的类库和强大的社区支持,成为开发在线考试系统的理想选择。 在线考…...
仿iOS日历、飞书日历、Google日历的日模式
仿iOS日历、飞书日历、Google日历的日模式,24H内事件可自由上下拖动、自由拉伸。 以下是效果图: 具体实现比较简单,代码如下: import android.content.Context; import android.graphics.Canvas; import android.graphics.Color;…...
机器人构建详解:售前售后服务客服机器人与广告生成机器人的微调数据处理方法
引言 大模型(如BERT、GPT等)在自然语言处理任务中展现了强大的能力,但为了使其更贴合特定应用场景,通常需要进行微调。本文将详细讲解如何为售前售后服务的客服机器人和广告生成机器人准备高质量的微调数据,并通过具体…...
【飞机纵向动力学建模与分析】
飞机纵向动力学建模与分析 文章目录 飞机纵向动力学建模与分析前言坐标系定义及转换机体坐标系定义机体坐标系定义气流角定义气流坐标系与机体坐标系相互转化 纵向动力学方程建立力的分解动力学方程的建立纵向动力学方程纵向动力学方程状态空间表达形式纵向运动分析短周期简化处…...
【机器人】控制之稳定性判定: 李雅普诺夫Lyapunov (7) 判定是否是李函数,思维导图
要判断一个函数 V(x)是否可以作为某个动力学方程的 Lyapunov 函数,需要满足特定的数学和物理条件。以下是详细说明: 1. 满足 Lyapunov 函数的基本条件 一个函数 V(x)能否作为 Lyapunov 函数,需要满足以下基本条件: 1.1 正定性 …...
Qwen 论文阅读记录
本文仅作自己初步熟悉大模型,梳理之用,慢慢会更改/增加/删除,部分细节尚未解释,希望不断学习之后,能够完善补充。若有同道之人,欢迎指正探讨。 关于后面的code-qwen and math-qwen,我个人认为依…...
ViewModel
ViewMode是MVVM架构模式中VM层对应的类,它的作用是存储界面数据,并和界面发生数据交互。ViewModel能感知生命周期,并且在界面由于配置问题发生重建时候,可以保持当前的数据不变。生命周期如下: ViewMode由ViewModePr…...
AI和SEO的完美结合关键词策略解析
内容概要 在当今数字营销环境中,AI与SEO的结合已成为提升网站流量和转化率的重要策略。为了更好地理解这一主题,本文将首先介绍AI技术在数字营销中的多种应用,其次分析SEO的基础知识和重要性,以便为后续讨论建立坚实的基础。 提示…...
网络基础 - TCP/IP 五层模型
文章目录 一、OSI 参考模型中各个分层的作用1、应用层2、表示层3、会话层4、传输层5、网络层6、数据链路层7、物理层 二、OSI 参考模型通信处理示例 一、OSI 参考模型中各个分层的作用 1、应用层 2、表示层 负责设备固有数据格式和网络标准数据格式间的转换 实际生活中&#…...
pyenv 管理多个 Python 版本(1)
引言 你是否曾希望参与一个支持多个 Python 版本的项目,但又不知道如何轻松地测试所有这些版本?你是否对 Python 的最新版本感到好奇?或许你想尝试这些新功能,但又不想冒险破坏你的开发环境。幸运的是,如果你使用 pyen…...
LLMs之ICL:《Bayesian scaling laws for in-context learning》翻译与解读
LLMs之ICL:《Bayesian scaling laws for in-context learning》翻译与解读 导读:这篇论文的核心议题是理解和建模大型语言模型(LLM)的上下文学习(ICL)能力。文章从贝叶斯学习的角度出发,提出了一…...
泷羽Sec学习笔记-Bp中ip伪造、爬虫审计
ip伪造与爬虫审计 ip伪造 下载插件:burpFakeIP 地址:GitHub - TheKingOfDuck/burpFakeIP: 服务端配置错误情况下用于伪造ip地址进行测试的Burp Suite插件 python版需要配置jython:下载地址:Maven Central: org.python:jython-…...
常用vim命令行-linux008
Vim 是一款功能强大的文本编辑器,广泛应用于编程、配置文件编辑以及日常文本处理。Vim 在其命令行模式下提供了丰富的操作命令,这些命令能够大幅提升编辑效率。以下是 Vim 中常用的命令及操作的总结,覆盖了 Vim 中的基本操作、查找、替换、文…...
Linux相关概念和易错知识点(24)(认识信号、信号捕捉)
目录 1.认识信号 (1)后台进程和前台进程 ①为什么Ctrl C能终止前台进程? ②如何终止这个后台程序? (2)信号、异步和同步 ①同步 ②异步 (3)信号的处理 2.信号捕捉 &#x…...
Scala的导入
//导入 //(1) 创建包:在src上右键,新建软件包 //(2)填写包名:小写 //(3)在包上右键,创建类。自动加入包名 //(4)导入。import 包名.类名 //导入多个类 //import jh.yuanlixueyuan.bigdata.scala03.{A,B,C} //导入包下的所有的类 /…...
strace,tcmalloc,asan使用
1、strace使用 1.1、编译strace strace开源库 解压strace-4.21.tar.xz 编译./configure --hostarm-ca9-linux-gnueabihf --prefix~/out make&&make install 1.2、参数 -c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息…...
C++中多态性在实际项目中的应用场景;C++中面向对象编程实现数据隐藏的方法
1. C中多态性在实际项目中的应用场景 C中多态性是面向对象编程中的一个重要概念,它允许我们在使用基类指针或引用的情况下,调用派生类对象的特定方法。这种灵活性使得多态性在实际项目中有着广泛的应用场景,具体包括但不限于以下几个方面&am…...