De acordo com a página man tnftpd(8)
... The server
uses the TCP protocol and listens at the port specified in the ''ftp''
service specification; see services(5).
e uma varredura através de ftpd.conf(5)
não mostra nenhum meio óbvio de mexer com a porta de escuta (ao contrário da porta de dados, que é diferente) então vamos ver se podemos modificar o arquivo services
, que provavelmente é ruim ideia.
$ sudo perl -i.oops -pe 's/^(ftp\s+21)/${1}21/' /etc/services
$ grep 2121 /etc/services
ftp 2121/udp # File Transfer [Control]
ftp 2121/tcp # File Transfer [Control]
scientia-ssdb 2121/udp # SCIENTIA-SSDB
scientia-ssdb 2121/tcp # SCIENTIA-SSDB
nupaper-ss 12121/tcp # NuPaper Session Service
nupaper-ss 12121/udp # NuPaper Session Service
$
E com esta horrível e horrível kluge efetuada agora começamos ftpd
... (isso é em um sistema 10.11.6 que tem ftpd
instalado por padrão sob /usr/libexec
)
$ /usr/libexec/ftpd -lnDr -P 50001
$
E ele está sendo executado como não-raiz na porta não- 21
:
$ pgrep -lf ftpd
35258 /usr/libexec/ftpd -lnDr -P 50001
$ lsof -P -p 35258 | grep 2121
ftpd 35258 jhqdoe 4u IPv4 0x817b7cd1effd8d7f 0t0 TCP *:2121 (LISTEN)
ftpd 35258 jhqdoe 5u IPv6 0x817b7cd1effa3107 0t0 TCP *:2121 (LISTEN)
$
Se isso funciona ou não, eu não sei; você realmente precisa de FTP ?
Para desfazer essa alteração, sudo mv /etc/services.oops /etc/services