一、安装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