Linux搭建ftp服务器的步骤

2025-08-19 22:50

本文主要是介绍Linux搭建ftp服务器的步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...

ftp:利用文件传输协议,用来不同服务器之间的文件传输。

ftp搭建

环境准备:一台Centos7.9服务器,可以联通外网。

1:下载vsftpd工具

#前置条件
systemctl stop firewalld
setenforce 0
#开始下载
yum install vsftpd -y
rpm -qi vsftpd
systemctl start vsftpd
netstat -anpt |grep vsftpd
#默认端口为21

2:下载客户端工具

yum install ftp lftp -y

3:进入配置文件目录

[root@ftp vsftpd]# ll
总用量 24
-rw-r--r-- 1 root root    6 8月  15 15:20 chroot_list  #这里是后期新创建的,后续会说是做什么的
-rw------- 1 root root  125 6月  10 2021 ftpusers  #黑名单
-rw------- 1 root root  361 6月  10 2021 user_list #黑名单或白名单
-rw------- 1 root root 5411 8月  15 15:51 vsftpd.conf #著配置文件目录
-rwxr--r-- 1 root root  338 6月  10 2021 vsftpd_conf_migrate.sh

vsftpd.conf配置文件

是否允许匿名用户ftp登录,YES代表允许,NO不允许 anonymous_enable=YES

是否允许本地登录 local_enable=YES

是否有写的权利 write_enable=YES

日志文件位置 xferlog_file=/var/log/xferlog 采用标准的日志格式

4: 限制用户只能在自己的家目录访问

如果让普通用户可以随便切换目录的话及其不安php

所以一般可以修改配置文件将用户限制在自己的家目录

在 vsftpd.conf 配置文件里面修改以下配置

chroot_list 文件默认不存在,需要在 /etc/vsftpd/下新建

在vsftpd.conf添加如下配置

#对本地用户限制在自己的家目录里
chroot_local_user=YES  
#启用限制名单
chroot_list_enable=YES
#具体的名单路径,这个名单的用户不受限制,可以随意切换目录
chroot_list_file=/etc/vsftpd/chroot_list
#这个目录没有,需要自己新建。

5:创建用户进入客户端测试

默认情况下不允许root用户登录 vsftpd 使用的用户名和密码就是linux系统里面使用分用户和密码,不需要单独新建

#新建一个用户进行测试
useradd ceshi
echo "ceshi" | passwd --stdin ceshi
#这里有一个小坑,就是我后续使用这个用户登录发现没法上传文件,这里最好给ceshi的家目录权限大一点
chmod 777 /home/ceshi
230 Login successful.
Remote system type is Unix.
Using binary mode to transfer files.
ftp> ls   #查看自身目录下的文件
227 Entering Passive Mode (192,168,198,129,201,209).
150 Here comes the directory listing.
drwxr-xr-x    2 1002     1003            6 Aug 15 07:29 test.txt
226 Directory send OK.
ftp> !ls  #查看本地目录内容
anaconda-ks.cfg  dist		   m1		      test.txt
backup		 docker		   m2		      ultrax.sql
calico.yaml	 Dockerfile	   nginx
check_mysqld.sh  Java		   sprinboot-vue.jar
checkMysql.sh	 kube-flannel.yml  sysconfigure.sh
ftp> cd /root   #切换目录,这里报错了
550 Failed to change directory.
ftp> 

这里报错是因为我们限制用户不能随意的切换目录访问,这里如果想要切换目录,在chroot_list中讲用户名称添加进去就可以了

vim chrrot_list
ceshi
#一定记得重启!!!
systemctl restart vsftpd

我们接着上面的说

ftp> cd /var
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,198,129,21,205).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Apr 11  2018 adm
ftp> cd /home/ceshi
250 Directory successfully changed.
ftp> pwd
257 "/home/ceshi"
ftp> !ls  #查看本地目录内容
anaconda-ks.cfg  dist		   m1		      test.txt
backup		 docker		   m2		      ultrax.sql
calico.yaml	 Dockerfile	   nginx
check_mysqld.sh  java		   sprinboot-vue.jar
checkMysql.sh	 kube-flannel.yml  sysconfigure.sh
ftp> put test.txt  #上传文件到ftp服务器
local: test.txt remote: test.txt
227 Entering Passive Mode (192,168,198,129,210,80).
150 Ok to send dahttp://www.chinasem.cnta.
226 Transfer complete.
6 bytes sent in 0.00198 secs (3.03 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,198,129,1China编程75,174).
150 Here comes the directory listing.
drwxr-xr-x    2 1002     1003            6 Aug 15 07:29 111
-rw-r--r--    1 1002     1003            6 Aug 15 08:22 test.txt
226 Directory send OK.
ftp> get 机柜信息.txt   #下载文件到本地,默认/root目录
local: 机柜信息.txt remote: 机柜信息.txt
227 Entering Passive Mode (192,168,198,129,195,39).
150 Opening BINARY mode data connection for 机柜信息.txt (104 bytes).
226 Transfer complejste.
104 bytes received in 4.9e-05 secs (2122.45 Kbytes/sec)
ftp> 


windows测试

php文件夹上输入: ftp:/@192.168.198.129/,

Linux搭建ftp服务器的步骤

这种方式是匿名访问,默认在/var/ftp/pub路径,如果向指定用户如下图进行登录:

Linux搭建ftp服务器的步骤

Linux搭建ftp服务器的步骤

输入账户密码进行登录。

登录之后就可以传输文件了。
注意:
删除目录时,如果目录是非空(FTP 协议默认不允许删除非空目录,需递归删除)

到此这篇关于Linux搭建ftp服务器的文章就介绍到这了,更多相关Linux搭建ftp服务器内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于Linux搭建ftp服务器的步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155816

相关文章

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块