Issue #13382 has been updated by osa (Shunsuke OSA).


shugo (Shugo Maeda) wrote:
> The name data_listening_address= seems misleading because it doesn't
> change the address to be bound.

I see. It is reasonable.

> And data_listening_port= is less flexible than setActivePortRange()
> because it doesn't allow multiple port numbers.

This is reasonable too.
But as you know, PORT command can send only one port number.
I will implement that Net::FTP choose one of the port number in the range randomly.
(FTPClient of Apache Commons does so)


----------------------------------------
Feature #13382: [PATCH] Options for FTP PORT command
https://bugs.ruby-lang.org/issues/13382#change-64349

* Author: osa (Shunsuke OSA)
* Status: Open
* Priority: Normal
* Assignee: shugo (Shugo Maeda)
* Target version: 
----------------------------------------
# Abstract

Add options to Net::FTP to set data listening host and port.

# Background

Net::FTP sends local address and default port to remote FTP server.
In FTP active mode, remote server will connect to client to establish data connection, but it will fail if there is NAT in network.
(NAT doesn't rewrite address and port in PORT command because they are not in packet header but payload)
So, it's necessary to set host and port for FTP PORT command explicitly.

# Real use cases

Active FTP is not working in AWS EC2.

- https://forums.aws.amazon.com/thread.jspa?messageID=75667 (Login required)
- http://osa.hatenablog.com/entry/2015/02/24/134826 (Japanese)

# Pull request

- https://github.com/ruby/ruby/pull/1561



-- 
https://bugs.ruby-lang.org/