Ubuntu 22.04 安装配置 FTP服务器 教程
今天搞定在 Ubuntu 22.04 系统上安装和配置 VSFTPD ,还会涉及防火墙设置、SSL/TLS 设置,以及创建专门登录 FTP 服务器的账户。开始!
一、安装 VSFTPD
首先,咱得让系统知道有啥新软件包可以安装。打开终端,输入下面这行命令更新系统软件包列表:
sudo apt update
这就像是给系统的 “软件小仓库” 来个大扫除,让它知道最新都有啥可用。更新完,咱接着安装 VSFTPD,输入:
sudo apt install vsftpd
系统就会欢快地把 VSFTPD 安装到你的电脑里啦。
二、备份原始配置文件
在开始折腾 VSFTPD 的配置文件前,保险起见,先给原始文件做个备份。就像出门前给家里贵重物品拍个照留底一样,万一后面改错了还能恢复原样。在终端输入:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
这样,原始配置文件就被复制了一份,妥妥的!
三、配置 VSFTPD
接下来,要用文本编辑器打开 VSFTPD 的配置文件。这里咱用nano,简单又好用。在终端输入:
sudo nano /etc/vsftpd.conf
(一)基本配置
1.咱得允许本地用户登录到 FTP 服务器,在配置文件里找到或者添加这一行:
local_enable=YES
这就好比给本地用户打开了 FTP 服务器的大门。
2. 还要允许用户上传文件呢,找到或添加:
write_enable=YES
这样用户就有了往服务器上传文件的 “钥匙”。
3. 给本地用户设置个默认的文件掩码,方便管理文件权限,添加:
local_umask=022
4.限制用户只能访问其主目录
为了安全,咱得让用户只能在自己的主目录里活动,在配置文件里添加:
chroot_local_user=YES
不过,为了让这个限制能正常工作,还得加上这一句:
allow_writeable_chroot=YES
(二)SSL/TLS 设置
1.先给服务器生成 SSL 证书,这可是给数据传输上了一把安全锁。在终端输入:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
按照提示输入一些信息,证书就生成好啦。另外,也要注意,如果您单独安装openssl,这时系统会自动生成响应证书,也就省却您的这步骤操作。
2. 接着回到配置文件,开启 SSL/TLS 功能。添加下面这些行:
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
这下,数据在传输的时候就安全多啦。
四、创建仅能登录 FTP 服务器的账户
1.咱给 FTP 服务器创建一个专属用户,在终端输入:
sudo adduser ftpuser
按照提示设置好用户密码。
2. 给这个用户创建 FTP 目录,并且设置好权限,让用户能正常使用。输入:
sudo mkdir -p /home/ftpuser/ftp
sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod -R 755 /home/ftpuser/ftp
注意,有的ubuntu版本会在创建用户时,自动建立用户目录/home/ftpuser。
这样,用户就有了自己专属的 FTP 工作空间。
五、防火墙设置
咱得让防火墙允许 FTP 相关的端口通行,这里用ufw这个简单好用的防火墙工具。在终端依次输入:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
这就像是给 FTP 服务在防火墙上开了几个专用的 “小门”。最后,把防火墙启用起来:
sudo ufw enable
六、配置被动模式端口范围
在vsftpd.conf配置文件里,咱还要指定被动模式的端口范围,添加下面两行:
pasv_min_port=40000
pasv_max_port=50000
这样,服务器在被动模式下就能正常工作啦。
七、重启 VSFTPD 服务
所有配置都弄好之后,得让 VSFTPD 服务重新启动一下,才能让这些新设置生效。在终端输入:
sudo systemctl restart vsftpd
服务重启完成,新配置就开始发挥作用啦。
八、验证配置
现在,用一个 FTP 客户端,比如 FileZilla,来连接到 FTP 服务器。输入之前创建的ftpuser账户和密码,看看能不能顺利登录,能不能正常地上传和下载文件。如果一切顺利,那就说明咱的配置成功啦!
九、检查服务状态
最后,要是想看看 VSFTPD 服务是不是正常运行着,可以在终端输入:
sudo systemctl status vsftpd
从显示的信息里就能知道服务的状态啦。
好啦,小伙伴,到这里你就成功在 Ubuntu 22.04 上安装和配置好了 VSFTPD,是不是很有成就感?赶紧用起来吧!
十、配置自定义ftp端口
有时,处于安全考量或系统资源限制,不允许开发20、21端口,需要配置其它端口,方法如下:
在/etc/vsftpd.conf配置文件中,找到listen_port参数(如果没有就手动添加),比如将端口号设为 2121,添加或修改为:
listen_port=2121
另外,如果启用了 SSL/TLS,还需确保 SSL/TLS 相关端口也做了相应调整。例如原本 SSL/TLS 端口为 990,若整体调整端口,可将其修改为新的端口,如 9900(需与你的整体规划匹配) ,并在配置文件中修改:
ssl_port=9900
注意:有的FTPS客户端不支持自定义ssl_port端口,所以尽可能不要用此选项(不要用这条命令),系统会默认的用990端口作为ssl_port端口。
相关文章:
Ubuntu 22.04 安装配置 FTP服务器 教程
今天搞定在 Ubuntu 22.04 系统上安装和配置 VSFTPD ,还会涉及防火墙设置、SSL/TLS 设置,以及创建专门登录 FTP 服务器的账户。开始! 一、安装 VSFTPD 首先,咱得让系统知道有啥新软件包可以安装。打开终端,输入下面这…...
基于 Selenium 的软件测试方法研究
一、引言 在软件开发的漫长征程中,软件测试宛如一座坚实的堡垒,守护着软件质量的大门。随着互联网技术的飞速发展,Web 应用程序如雨后春笋般涌现,其功能的复杂性和用户交互的多样性不断增加。在这样的背景下,传统的手动…...
网络安全事件响应--应急响应(windows)
应用系统日志 Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。 系统和应用程序日志存储着故障排除信息,对于系统管理员更为有用。安全日志记录着事件审计信息,包括用户验证(登录、远程访问等&#x…...
DataEase:一款国产开源数据可视化分析工具
DataEase 是由飞致云开发的一款基于 Web 的数据可视化 BI 工具,支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,帮助用户快速分析业务数据并洞察其趋势,为企业的业务改进与优化提供支持。 DataEase 的优势在于:…...
RTK与RTD基础原理
(文中的部分图片是摘自其他博主的文章,由于比较久,忘记原本链接了,侵删) GPS定位原理 卫星自身有自己的星历与原子钟,因此卫星知道自身准确的空间坐标与时间。因为每个卫星都有原子钟,因此每颗卫星的时间基本上都是相…...
关于MCP SSE 服务器的工作原理
模型上下文协议(Model Context Protocol,简称MCP) 是一种全新的开放协议,专门用于标准化地为大语言模型(LLMs)提供应用场景和数据背景。 你可以把MCP想象成AI领域的“USB-C接口”,它能让不同的A…...
碳中和小程序:助力用户记录低碳行为,推动环保生活
碳中和小程序:助力用户记录低碳行为,推动环保生活 一、碳中和的全民化挑战与数字化机遇 中国承诺2030年前实现碳达峰,2060年前达成碳中和目标。在这一国家战略下,个人碳减排贡献率需从当前不足5%提升至25%。小程序开发技术正成为破解"公众参与度低"“行为量化难…...
Python读取显示Latex的公式文档,Python加载显示markdown文件。
平时用LLM大语言模型去解释文献里面的公式含义直接复制的格式word看不懂,基于这个web可以正常加载显示。 下面是读取的效果展示:下面程序保存为stl_read.py然后运行下面指令。 streamlit run stl_read.pyimport streamlit as st import base64 import …...
mapbox高阶,结合threejs(threebox)添加extrusion挤出几何体,并添加侧面窗户贴图和楼顶贴图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️threebox extrusion挤出几何体二、🍀…...
mock的定义和使用场景
Python自动化中使用mock的示例 在Python自动化测试中,mock 用于模拟对象、函数或方法的行为,以便在隔离的环境中测试代码。以下是一个简单的示例: 假设你有一个 user.py 模块,其中包含一个 get_user_info 函数,用于从…...
Android Retrofit 请求执行模块执行原理深入源码分析(三)
一、引言 Retrofit 是 Square 公司开发的一款优秀的类型安全的 HTTP 客户端,在 Android 和 Java 开发中被广泛使用。它通过简洁的接口定义和强大的注解功能,使得开发者能够轻松地进行网络请求。请求执行模块是 Retrofit 的核心部分之一,负责…...
封装Axios拦截器实现用户无感刷新AccessToken实践指南
一、背景与需求场景 1.1 单点登录体系中的Token管理 在单点登录(SSO)体系下,用户登录后系统会颁发两种令牌: AccessToken:短期有效(2小时),用于接口鉴权 RefreshToken:…...
CSDN博客:Markdown编辑语法教程总结教程(下)
❤个人主页:折枝寄北的博客 Markdown编辑语法教程总结 前言1. LaTex数学公式2. 插入不同类别的图2.1 插入甘特图2.2 插入UML图2.3 插入Mermaid流程图2.4 插入Flowchart流程图2.5 插入classDiagram类图 3. CSDN快捷键4. 字体相关设置4.1 字体样式改变4.2 字体大小改变…...
【Python】06、流程控制语句
文章目录 1.条件判断语句1.1 if 语句2. input 函数3.if-else 语句4.if-elif-else 语句 2.循环语句2.1 while语句2.2 while语句练习:2.3 循环嵌套2.4 break和continue 通过流程控制语句,可以改变程序的执行顺序,也可以让指定程序反复执行多次。…...
《python》—— threading库(线程和多线程)
文章目录 threading简介threading基本概念常用类和方法线程同步线程池实例 threading简介 threading 是 Python 标准库中用于实现多线程编程的模块。多线程编程允许程序同时执行多个任务,提高程序的并发性能,尤其适用于 I/O 密集型任务,例如…...
【数据分享】2000-2024年全国逐年归一化植被指数(NDVI)栅格数据(年最大值)
NDVI,全名为Normalized Difference Vegetation Index,中文名称为归一化植被指数。这个指数可以用来定性和定量评价植被覆盖及其生长活力,我们也可以简单地将它理解为体现植被密度和健康状况的一个指标。 之前我们给大家分享了来源于MOD13A3数…...
【项目】负载均衡式在线OJ
负载均衡式在线OJ 目录 负载均衡式在线OJ 1.项目介绍: 2.comm 2.1 log.hpp 日志等级 开放式日志 时间戳工具 2.2 util.hpp TimeUtil类 PathUtil类 FileUtil类 StringUtil类 3.Compile_server 3.1compile_run.hpp RemoveTempFile CodeToDesc Start 3.…...
前端发布缓存导致白屏解决方案
解决发布H5后因为本地缓存白屏方案 一、 核心配置优化(前提是访问网站的请求能抵达服务器) 方案一:前端项目设置全局不缓存方案 运行逻辑:在H5服务器配置中增加Cache-Control: no-cache或max-age0响应头,禁用静态资…...
大模型开源的工具包有哪些特殊符号可以使用;SEP 是什么
大模型开源的工具包有哪些特殊符号可以使用 目录 大模型开源的工具包有哪些特殊符号可以使用自定义特殊token:special_tokens=True一、**对话轮次分隔符(必选)**二、**系统提示标记(提升指令理解)**三、**中文特色分隔符(贴合书写习惯)**四、**开源模型专属符号(按文档…...
混沌理论与混沌映射——算法改进初始化创新点之一
混沌理论与混沌映射 混沌理论研究混沌系统的动力学,其特征是非线性和对初始条件的极端敏感性。即使在这些条件下的微小变化也可能导致系统结果的显著变化。尽管看起来是随机的,混沌系统可以在不依赖随机性的情况下表现出不规则的行为,因为确…...
19874并查集
19874并查集 ⭐️难度:中等 🌟考点:并查集、数据结构 📖 📚 import java.util.*;public class Main {static int N 100010;static int[] a new int[N];static int[] p new int[N];static int n;static int m;st…...
macOS 安装配置 iTerm2 记录
都说 macOS 里替换终端最好的就是 iTerm2 ,这玩意儿还是开源的,所以就也根风学习一下,但全是英文的挺麻烦,所以这里记录一下自己的设置,以最简单的安装及设置为主,想要更酷炫、更好看的还请自己百度吧&…...
LLM最新的模型微调技术有哪些
LLM 最新的模型微调技术有哪些 目录 LLM 最新的模型微调技术有哪些1. QLoRA(Quantized Low-Rank Adaptation)2. P-Tuning v23. LoRA++(增强版 LoRA)4. AdaLoRA(Adaptive LoRA)5. BitFit(仅微调偏置)1. QLoRA(Quantized Low-Rank Adaptation) 原理:QLoRA 结合了低秩自…...
Jmeter下载安装配置及使用
1、下载 官网地址:Apache JMeter - Download Apache JMeter 2、配置环境变量 ①找到环境变量,两种方法 法一:我的电脑→右键菜单→属性→高级系统设置→环境变量 法二:直接搜索环境变量 ②新建两个系统变量 1.变量名&#x…...
简单易懂Modbus Tcp和Rtu的异同点
关键说明 无需修改业务逻辑:同一套读写代码可同时支持TCP和RTU,仅需调整底层通信接口。 工具兼容性:调试工具(如Modbus Poll)可同时解析两种协议,仅需切换传输模式。 系统集成优势:混合网络下可…...
try catch的使用
try catch的使用 在 Java 中,try-catch 语句用于异常处理。异常处理可以帮助我们在程序出现错误时,不会导致程序崩溃,而是采取一定的措施来处理错误。try-catch 语句是用于捕获并处理异常的机制。 基本语法 try {// 可能会抛出异常的代码块…...
【从零开始学习计算机科学】编译原理(一)编译过程概述
【从零开始学习计算机科学】编译原理(一)编译过程概述 绪论编译过程概述词法分析语法分析代码优化代码生成其他功能编译器的前端和后端绪论 什么叫编译程序?为什么我们需要编译程序?编译程序就是一个程序,将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序,翻…...
PCL 点云AABB包围盒(二)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。(来源于百度)常用的求解包围盒的算法主要有AABB和OOB算法,其中AABB的算法思想…...
【算法day8】 Z 字形变换 -O(n)算法思路整理
Z 字形变换,算法思路整理 https://leetcode.cn/problems/zigzag-conversion/description/ 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下…...
L3-1 夺宝大赛
输入样例 1: 5 7 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 2 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 7 1 5 7 1 1 1 5 5 3 1 3 5 1 4输出样例 1: 7 6样例 1 说明: 七支队伍到达大本营的时间顺次为:7、不可能、5、3、3、5、6,…...
