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

Linux 搭建ftp服务

FTP是什么?

FTP(文件传输协议,File Transfer Protocol)是一种用于在计算机之间传输文件的网络协议。它基于客户端-服务器模型,允许用户从远程服务器上传、下载和管理文件。

FTP的主要作用

  1. 文件传输:FTP最基本的功能是实现不同计算机之间的文件传输,可以高效地上传和下载文件。

  2. 文件管理:除了传输文件,FTP还允许用户在服务器上进行文件管理操作,如创建、删除、重命名目录和文件。

  3. 批量传输:FTP支持批量文件的上传和下载,适合处理大量数据的场景。

  4. 支持大文件传输:相较于HTTP等协议,FTP更适合传输大文件,因为它支持断点续传功能。

  5. 跨平台兼容性:FTP可以在不同操作系统间工作,例如Windows、Linux和macOS,使得跨平台的文件交换变得更加简单。

一、服务端配置

1、服务端安装vsftpd服务

这里使用网站架构中nfs-31作为服务端
(15:21:48)[nfs root ~] # yum install vsftpd -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
base                                                                    | 3.6 kB  00:00:00     
epel                                                                    | 4.3 kB  00:00:00     
extras                                                                  | 2.9 kB  00:00:00     
updates                                                                 | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-29.el7_9 will be installed
--> Finished Dependency ResolutionDependencies Resolved===============================================================================================Package            Arch               Version                       Repository           Size
===============================================================================================
Installing:vsftpd             x86_64             3.0.2-29.el7_9                updates             173 kTransaction Summary
===============================================================================================
Install  1 PackageTotal download size: 173 kstalled size: 353 k
Downloading packages:
vsftpd-3.0.2-29.el7_9.x86_64.rpm                                        | 173 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : vsftpd-3.0.2-29.el7_9.x86_64                                                1/1 Verifying  : vsftpd-3.0.2-29.el7_9.x86_64                                                1/1 Installed:vsftpd.x86_64 0:3.0.2-29.el7_9                                                               Complete!

2、 创建一个普通用户(ftp使用)

(15:22:05)[nfs root ~] # useradd test
(15:22:17)[nfs root ~] # 
(15:22:18)[nfs root ~] # echo '1' | passwd --stdin test
Changing password for user test.
passwd: all authentication tokens updated successfully.

3、修改ftp配置文件,设置用于共享的目录

(15:22:43)[nfs root ~] # rpm -ql vsftpd |grep '.conf$'
/etc/vsftpd/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf找出和匿名用户相关的配置参数,然后关闭
(15:22:44)[nfs root ~] # grep '^anonymous'  /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
(15:23:06)[nfs root ~] # 
(15:23:07)[nfs root ~] # vim /etc/vsftpd/vsftpd.conf 
(15:23:32)[nfs root ~] # grep '^anonymous'  /etc/vsftpd/vsftpd.conf
anonymous_enable=NO添加自定义的共享文件夹配置参数,配置文件最后添加
(15:23:35)[nfs root ~] # vim /etc/vsftpd/vsftpd.conf
local_root=/test_0224/
chroot_local_user=YES
allow_writeable_chroot=YES# local_root=/data/kefu  指定本地用户的默认数据根目录 
# chroot_local_user=YES 禁锢本地用户的默认数据目录(禁止用户切换到其他目录)
# allow_writeable_chroot=YES 允许ftp用户登录后,可以创建数据

4、创建共享文件夹,并修改文件夹权限为创建的用户

创建目录和测试文件,更改文件所属用户权限
(15:25:15)[nfs root ~] # mkdir /test_0224/
(15:25:25)[nfs root ~] # touch /test_0224/test.txt
(15:25:55)[nfs root ~] # 
(15:25:56)[nfs root ~] # chown -R test:test /test_0224/
(15:26:14)[nfs root ~] # ls -l /test_0224/
total 0
-rw-r--r-- 1 test test 0 Dec  6 15:25 test.txt
(15:26:24)[nfs root ~] # ll -d /test_0224/
drwxr-xr-x 2 test test 22 Dec  6 15:25 /test_0224/

5、重启vsftpd服务

(15:26:38)[nfs root ~] # systemctl restart vsftpd
(15:26:48)[nfs root ~] # ps -ef|grep vsftpd
root       1383      1  0 15:26 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       1386   1222  0 15:26 pts/0    00:00:00 grep --color=auto vsftpd

二、客户端访问配置

1、安装下载ftp服务

