pyftpdlib搭建ftp服务器

一、安装python、pip、virtualenvpython

#centos下python是自带,无需本身安装
#安装pip
sudo yum -y install epel-release
sudo yum -y install python-pip
sudo yum clean all
#安装virtualenv
yum install python-virtualenv

二、安装pyftpdlibwindows

#建立并开启虚拟环境
virtualenv ftp_evn
source ftp_evn/bin/activate

#安装pyftpdlib
pip install pyftpdlib

三、写启动脚本ftpserver.pycentos

#!/usr/bin/env python

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


def main():
    authorizer = DummyAuthorizer()
    authorizer.add_user("admin", "h3c.com!", "/opt/share", perm="elradfmwM")
    handler = FTPHandler
    handler.authorizer = authorizer
    server = ThreadedFTPServer(('', 21), handler)
    server.serve_forever()


if __name__ == "__main__":
    main()

四、运行浏览器

nohup python ftpserver.py &

浏览器访问ftp://10.90.3.118  (个人服务器ip是10.90.3.118)。输入用户名/密码后可见目录:bash

五、关于windows上传文件后,文件名中文乱码问题的解决方案服务器

pyftpdlib内部使用utf-8,windows使用的是gbk,能够对pyftpdlib源码进行修改:code

一、filesystems.py AbstractedFS.format_list与AbstractedFS.format_list
最后一行 yield line.encode('utf8', self.cmd_channel.unicode_errors) utf8改成gbk
二、handlers.py FTPHandler.decode return bytes.decode('utf8', self.unicode_errors) utf8改成gbk
相关文章
相关标签/搜索