【问题标题】:How can I specify the client's data port for a ftp server in active mode?如何在活动模式下为 ftp 服务器指定客户端的数据端口?
【发布时间】:2010-07-26 10:16:40
【问题描述】:

我使用 python ftplib 连接到一个在活动模式下运行的 ftp 服务器;这意味着当我们之间发送数据时,服务器将在随机端口上连接我的客户端计算机。

考虑到安全问题,我可以指定客户端的数据端口(或端口范围),让服务器连接某个端口吗?

非常感谢您的回复。

【问题讨论】:

  • “考虑安全问题”?什么安全问题?
  • 这是我不想在我的防火墙iptables中打开所有到ftp服务器的端口。有问题吗?:)

标签: python networking ftplib


【解决方案1】:

the standard ftplib module 无法做到这一点。

如果你有勇气的话,你要么找到一个提供此功能的替代库,要么在 FTP 对象上对 makeport() 方法进行猴子补丁。

【讨论】:

  • 感谢 Dave 的建议~~请问有没有命令行方式来完成这个?
【解决方案2】:

从 Python 3.3 开始,建立连接的 ftplib 函数采用 source_addr 参数,允许您执行此操作。

【讨论】:

  • source_address(没有source_addr)控制着传出连接的源地址和端口(所以在被动模式下控制连接和传出数据连接)。对主动模式下的监听端口没有影响。
猜你喜欢
  • 2017-02-12
  • 2014-01-14
  • 2022-12-08
  • 1970-01-01
  • 2012-11-08
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多