AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 17084
Accepted
Scaine
Scaine
Asked: 2010-12-13 07:05:30 +0800 CST2010-12-13 07:05:30 +0800 CST 2010-12-13 07:05:30 +0800 CST

如何临时运行 FTP 服务器?

  • 772

在 Ubuntu 世界中,您似乎要么总是运行 FTP 服务器,要么从不运行。也许我是第一个需要使用 Ubuntu 刷新 Cisco、Checkpoint 或 Nokia 映像的网络分析师……我需要一个 FTP 服务器可能需要 5 分钟,仅此而已。

我正在寻找一个简单的、用户启动的 FTP 服务器。我知道它可能必须使用 sudo 运行。很好 - 但我想像普通程序一样启动/停止它。

在 Windows 平台上,这样的工具非常多——我已经使用 3CDaemon 多年,最近发现了 CoreFTP。两者都很棒。您配置一个用户,将其指向一个目录,然后点击“开始”按钮。几分钟后,您通常会完成并点击“停止”按钮。任务完成。

Ubuntu 上似乎不存在此类工具。我找到了一个Google 代码项目,它可以相当好地创建一个 TFTP 实例(假设它仍然运行——我大约一年没有使用它并且 python 已经继续前进),但是 FTP 怎么样?外面有什么吗?

server ftp tftp
  • 3 3 个回答
  • 41422 Views

3 个回答

  • Voted
  1. Best Answer
    Stefano Palazzo
    2010-12-13T08:13:31+08:002010-12-13T08:13:31+08:00

    您可以使用pyftpdlib让 FTP 服务器像一二三一样简单:

    1. 使用 pip 安装pip install --user pyftpdlib
    2. 使用 运行,如果您也想要写访问权限,请python -m pyftpdlib添加。-w
    3. 没有第三步:)

    您现在有一个 ftp 服务器,您可以登录到匿名共享您的主目录。这更多地意味着对模块的测试,但它确实做到了它在锡上所说的那样。

    这个命令:

    python -m pyftpdlib --directory=FTP --port=2121 --write
    

    将在没有 root 权限的情况下在端口 2121 上提供服务,并向匿名用户授予写访问权限。它还将使用FTP当前工作目录中的目录而不是您的主目录。键入python ftpserver.py --help以获取有关所有选项的信息。

    • 登录到它anonymous@localhost:2121/

    替代文字

    请注意,该软件是根据MIT 许可条款发布的,这意味着您基本上可以随心所欲地使用它。阅读许可文本,它只有几行,并了解您的权利。


    现在,这个脚本不支持用户名和密码作为其独立功能的一部分(出于安全原因,我想)。

    所以我添加了这个功能:

    • 下载我的修改版本

    除了我提到的所有选项之外,您现在还有命令行参数

    --username=USERNAME和--password=PASSWORD:

    python ftpserver.py --port=2121 --username=ftpuser --password=3r2u389r2u333j
    

    再次,用于--help查看所有内容。

    这应该尽可能简单。


    我还为它写了一个小gui:

    替代文字

    • 在此处下载(更新于第 6 版)

      很抱歉,它有 3999 行长,但它会完成原版所做的一切。我想把它全部保存在一个文件中。当它在没有任何参数的情况下启动时(即使其可执行并双击它,或者为它创建一个启动器),它会启动一个小 gui 来配置您的服务器。您仍然可以将其作为 python 模块导入或使用上面的命令行 fu。

      已知的问题:

      • 除了端口 2121 之外,我没有打扰任何其他东西。这应该很简单,使端口可配置需要复杂的错误处理,我不希望用户打扰。2121 应该总是可以正常工作。

      • 它不会像命令行那样警告您使用不安全的配置。即不设置密码或类似的东西。


    编辑:因为pyftpdlib和ftpserver.py改变的API(和ubuntu pastebin链接消失了);上面的大部分帖子都不再起作用了。对于 (2014) 版本pyftpdlib,使用此脚本 ( ftpserver-cli.py) 来实现与上述相同的功能:

    #!/usr/bin/env python
    # ftpserver-cli.py
    import sys
    sys.path.append("/path/to/pyftpdlib-svn") # enter your proper path here
    import argparse
    
    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers import FTPHandler
    from pyftpdlib.servers import FTPServer
    
    def processCmdLineOptions():
      global optparser
      optparser = argparse.ArgumentParser(description="ftpserver-cli",
                  formatter_class=argparse.RawDescriptionHelpFormatter)
      optparser.add_argument('-u', '--username', action='store', type=str,
          default="user", help="username")
      optparser.add_argument('-p', '--password', action='store', type=str,
          default="12345", help="password")
      optparser.add_argument('-t', '--port', action='store', type=int,
          default="21", help="port")
      optparser.add_argument('-d', '--directory', action='store', type=str,
          default="/home/stefano/Projekte/", help="port")
      optargs = optparser.parse_args(sys.argv[1:]) #(sys.argv)
      return optargs
    
    
    optargs = processCmdLineOptions()
    
    print("Using: user: %s pass: %s port: %d dir: %s" % (optargs.username, optargs.password, optargs.port, optargs.directory))
    
    authorizer = DummyAuthorizer()
    authorizer.add_user(optargs.username, optargs.password, optargs.directory, perm="elradfmw")
    #authorizer.add_anonymous("/home/nobody")
    
    handler = FTPHandler
    handler.authorizer = authorizer
    
    server = FTPServer(("127.0.0.1", optargs.port), handler)
    server.serve_forever()
    

    致电:

    $ sudo python ftpserver-cli.py --directory=/tmp/srvtest
    Using: user: user pass: 12345 port: 21 dir: /tmp/srvtest
    [I 14-03-02 21:40:57] >>> starting FTP server on 127.0.0.1:21, pid=19286 <<<
    ...
    
    • 65
  2. karthick87
    2010-12-13T07:18:10+08:002010-12-13T07:18:10+08:00
    • 你可以使用 纯ftpd 安装纯 ftpd

    • 如果您有 ssh 服务器,则可以使用scp 。

    • 2
  3. BO VESTERGAARD
    2012-12-20T06:33:18+08:002012-12-20T06:33:18+08:00

    对于那些将文件复制到路由器和从路由器复制文件的人,您可能想尝试一下这个工具:tftpgui

    它对我有用,而且很容易配置。它也是一个 Python 脚本,但使用 tftp 而不是 ftp。您所要做的就是安装 python-tk 并下载脚本

    唯一需要注意的是 Ubunutu 默认为 Phython2,因此启动脚本的最佳方式是:

    sudo python3 ./tftpgui.py
    

    然后,您可以在 GUI 中对其进行配置。当你完成后,你按退出,就是这样。

    博

    • 0

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve