Estou procurando uma maneira simples, mas direta , de transferir um arquivo de qualquer tipo e tamanho entre duas pessoas. Se possível, ter apenas um navegador da Web, sem ter o arquivo armazenado em uma terceira máquina enquanto isso.
Desejo fazê-lo sem exigir que os usuários finais se conectem a um terceiro servidor, pois assim os dados fluirão pela máquina xyz.com
, possivelmente diminuindo a velocidade da transferência e apresentando riscos à segurança.
Gostaria de evitar a configuração de um servidor FTP inteiro apenas para transferências ocasionais de arquivos. Até agora eu descobri o JetBytes , Click2Copy e PipeBytes . Esses serviços da web devem facilitar a transferência. No entanto, o tráfego passa por seus servidores para que eles não sejam bons para o que eu quero.
Quero que a transferência seja direta entre o cliente e eu. A criptografia seria um recurso adicional interessante.
Sei que, para isso, tenho que abrir uma porta no meu computador e configurar um pouco de redirecionamento de porta no meu roteador. No entanto, a travessia de NAT também seria uma boa adição.
Minha pergunta é:
Existe uma maneira simples de uma única transferência direta de ponta a ponta entre dois computadores, evitando terceiros? (se possível, com criptografia e passagem NAT)
fonte
Respostas:
A maneira mais suja se você usar * nix é usar o netcat (
nc
) para colocar o arquivo no host remoto. Mas se você quiser criptografia, use o SCP / SSH.Você deve perceber que, se uma das partes estiver atrás de um NAT e não desejar configurar o encaminhamento de porta, será impossível estabelecer uma conexão direta sem antes conectar-se a um servidor de terceiros. O servidor não precisa necessariamente retransmitir o tráfego (consulte http://en.wikipedia.org/wiki/UDP_hole_punching ) e a maioria deles não é tão cara quanto a largura de banda.
Por exemplo, o Skype tentará usar muitos métodos transversais de NAT para estabelecer uma conexão direta antes de voltar a retransmitir o tráfego através de seus supernós. (O Skype é uma rede muito P2P.)
Quanto ao problema da conta. Eu acho que é inevitável. Todos os métodos exigirão algum tipo de configuração que geralmente é mais difícil do que registrar uma conta.
fonte
As soluções baseadas no WebRTC oferecem o que você precisa, talvez da forma mais simples. Você se conecta a um site de terceiros, mas isso é apenas para conectar os pares e não a parte da transferência de arquivos.
Serviços de exemplo:
https://www.justbeamit.com/
https://www.sharedrop.io/
EDIT: Entendo que isso não atende a todos os requisitos do OP, mas há outra solução muito útil: o Firefox Send . Com isso, você carrega seu arquivo em um servidor de terceiros em um formato criptografado. O serviço fornece um URL, que você pode compartilhar com outras pessoas. O URL também contém a chave para descriptografar o arquivo. Eles podem fazer o download do arquivo. O arquivo é excluído automaticamente após um número definido de downloads ou após 24 horas. O servidor nunca vê a chave e, portanto, não pode descriptografar o arquivo. A vantagem de usar um servidor de terceiros é que a parte de compartilhamento e a parte de download não precisam estar online simultaneamente.
fonte
Você pode sincronizar arquivos entre computadores remotos usando um rsync. Este utilitário está disponível para Windows no cygwin , ou você pode instalá-lo com o cwRsync pré-empacotado .
Deixarei intacta minha resposta anterior, mas, dadas as recentes revelações sobre a NSA, não recomendaria mais o Skype para transferências seguras de arquivos.
Você pode enviar um arquivo diretamente para outra pessoa usando o Skype . Às vezes, o Skype até funciona quando os dois usuários estão atrás do NAT. Se você estiver seguro o suficiente para abrir uma porta no seu roteador, isso aumentará a probabilidade de uma conexão direta negociar.
De maneira mais ampla, muitos programas de bate-papo incluem um mecanismo de compartilhamento / envio de arquivos. A maioria não fornece criptografia por padrão, como o Skype. Mas enquanto você e seu destinatário tiverem o mesmo cliente de bate-papo, você terá uma "ferramenta simples" para compartilhar arquivos.
fonte
Se o seu Linux / unix ssh em execução for uma maneira segura de transmitir arquivos em um modelo de servidor cliente. encaminhamento de porta necessário nas conexões de entrada, se estiver atrás do NAT.
fonte
FTP. Já existe há séculos. É inseguro como o diabo. E é simples.
Baixe o Filezilla, que pode funcionar como servidor e cliente. Verifique se o seu firewall está configurado para permitir a saída. Faça com que o seu destino baixe o filezilla e conecte-se ao servidor do filezilla. Transferir arquivo.
Assim, todos os seus bits são lançados na Internet para que todos vejam tanta roupa sacudindo na brisa no quintal.
fonte
Certa vez, escrevi uma postagem no blog sobre a transferência de arquivos com o servidor HTTP interno do Python . Em resumo, instale o Python, abra um prompt de comando
cd
no diretório com arquivos para compartilhar e executarpython -m SimpleHTTPServer
. Muito conveniente se você estiver no Linux ou OS X porque o Python é instalado por padrão (é fácil de instalar no Windows também).Se você está atrás de um NAT, precisa configurar o encaminhamento de porta no seu roteador ou algo assim (o que suponho que você já saiba).
fonte
Um servidor da web que pode fazer a travessia do UPnP NAT funcionaria, o receptor precisaria apenas de um navegador da web. Como uma criptografia de bônus é fácil com um servidor da Web, basta usar https.
Aqui está um exemplo (payware 99USD) RaidenHTTPD
fonte
A sincronização bit torrent sincroniza pastas pela web. Os arquivos também são criptografados. Confira.
http://www.bittorrent.com/sync
fonte
Você deve verificar http://filesovermiles.com Parece fazer exatamente o que você deseja. Transferência P2P direta via navegador (flash).
fonte
Você pode experimentar a Transferência de pastas em http://www.foldertransfer.com , que pode direcionar a transferência de um arquivo entre dois computadores na Internet. Ele pode atender plenamente às suas necessidades.
fonte
Por que ninguém está mencionando a transferência de IRC DCC? https://en.wikipedia.org/wiki/Direct_Client-to-Client , você obtém o cliente HexChat, instala nos dois computadores, entra digamos Freenode e cria um canal para os dois se associarem, e clique com o botão direito do mouse no outro "contato / PC" e envie o arquivo. Tecnologia antiga que sempre funciona, além do Hyperterminal para conexão direta discada, entre 1995 e 1998, o DCC era a principal maneira de baixar músicas e filmes.
fonte
Buraco de minhoca mágico pode ser usado para isso. No Ubuntu você pode instalar via apt-get (também está disponível via Python pip):
Para enviar um arquivo, basta dizer o que enviar
Isso produzirá a linha de comando que você deve executar no lado de recebimento. Isso inclui uma chave secreta (que permite ler também por telefone). Você não especifica nenhum nome de máquina ou endereço IP. O Wormhole estabelece a conexão automaticamente e criptografa os arquivos a serem transferidos.
https://magic-wormhole.readthedocs.io/en/latest/welcome.html
fonte