Transferência de ficheiros pela rede com o RFTPS
Neste tutorial vamos abordar o processo de transferência de ficheiros pela rede de um dispositivo para outro. Vamos utilizar uma aplicação que desenvolvi em Rust, que utiliza o protocolo FTP para enviar e receber ficheiros pela rede. O dispositivo de envio/cliente pode ser qualquer um (telemóvel, portátil, computador de secretária). Para o servidor, atualmente suportamos Windows, Linux e MacOSX.
Aqui estão alguns termos técnicos que poderás não conhecer e que aparecerão ao longo deste tutorial:
- Rust – Uma linguagem de programação conhecida por ser rápida, segura e excelente para construir aplicações seguras.
- FTP (File Transfer Protocol) – Um protocolo usado para transferir ficheiros entre computadores através da internet, frequentemente utilizado para enviar conteúdos de websites.
- Emissor/Cliente – O dispositivo que envia os dados.
- Servidor – O dispositivo que recebe os dados.
- Diretório – Outro nome para uma pasta no teu computador onde guardas ficheiros.
- Caminho – Uma forma de indicar ao computador onde está localizado um ficheiro ou pasta.
- Caminho absoluto – A localização completa de um ficheiro/pasta, por exemplo:
C:\Users\OSeuNome\Desktop\NovaPastaC:\Users\OSeuNome\Desktop\NovoFicheiro.txt
- Caminho relativo – Uma localização com base no sítio onde te encontras atualmente.
- Caminho absoluto – A localização completa de um ficheiro/pasta, por exemplo:
- Endereço IP
- Local – Um endereço que existe apenas dentro da tua rede doméstica e que está dentro de intervalos específicos. Cada máquina tem o seu próprio endereço único dentro desses intervalos.
- Público – O endereço usado pelos teus dispositivos para se ligarem à internet. Normalmente tens apenas 1 endereço IP público para todos os dispositivos e o teu router é o responsável por encaminhar os pedidos internos para cada endereço IP privado.
A aplicação (RFTPS) é de código aberto. Podes consultar o seu código-fonte, submeter pedidos, ou criar/reportar um novo problema.
- Vai a https://github.com/hallowslab/rftps/releases
- No topo da página deverás encontrar a versão mais recente do
RFTPS - Na secção inferior da release, onde diz “Assets”, terás várias opções para descarregar. Escolhe a que corresponde ao teu sistema. Exemplo:
- Windows - rftps-x86_64-pc-windows-msvc.zip
- Linux - rftps-x86_64-unknown-linux-gnu.tar.gz
- Mac (Modelos antigos) - rftps-x86_64-apple-darwin.tar.gz (não testado, reporta quaisquer problemas acima)
- Mac (Modelos novos, chips M1 & M2) - rftps-aarch64-apple-darwin.tar.gz (não testado, reporta quaisquer problemas acima)

Poderás receber um aviso sobre uma aplicação não reconhecida, porque o Windows não conhece esta aplicação e as licenças de assinatura de código são caras 🙃
Esse aviso desaparecerá com o tempo se mais pessoas descarregarem a aplicação
Para ultrapassar o aviso, clica em “Mais informações”

Depois em “Executar mesmo assim”

Terás também de permitir acesso à rede à aplicação, pois esta irá transferir ficheiros através da mesma.

Configuração automática
- Extrai os ficheiros do arquivo zip. Irás obter um executável chamado “rftps-x86_64-pc-windows-msvc.exe” e dois ficheiros de certificado:
cert.pemekey.pem(estes são usados para encriptar os dados entre cliente e servidor). O executável deve estar sempre no mesmo local que os ficheiros de certificado — se moveres o executável, move também esses dois ficheiros. - Move ou copia o executável e os certificados para um local habitual como o Ambiente de Trabalho ou uma pen/disco externo. (Pode continuar na pasta Downloads, mas se executares diretamente a aplicação, será criada uma pasta chamada
rftpsdentro da pasta Downloads onde os ficheiros recebidos ficarão guardados). - Se não quiseres configurar nome de utilizador, palavra-passe e diretório, basta fazer duplo clique em
rftps-x86_64-pc-windows-msvc.exee ele assumirá os seguintes valores por defeito:- Nome de utilizador:
rftps - Palavra-passe: Gerada aleatoriamente sempre que executas o
RFTPS - Diretório:
./ftps - Se quiseres configurar estas opções manualmente, continua a seguir os passos.
- Nome de utilizador:
Terás de manter a janela do terminal aberta enquanto estiveres a transferir ficheiros (essa janela é o servidor RFTPS). Quando terminares, basta fechar a janela e o programa deixará de correr. Para o voltar a executar, basta fazer duplo clique novamente.
Configuração manual
-
O executável
RFTPSpermite configurar o nome de utilizador e palavra-passe de autenticação, assim como outros parâmetros (mais opções serão adicionadas futuramente):-a, --address: Endereço onde o servidor FTP vai escutar, por defeito é “rftps”-p, --port: Porta onde o servidor FTP escuta-d, --directory: Diretório onde os ficheiros serão guardados. Por defeito, oRFTPScria uma pasta chamada “rftps” no mesmo local do executável-u, --username: Nome de utilizador para autenticação FTP-P, --password: Palavra-passe para autenticação FTP-f, --enable-ftps: Ativa/desativa FTPS (encriptação entre cliente e servidor). Pode sertrueoufalse--cert-pem: Ficheiro de certificado “cert.pem”--key-pem: Chave do certificado “key.pem”
-
Para executar manualmente o
RFTPScom parâmetros:- No Windows 10 ou superior, mantém Shift pressionado e clica com o botão direito na pasta onde está o executável. Exemplo: se estiver no Ambiente de Trabalho, clica com o botão direito no fundo do Ambiente de Trabalho e escolhe “Abrir terminal aqui” ou “Abrir janela do PowerShell aqui”.
- O mesmo aplica-se a qualquer pasta — navega até ela no Explorador do Windows, mantém Shift pressionado e clica com o botão direito.
-
Deverás agora ter uma nova janela de “Terminal/Comando/Powershell” aberta.
-
Inicia o executável
RFTPScom os parâmetros desejados:- Podes chamar o
RFTPSpelo nome e usar o parâmetro--helppara veres as instruções de uso:
.\rftps-x86_64-pc-windows-msvc.exe --help(O.\\no Windows indica que existe um executável nesse caminho) - Exemplo com parâmetros manuais:
.\rftps-x86_64-pc-windows-msvc.exe --port 2123 -d "E:\NovaPasta" -u hallowslab --password "9x3_?oJ+U/f-H#"
- Podes chamar o
-
Verifica como ligar o cliente ao servidor
Ligar cliente ao servidor
Para te ligares ao servidor FTP, precisas de instalar um cliente FTP no dispositivo que irá enviar os ficheiros. Aqui em baixo tens alguns exemplos.
-
Android:
- File Manager + - Clica Aqui para ver o tutorial
- CX File Explorer
- AndFTP
-
IOS:
- FTPManager - Clica Aqui para ver o tutorial
-
Windows:
- Microsoft FTP utility
- Filezilla - clica Aqui para ver o tutorial
- Deve suportar a maioria dos clientes linux através do WSL
-
Linux:
-
MacOS
- Filezilla - Clica Aqui para ver o tutorial
- Commander One
- Cyberduck
Se tiveres problemas com o RFTPS, sente-te à vontade para os reportar no GitHub. Se tiveres outras dúvidas ou questões, podes contactar-me pelas redes sociais.