No link do documento, há um endereço MasqueradeAddress a ser usado e você deve definir o intervalo de portas para permitir (ou usar o módulo conntrack_ftp como MadHatter disse)
Eu tenho 2 servidores, um como gateway / roteador, o outro como servidor. Eu uso o iptables para encaminhar as seguintes portas: 21
, 20
, 65500-65600
. Quando me conecto com Filezilla
ou Total Commander
, o cliente ftp sabe que 10.10.0.1
representa um endereço IP interno e alterna para o endereço IP externo. No entanto, o NPPftp
plugin de Notepad++
se conecta ao servidor, mas quando ele alterna para o modo passivo, ele tenta o endereço IP interno e congela.
Saída:
220 ProFTPD x.x.x Server [10.10.0.1]
-> USER www
331 Password required for www
-> PASS *HIDDEN*
230 User www logged in
-> TYPE A
200 Type set to A
-> MODE S
200 Mode set to S
-> STRU F
200 Structure set to F
-> PWD
257 "/" is the current directory
Connected
-> CWD /
250 CWD command successful
-> PASV
227 Entering Passive Mode (10,10,0,1,255,222).
-> LIST -al
Failure retrieving contents of directory /
Existe uma maneira de retornar o endereço IP externo para as portas passivas do iptables?
No link do documento, há um endereço MasqueradeAddress a ser usado e você deve definir o intervalo de portas para permitir (ou usar o módulo conntrack_ftp como MadHatter disse)
Nas novas versões, você não precisa de nenhum mascaramento. Para a possibilidade de transferência ativa e passiva, você precisa do lado do cliente e do servidor abrir as próximas portas:
Em seguida, atualize o FTP para usar o intervalo de portas passivo 60000-65535. Então, no lado do cliente, use o modo Passivo (no caso do IP NAT). Outro ativo Ativo também funcionará. Detalhes e instruções - link