这里使用master-61作为客户端访问ftp
(15:28:45)[master root ~] # yum -y install ftp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package ftp.x86_64 0:0.17-67.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved===============================================================================================Package            Arch                  Version                    Repository           Size
===============================================================================================
Installing:ftp                x86_64                0.17-67.el7                base                 61 kTransaction Summary
===============================================================================================
Install  1 PackageTotal download size: 61 k
Installed size: 96 k
Downloading packages:
ftp-0.17-67.el7.x86_64.rpm                                              |  61 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : ftp-0.17-67.el7.x86_64                                                      1/1 Verifying  : ftp-0.17-67.el7.x86_64                                                      1/1 Installed:ftp.x86_64 0:0.17-67.el7                                                                     Complete!

2、ftp+ip直接访问

ftp下载文件

(15:30:23)[master root ~] # ftp 10.0.0.31
Connected to 10.0.0.31 (10.0.0.31).
220 (vsFTPd 3.0.2)
Name (10.0.0.31:root): test        #输入用户名
331 Please specify the password.
Password:                          #输入密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
ftp> pwd                           # 显示当前路径
257 "/"
ftp> get                           # 下载文件
(remote-file) test.txt
(local-file) test.txt
local: test.txt remote: test.txt
227 Entering Passive Mode (10,0,0,31,203,162).
150 Opening BINARY mode data connection for test.txt (0 bytes).
226 Transfer complete.
ftp> exit
221 Goodbye.可以看到已经下载了test.txt文件
(15:31:33)[master root ~] # ls
anaconda-ks.cfg  network.sh  test.txt

ftp上传文件

