返回列表 发帖

Python3搭建FTP服务器

操作系统的版本信息:
[root@centos6 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@centos6 ~]#
[root@centos6 ~]# uname -r
2.6.32-696.el6.x86_64

服务器的IP地址:
[root@centos6 ~]# ifconfig | grep 'Bcast' |awk '{print $2}' |awk -F: '{print $2}'
192.168.168.130

Python的版本信息:
[root@centos6 ~]# python3 --version
Python 3.6.8


Linux安装第三方库:(pyftpdlib)
[root@centos6 ~]# pip3 install pyftpdlib -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com


开启FTP服务:(要先在服务器上切换工作目录)
cd zabbix-4.4.5
python3 -m pyftpdlib

图片1.png
笺注:
FTP根目录为/root/zabbix-4.4.5
默认使用TCP 2121端口;
组合键Ctrl+c可结束程序的执行;


防火墙配置:(打开TCP 2121端口)
iptables -I INPUT -p tcp --dport 2121 -j ACCEPT
iptables-save > /etc/sysconfig/iptables



客户端使用FlashFXP进行连接:(使用匿名用户、TCP 2121端口)
图片2.png

图片3.png
备注:
可能会连接得很慢,甚至连接不了,出现以下警告信息:
[右] 数据 Socket 错误: 连接超时
[右] 列表错误
[右] PASV 模式失败, 尝试 PORT 模式。
[右] PORT 模式成功, 请更新你的站点配置文件。



解决方法:
选项》参数设置:
图片4.png

站点》站点管理器》选择站点》选项:(每个FlashFXP站点都要设置一次)
图片5.png

图片6.png

再次连接这个FlashFXP站点就正常了:(支持中文显示)
图片7.png

笺注:FTP匿名用户可以切换目录、下载文件、文件夹,但不能上传文件、文件夹,也不能做更改、删除等等操作。





############
############

编写脚本:
[root@centos6 ~]# cat xx.py
#coding=utf-8

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

authorizer = DummyAuthorizer()

# 参数:FTP用户名,密码,FTP根目录,对FTP目录所拥有的权限
authorizer.add_user('zhuohua', '88', '/root/zabbix-4.4.5', perm='elradfmwMT')
authorizer.add_user('Python', '123', '/root/zabbix-4.4.5', perm='elr')

handler = FTPHandler
handler.authorizer = authorizer

# 参数:服务器的IP地址,FTP端口号,handler
server = FTPServer(('0.0.0.0',21), handler)

# 开启FTP服务
server.serve_forever()


设置脚本权限:
[root@centos6 ~]# chmod a+x xx.py

运行脚本:
[root@centos6 ~]# python3 xx.py


脚本运行中的效果:(组合键Ctrl+c可结束程序的执行)
图片8.png


防火墙配置:(打开TCP 21端口)
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables-save > /etc/sysconfig/iptables



客户端使用FlashFXP进行连接:(使用自定义FTP用户、TCP 21端口)
图片9.png

图片10.png

笺注:
FTP用户zhuohua可以在FTP目录里做任意操作(包括上传、下载等等);
FTP用户Python只可以切换目录,以及下载文件、文件夹;





############
############

Linux卸载第三方库:(pyftpdlib)
[root@centos6 ~]# pip3 uninstall pyftpdlib -y
Uninstalling pyftpdlib-1.5.6:
  Successfully uninstalled pyftpdlib-1.5.6





相关文章:
Python3搭建HTTP文件服务器
Windows2008r2_Serv-U_6.3

返回列表