python3 搭建ftp 文件服务器

 

依赖 :

pip3 install pyftpdlib

脚本:
# coding: utf-8
import os
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

def main():
    #实例化用户授权管理
    authorizer = DummyAuthorizer()
    authorizer.add_user('user','123456','/',perm='elradfmwMT') #添加用户 参数:username,password,允许的路径、权限
    authorizer.add_anonymous(os.getcwd()) #这里是允许匿名用户访问,指定路径 ru: '/hone/hello'
  
    #实例化FTPHandle
    handler = FTPHandler
    handler.authorizer = authorizer

    #设定一个客户端链接时的标语
    handler.banner = '你好吗? 我已经注意你很久了! 欢迎访问myftp.'

    # handler.masquerade_address = '192.168.88.2'
    # address = ('192.168.88.2', 21) #FTP 一般使用21、20端口
    server = FTPServer(('127.0.0.1', 2121), handler)  #FTP服务器实例
    #设定一个限制连接
    server.max_cons = 256
    server.max_cons_per_ip = 5

    #开启服务器
    server.serve_forever()

if __name__ == '__main__':
    main()

部分其他配置:

# coding: utf-8
#import os
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler
from pyftpdlib.servers import FTPServer
from conf import settings
import logging

def main():
    #实例化用户授权管理
    authorizer = DummyAuthorizer()
    authorizer.add_user('user','123456','/',perm='elradfmwMT') #添加用户 参数:username,password,允许的路径、权限
    #authorizer.add_anonymous(os.getcwd()) #这里是允许匿名用户访问,指定路径 ru: '/hone/hello'
    authorizer.add_anonymous('/home/sea')

    
    #下载上传速度设置
    #dtp_handler = ThrottledDTPHandler
    #下载速度 300kb/s
    #dtp_handler.read_limit = 300 * 1024
    #dtp_handler.write_limit = 300 * 1024

    #实例化FTPHandle
    handler = FTPHandler
    handler.authorizer = authorizer

    # handler.masquerade_address = '192.168.88.2'
    # address = ('192.168.88.2', 21) #FTP 一般使用21、20端口
    #FTP服务器实例 0.0.0.0
    server = FTPServer(('127.0.0.1', 2121), handler)  
    #添加被动端口范围
    handler.passive_ports = range(2000, 2333)


    #日志记录
    #logging.basicConfig(filename="/tmp/myftp/log.log", level=logging.INFO)


    #设定一个限制连接
    server.max_cons = 200
    #最多IP数
    server.max_cons_per_ip = 5

    #开启服务器
    server.serve_forever()

if __name__ == '__main__':
    main()

关于权限 , 用户, 可以参考:https://blog.csdn.net/hanyuyang19940104/article/details/80420500

猜你喜欢

转载自www.cnblogs.com/lshan/p/11784570.html