首页 > 其他分享 >pyftpdlib 实现FTP服务器

pyftpdlib 实现FTP服务器

时间:2024-03-26 22:35:02浏览次数:13  
标签:FTP authorizer 端口 server handler pyftpdlib 服务器

pyftpdlib 默认是被动模式,如果没有设置数据传输默认端口范围,则默认为60000-65535。这就需要服务端开放命令端口21和数据范围端口

FTP传输协议

  • 双向传输:需要建立两个TCP连接,一个用于传输命令,一个用于传输数据
  • 21端口用于传输命令端口
  • 主动模式:在客户端连接21端口时发送一个数据传输端口,以便可以让服务端使用20端口来连接。要求客户端开放防火墙
  • 被动模式:要求服务端开启数据传输端口

pyftpdlib 基础FTP服务

import os

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

def main():
    # Instantiate a dummy authorizer for managing 'virtual' users
    authorizer = DummyAuthorizer()

    # Define a new user having full r/w permissions and a read-only
    # anonymous user
    authorizer.add_user('user', '12345', '.', perm='elradfmwMT')
    authorizer.add_anonymous(os.getcwd())

    # Instantiate FTP handler class
    handler = FTPHandler
    handler.authorizer = authorizer

    # Define a customized banner (string returned when client connects)
    handler.banner = "pyftpdlib based ftpd ready."

    # Specify a masquerade address and the range of ports to use for
    # passive connections.  Decomment in case you're behind a NAT.
    #handler.masquerade_address = '151.25.42.11'
    #handler.passive_ports = range(60000, 65535)

    # Instantiate FTP server class and listen on 0.0.0.0:2121
    address = ('', 2121)
    server = FTPServer(address, handler)

    # set a limit for connections
    server.max_cons = 256
    server.max_cons_per_ip = 5

    # start ftp server
    server.serve_forever()

if __name__ == '__main__':
    main()


来自为知笔记(Wiz)

标签:FTP,authorizer,端口,server,handler,pyftpdlib,服务器
From: https://www.cnblogs.com/baiyifengyun/p/18097783

相关文章

  • Nginx服务器状态监控与自动重启Shell脚本
    脚本代码:#!/bin/bash#Nginx服务器状态监控与自动重启脚本#版本:1.0#作者:XXX#日期:XXXX-XX-XX#定义Nginx进程文件路径NGINX_PID=/var/run/nginx.pid#定义Nginx日志路径NGINX_ERROR_LOG=/var/log/nginx/error.log#定义Nginx可执行文件路径NGINX_BIN=/usr/......
  • 推荐几款免费试用云服务器
    随着云计算技术的快速发展,越来越多的企业和个人开始选择使用云服务器来部署和管理他们的应用程序和服务。云服务器不仅提供了弹性、高效的计算资源,还大幅降低了IT成本和维护难度。为了满足广大用户的需求,各大云服务提供商纷纷推出了免费试用云服务器的活动。本文将为大家推荐几......
  • 摩根大通:金和铜短期都涨多了 & “一年十倍股”超微:预计在AI服务器占10-15%份额,给24倍P
    今年以来大宗商品持续回暖,黄金、铜等金属表现尤为亮眼,乐观情绪蔓延之际摩根大通站出来提醒,小心回调风险!摩根大通在最新商品金属周报指出,黄金和铜价的急剧上涨反映了市场对中长期趋势的乐观预期,然而近期涨势可能超出了基本面的短期支撑,投资者需关注潜在的回调风险。黄金方面,摩......
  • 我们该如何选择云服务器呢?
    如何选择云服务器在信息化高速发展的今天,云服务器已经成为企业和个人用户不可或缺的重要资源。选择一款合适的云服务器,不仅可以提升数据处理能力,还能节省运营成本,提高业务效率。那么,面对市场上琳琅满目的云服务器产品,我们该如何选择呢?本文将从性能、稳定性、安全性、价格以及服务......
  • 本地ftp服务器搭建-3CDaemon
    前言本篇我们将介绍本地利用3CDeamon搭建ftp服务器的方法。一.功能目的利用3CDeamon搭建ftp服务器。二.功能调研通过调研我们发现实现的过程如下1.前提需要下载一个软件软件下载链接:3CDaemon2.0-Download下载后安装即可2.搭建服务器3.本地访问三.实现功能1.搭建......
  • 【虚幻引擎】DTWebSocketServer 蓝图创建WebSocket服务器插件使用说明
    本插件可以使用蓝图创建WebSocket服务器,并监听响应数据。下载地址在文章最后。 1.节点说明CreateWebSocketServer–创建WebSocket服务器对象并开启监听创建一个WebSocket服务器对象,并监听相应端口,连接地址为ws://IP:PORT,比如ws://192.168.1.5:9001返回的对象需要......
  • Qt QTcpSocket 对连接服务器中断的不同情况进行判定
    简述对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态。而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结。分为下面六种不同情况   客户端网线断开   客户端网络断开   客户端通过HTTP代理连接服务器,代理机器断开代......
  • NLog使用和日志上传指定服务器
    背景之前使用的log4net进行日志的记录,但是找过相关资料之后发现log4net不支持根据指定的配置将不同类的日志写入到不同的文件中为了后续的运维需要需要将日志上传至上层平台的接口,方便后续的日志查看解决问题将日志进行分类存放,防止日志都在同一个文件中,难以针对性的进行日......
  • asp net在View视图下通过javascript访问服务器上的文件
    以通过javascript访问服务器上的文件为例控制器:[HttpPost]publicActionResultCheckFileExists(stringaFile){//检查文件是否存在if(System.IO.File.Exists(aFile))//theFile包括完整的路径和文件{returnContent("文件存在");}else{......
  • SVN服务器备份_svn服务器迁移
    SVN服务器备份_svn服务器迁移发布于2022-11-1115:01:38目录前言1hotcopy备份1.1方法说明1.2手动备份1.3自动备份1.3.1备份脚本1.3.2定时任务1.4还原方法1.4.1VisualSVN还原1.4.2SubVersion还原1.5异常提示2dump......