客户端ftp创建了一个电影.mv文件
(15:52:21)[master root ~] # ls
anaconda-ks.cfg  network.sh  test.txt  电影.mv
(15:52:22)[master root ~] # 
(15:32:10)[master root ~] # ftp 10.0.0.31
Connected to 10.0.0.31 (10.0.0.31).
220 (vsFTPd 3.0.2)
Name (10.0.0.31:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files. 
ftp> put                             #上传文件
(local-file) /root/电影.mv            # 文件目录位置 
(remote-file) 电影.mv                
local: /root/电影.mv remote: 电影.mv
227 Entering Passive Mode (10,0,0,31,63,145).
150 Ok to send data.
226 Transfer complete.
9 bytes sent in 7.1e-05 secs (126.76 Kbytes/sec)
ftp> exitvfstpd服务端 /test_0224/下可以看到对应的文件了
(15:33:27)[nfs root ~] # cd /test_0224/
(15:33:34)[nfs root /test_0224] # ls
test.txt  电影.mv
(15:33:35)[nfs root /test_0224] # 

相关文章:

Linux 搭建ftp服务

FTP是什么? FTP(文件传输协议,File Transfer Protocol)是一种用于在计算机之间传输文件的网络协议。它基于客户端-服务器模型,允许用户从远程服务器上传、下载和管理文件。 FTP的主要作用 文件传输:FTP最基…...

阳光电源嵌入式面试题及参考答案

讲一讲声明变量的时候应该注意哪些内容。 在声明变量时,首先要考虑变量的类型。不同的数据类型有不同的用途和占用的存储空间大小。例如,基本数据类型如整型(int)通常占用 4 个字节,用来存储整数;而浮点型(float)用于存储带有小数部分的数字,占用 4 个字节,双精度浮点…...

PS的功能学习(形状、文字、图层)

关于图层 如果是在一个已经有其他图层的文档界面下,拉一张新图进来,就会自动转换成智能对象 注意,放大之后再栅格化,是会根据原本的防矢量图规则放大之后,再变回像素图层,这个变回来的像素图层是“在原像素…...

项目实例_FashionMNIST_CNN

前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…...

Ubuntu 安装 web 服务器

安装 apach sudo apt install apache2 -y 查看 apach2 版本号 apache2 -v 检查是否启动服务器 sudo service apache2 status 检查可用的 ufw 防火墙应用程序配置 sudo ufw app list 关闭防火墙 sudo ufw disable 更改允许通过端口流量 sudo ufw allow Apache Full 开启…...

burp的编解码,日志,比较器

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...

2.1、模版语法

2.1.1、插值语法 1、代码示例 <body><!-- 准备容器 --><div id"app"><!-- 在data中声明的 --><!--1、 data中声明的变量 --><h1>{{msg}}</h1><h1>{{sayHello()}}</h1><!-- 不在data中的变量不可以 -->…...

最小二乘法拟合出二阶响应面近似模型

背景&#xff1a;根据样本试验数据拟合出二阶响应面近似模型&#xff08;正交二次型&#xff09;&#xff0c;并使用决定系数R和调整的决定系数R_adj来判断二阶响应面模型的拟合精度。 1、样本数据&#xff08;来源&#xff1a;硕士论文《航空发动机用W形金属密封环密封性能分析…...

【汽车】-- 常见的汽车悬挂系统

汽车悬挂系统是车辆的重要组成部分&#xff0c;其主要功能是连接车轮和车身&#xff0c;减缓路面颠簸对车身的影响&#xff0c;提高行驶的平顺性、舒适性和操控性。以下是常见的汽车悬挂系统类型及其特点&#xff1a; 1. 独立悬挂系统 每个车轮可以独立上下运动&#xff0c;不…...

VMware Workstation Pro 17 下载 以及 安装 Ubuntu 20.04.6 Ubuntu 启用 root 登录

1、个人免费版本 VMware Workstation Pro 17 下载链接怎么找&#xff1f;直接咕咕 VMware 找到如下链接。链接如下&#xff1a;Workstation 和 Fusion 对个人使用完全免费&#xff0c;企业许可转向订阅 - VMware 中文博客 点进去链接之后你会看到如下&#xff0c;注意安装之后仍…...

记录ubuntu22.04重启以后无法获取IP地址的问题处理方案

现象描述&#xff1a;我的虚拟机网络设置为桥接模式&#xff0c;输入ifconfig只显示127.0.0.1&#xff0c;不能连上外网。&#xff0c;且无法上网&#xff0c;用ifconfig只有如下显示&#xff1a; 1、sudo -i切换为root用户 2、输入dhclient -v 再输入ifconfig就可以看到多了…...

linux 删除系统特殊的的用户帐号

禁止所有默认的被操作系统本身启动的且不需要的帐号&#xff0c;当你第一次装上系统时就应该做此检查&#xff0c;Linux提供了各种帐号,你可能不需要&#xff0c;如果你不需要这个帐号,就移走它&#xff0c;你有的帐号越多,就越容易受到攻击。 1.为删除你系统上的用户,用下面的…...

core Webapi jwt 认证

core cookie 验证 Web API Jwt 》》》》用户信息 namespace WebAPI001.Coms {public class Account{public string UserName { get; set; }public string UserPassword { get; set; }public string UserRole { get; set; }} }》》》获取jwt类 using Microsoft.AspNetCore.Mvc…...

【Redis】Redis基础——Redis的安装及启动

一、初识Redis 1. 认识NoSQL 数据结构&#xff1a;对于SQL来说&#xff0c;表是有结构的&#xff0c;如字段约束、字段存储大小等。 关联性&#xff1a;SQL 的关联性体现在两张表之间可以通过外键&#xff0c;将两张表的数据关联查询出完整的数据。 查询方式&#xff1a; 2.…...

Oracle Recovery Tools工具一键解决ORA-00376 ORA-01110故障(文件offline)---惜分飞

客户在win上面迁移数据文件,由于原库非归档,结果导致有两个文件scn不一致,无法打开库,结果他们选择offline文件,然后打开数据库 Wed Dec 04 14:06:04 2024 alter database open Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6056.trc: ORA-01113:…...

常用环境部署(二十四)——Docker部署开源物联网平台Thingsboard

1、Docker和Docker-compose安装 参考网址如下&#xff1a; CENTOS8.0安装DOCKER&DOCKER-COMPOSE以及常见报错解决_centos8安装docker-compose-CSDN博客 2、 Thingsboard安装 &#xff08;1&#xff09;在/home目录下创建docker-compose.yml文件 vim /home/docker-com…...

SqlServer Doris Flink SQL 类型映射关系

SqlServer 对应 Flink SQL 数据类型映射关系 SQL Server TypeFlink SQL Typechar(n)CHAR(n)varchar(n)VARCHAR(n)nvarchar(n)VARCHAR(n)nchar(n)VARCHAR(n)textSTRINGntextSTRINGxmlSTRINGdecimal(p, s)DECIMAL(p, s)moneyDECIMAL(p, s)smallmoneyDECIMAL(p, s)numericNUMERIC…...

Java 中的方法重写

在 Java 中&#xff0c;方法重写&#xff08;Method Overriding&#xff09;是面向对象编程的一个重要概念&#xff0c;它指的是子类中存在一个与父类中相同名称、相同参数列表和相同返回类型的方法。方法重写使得子类可以提供特定的实现&#xff0c;从而覆盖&#xff08;或改变…...

v-for遍历多个el-popover;el-popover通过visible控制显隐;点击其他隐藏el-popover

场景:el-popover通过visible控制显隐;同时el-popover是遍历生成的多个。 原文档的使用visible后就不能点击其他地方使其隐藏;同时解决实现点击其他区域隐藏 <template><div><template v-for="(item,index) in arr" :key="index"><…...

从 Excel 文件中读取数据生成 SQL 语句[快捷main方法]

从 Excel 文件中读取数据生成 SQL 语句的实现 在日常工作中&#xff0c;我们经常需要从 Excel 文件中提取数据&#xff0c;并将其转换为 SQL 插入语句&#xff0c;以便于将数据导入到数据库中。在这篇文章中&#xff0c;我将展示如何使用 Java 来实现这一需求。 项目需求 我…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习&#xff0c;链接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…...