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

FTP服务器搭建(Linux)

目录

一、FTP

1.1 FTP简介

1.2 Linux搭建FTP(需确认防火墙是否开启,如未开启防火墙需要打开)

1.2.1安装Vsftpd

 1.2.2配置vsftpd

1.3设置安全组

1.4验证FTP

1.5FTP主动模式与被动模式区别

1. 主动模式​

​​2. 被动模式​


一、FTP

1.1 FTP简介

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一.FTP协议包括两个部分,FTP服务器和FTP客户端。FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。可以利用FTP协议把网页或程序传到Web服务器上。因为FTP传输效率高,所以在网络上传输大的文件时,一般也采用该协议。默认情况下FTP协议使用TCP端口中的 20、21端口,20用于传输数据,21用于传输控制信息。

1.2 Linux搭建FTP(需确认防火墙是否开启,如未开启防火墙需要打开)

本实验Linux操作系统版本: CentOS 7.6  

Vsftpd版本为:

[root@VM-0-15-centos ~]# vsftpd -v
vsftpd: version 3.0.2

1.2.1安装Vsftpd

[root@VM-0-15-centos ~]# yum install -y vsftpd
#设置开机自启
[root@VM-0-15-centos ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
#启动vsftpd服务
[root@VM-0-15-centos ~]# systemctl start vsftpd
#查看服务启动是否启动
[root@VM-0-15-centos ~]# netstat -antup | grep ftp
tcp6       0      0 :::21                   :::*                    LISTEN      12553/vsftpd 

 注意:vsftpd服务启动后,会默认开启匿名访问,无需通过用户名和密码即可登录到 FTP 服务器。但此方式登录 FTP 服务器的用户没有权修改或上传文件的权限。

 1.2.2配置vsftpd

#创建 FTP 服务用户
[root@VM-0-15-centos ~]# useradd vsftpd_test
#给这个FTP用户设置密码
[root@VM-0-15-centos ~]# passwd vsftpd_test 
#创建 FTP 服务使用的目录
[root@VM-0-15-centos ftp]# mkdir /var/ftp/test
#更改目录权限
[root@VM-0-15-centos ftp]# chown -R vsftpd_test:vsftpd_test /var/ftp/test/
#打开 vsftpd.conf 文件
[root@VM-0-15-centos ftp]# vim /etc/vsftpd/vsftpd.conf
#设置匿名用户和本地用户的登录权限
anonymous_enable=NO
local_enable=YES
#设置指定用户列表文件的路径,并开启 IPv4 sockets 的监听。
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#关闭 IPv6 sockets 的监听(部分FTP客户端可能无法正确处理IPv6连接、同时监听IPv4和IPv6会增加配置复杂度)
#listen_ipv6=YES#开启被动模式,设置本地用户登录后所在目录,以及云服务器建立数据传输可使用的端口范围值。
local_root=/var/ftp/test
allow_writeable_chroot=YES
pasv_enable=YES
pasv_address=132.232.1.148
pasv_min_port=40000
pasv_max_port=45000#创建并编辑 chroot_list 文件。
vim /etc/vsftpd/chroot_list   #输入用户名,一个占据一行,若没有设置例外用户的需求,可跳过
#重启 FTP 服务。
systemctl restart vsftpd

1.3设置安全组

搭建好 FTP 服务后,要根据实际使用的 FTP 模式给 Linux 云服务器放通入站规则。

多数客户端机器IP 是经过转换的。如果选择的是 FTP 主动模式,请确保客户端机器已获取真实的 IP ,否则会导致客户端无法登录 FTP 服务器。

主动模式:放通端口21。
被动模式:放通端口21,及 修改配置文件 中设置的 pasv_min_port 到 pasv_max_port 之间的所有端口,本文放通端口为40000 - 45000。

1.4验证FTP

  1. 打开浏览器,选择【工具】>【Internet 选项】>【高级】,根据您选择的 FTP 模式进行修改:
  • 主动模式:取消勾选【使用被动 FTP】
  • 被动模式:勾选【使用被动 FTP】

1.5FTP主动模式与被动模式区别

1. 主动模式

  • ​工作流程​​:

    1. 客户端通过随机端口(如 N)连接到服务器的 ​​21 端口(控制连接)​​。

    2. 客户端发送 PORT命令,告知服务器自己的一个随机端口(如 N+1)用于数据连接。

    3. ​服务器主动从 20 端口​​ 连接到客户端的指定端口(N+1)建立数据连接。

  • ​特点​​:

    • ​服务器主动发起数据连接​​,客户端被动接受。

    • ​防火墙问题​​:如果客户端位于防火墙/NAT后,服务器的连接可能被拦截。

    • 适用于服务器和客户端之间无防火墙限制的环境(如局域网)。


​2. 被动模式

  • ​工作流程​​:

    1. 客户端通过随机端口连接到服务器的 ​​21 端口

    2. 客户端发送 PASV命令,服务器回应一个随机端口(如 P)用于数据连接。

    3. ​客户端主动连接到服务器的端口 P​ 建立数据连接。

  • ​特点​​:

    • ​客户端发起数据连接​​,服务器被动接受。

    • ​防火墙友好​​:适合客户端位于防火墙/NAT后的场景。

    • ​服务器需开放随机端口​​:可能需配置防火墙允许高端口号范围

http://www.lryc.cn/news/620993.html

相关文章:

  • opencv:傅里叶变换有什么用?怎么写傅里叶变换?
  • 软件著作权产生与登记关键点
  • 从单机到分布式:用飞算JavaAI构建可扩展的TCP多人聊天系统
  • 算法基础 第3章 数据结构
  • 数学建模-非线性规划模型
  • 深入理解提示词工程:从入门到精通的AI对话艺术
  • Mybatis实现页面增删改查
  • 数仓分层架构设计全解析:从理论到实践的深度思考
  • 一台联想 ThinkCentre M7100z一体机开机黑屏无显示维修记录
  • 【跨越 6G 安全、防御与智能协作:从APT检测到多模态通信再到AI代理语言革命】
  • 解决“Win7共享文件夹其他电脑网络无法发现共享电脑名称”的问题
  • 机器视觉之图像处理篇
  • c/c++ UNIX 域Socket和共享内存实现本机通信
  • 从概率填充到置信度校准:GPT-5如何从底层重构AI的“诚实”机制
  • 【网络安全测试】手机APP安全测试工具NowSecure 使用指导手册(有关必回)
  • PHP 开发全解析:从基础到实战的进阶之路
  • 【CV 目标检测】R-CNN①——Overfeat
  • GPT-5 提示词优化全攻略:用 Prompt Optimizer 快速迁移与提升,打造更稳更快的智能应用
  • RH134 管理基本存储知识点
  • 【车联网kafka】用钟表齿轮理解 Kafka 时间轮​(第七篇)
  • PlantSimulation知识点2025.8.14
  • pycharm远程连接服务器跑实验详细操作
  • 云计算-Docker Compose 实战:从OwnCloud、WordPress、SkyWalking、Redis ,Rabbitmq等服务配置实例轻松搞定
  • UML函数原型中stereotype的含义,有啥用?
  • UE5 C++ 删除文件
  • 4.Ansible部署文件到主机
  • 配置docker pull走http代理
  • 【网络】HTTP总结复盘
  • 河南萌新联赛2025第(五)场:信息工程大学补题
  • TensorFlow深度学习实战(32)——深度Q网络(Deep Q-Network,DQN)