| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- # -*- coding:utf8 -*-
- #!/usr/bin/env python
- #coding:utf-8
- from pyftpdlib.authorizers import DummyAuthorizer
- from pyftpdlib.handlers import FTPHandler,ThrottledDTPHandler
- from pyftpdlib.servers import FTPServer
- from pyftpdlib.log import LogFormatter
- import logging
- #记录日志,默认情况下日志仅输出到屏幕(终端)
- logger = logging.getLogger()
- logger.setLevel(logging.INFO)
- ch = logging.StreamHandler()
- fh = logging.FileHandler(filename='bzyftpserver.log')
- ch.setFormatter(LogFormatter())
- fh.setFormatter(LogFormatter())
- logger.addHandler(ch) #将日志输出至屏幕
- logger.addHandler(fh) #将日志输出至文件
- # 实例化虚拟用户,这是FTP验证首要条件
- authorizer = DummyAuthorizer()
- # 添加用户权限和路径,括号内的参数是(用户名, 密码, 用户目录, 权限),可以为不同的用户添加不同的目录和权限
- # 孢子仪ftp路径
- authorizer.add_user("ftpbzytest", "123456", "ftp_file/bzy_test", perm="elradfmw")
- #这个是添加匿名用户,任何人都可以访问,如果去掉的话,需要输入用户名和密码,
- # 添加匿名用户 只需要路径
- # authorizer.add_anonymous("d:/")
- # 初始化ftp句柄
- handler = FTPHandler
- handler.authorizer = authorizer
- #添加被动端口范围
- handler.passive_ports = range(2000, 2333)
- # 下载上传速度设置
- dtp_handler = ThrottledDTPHandler
- dtp_handler.read_limit = 500 * 1024 #300kb/s
- dtp_handler.write_limit = 500 * 1024 #300kb/s
- # 开启服务器
- # 监听ip 和 端口,linux里需要root用户才能使用21端口
- server = FTPServer(("0.0.0.0", 9999), handler)
- # 大服务器内网地址:172.16.220.3
- # server = FTPServer(("172.16.220.3", 21), handler)
- # 小服务器内网地址:172.24.159.211
- # server = FTPServer(("172.24.159.211", 21), handler)
- # server = FTPServer(("127.0.0.1", 21), handler)
- # 最大连接数
- server.max_cons = 500
- server.max_cons_per_ip = 15
- # 开始服务,自带日志打印信息
- server.serve_forever()
|