Centos9搭建FTP文件上传服务-Python通过ftplib上传图片

Centos9搭建FTP文件上传服务-Python通过ftplib上传图片

概述

本章教程讲述Centos9搭建FTP文件上传服务,并用Python通过ftplib库实现图片的上传

步骤

1、安装 vsftpd

服务器上执行 sudo dnf install vsftpd -y,如图

a29c7ce15ceab7e34cdc190a1fa186c7

2. 启动并启用服务

分别执行如下命令

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

如图

f527884d559a4526236e3e2fc9ca1943

3. 配置 vsftpd

找到 /etc/vsftpd/vsftpd.conf 文件,然后在文件末尾添加如下内容

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

# 允许用户登录后进入根目录(重要)
chroot_local_user=YES
allow_writeable_chroot=YES

# 设置上传目录(可选)
# local_root=/uploads

# 被动模式(用于外网连接)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

注意local_root是你期望上传的目录,如图

44bf196457d62880ac47d48e014e8799

4. 创建专用 FTP 用户

添加 /sbin/nologin 到 /etc/shells

echo "/sbin/nologin" | sudo tee -a /etc/shells

创建用户,家目录指向 /uploads,禁止 shell 登录

sudo useradd -d /uploads -s /sbin/nologin ftp_user

 

设置密码

sudo passwd ftp_user

# 输入密码,例如:your_ftp_password

如图

6d6b3dd57d613b8fd36eee4f430fb129

5.设置 /uploads 目录权限

我这里是上传到服务器根目录下的uploads目录

# ftp_user是上一步创建的用户
sudo chown -R ftp_user:ftp_user /uploads
sudo chmod -R 755 /uploads

如图

449e216afc33481791b422d7aa3d107f

6.如果以下端口没开放还需额外开放

# 主动模式端口
sudo firewall-cmd --permanent --add-port=21/tcp
# 被动模式端口范围
sudo firewall-cmd --permanent --add-port=40000-50000/tcp
# 重新加载
sudo firewall-cmd --reload

7.重启 vsftpd

执行命令如下

sudo systemctl restart vsftpd

8.python上传图片代码

from ftplib import FTP
import os

# FTP 服务器配置
host = ''  #你的服务器 IP
port = 21
username = 'ftp_user'
password = ''  #设置的密码

# 本地图片路径
local_file = r'C:\Users\AW\Pictures\LW\图片 1.webp'  # 修改为你的本地图片路径
remote_filename = os.path.basename(local_file)  # 提取文件名

# 连接 FTP
ftp = FTP()

ftp.connect(host, port)
ftp.login(username, password)
print("✅ FTP 登录成功")

# 切换到目标目录(可选,如果是用户根目录可省略)
# ftp.cwd('/uploads')

# 上传文件
with open(local_file, 'rb') as f:
    ftp.storbinary(f'STOR {remote_filename}', f)

print(f"✅ 图片已上传到服务器: /uploads/{remote_filename}")

55c77fcaa5aa5873cc37ba487234e3a2

结语

如上为幽络源的Centos9搭建FTP文件上传服务-Python通过ftplib上传图片教程,我们的QQ群307531422

 

THE END
喜欢就支持一下吧
分享