
Mirar:
Desejo realizar a transferência de arquivos baseada em TCP mais rápida possível entre duas máquinas atrás de dois NATs diferentes, em uma situação em que uma porta pública não possa ser redirecionada para nenhuma das duas máquinas (políticas locais).
Aproximações:
Até agora eu consegui: 1) Configurar uma VPN com um nó público central atuando como retransmissor (OpenVPN), 2) Configurar uma VPN mesh para obter um link direto entre as duas máquinas sem retransmissão (tinc). A VPN pode então ser usada perfeitamente para realizar a transferência de dados através de qualquer cliente/servidor de transferência de arquivos de terceiros (como se ambas as máquinas estivessem na mesma LAN).
Problema:
A linha entre as duas máquinas é bastante instável e um único fluxo TCP normalmente atinge apenas uma pequena fração da largura de banda disponível. Além disso, o encapsulamento TCP sobre TCP induz sobrecarga extra e é notoriamente ineficiente para linhas instáveis. Gostaria, portanto, de estabelecer um link de tráfego direto (sem retransmissão) e nativo (sem encapsulamento VPN) entre as duas máquinas. Uma escolha natural é a estrutura STUN, mas cheguei à conclusão de que para interagir com um servidor STUN público e obter passagem NAT, um aplicativo deve ser compilado com bibliotecas STUN ad-hoc e contar com soquetes específicos do STUN em vez de soquetes regulares. Isso basicamente significa que cada novo conjunto de aplicativos cliente/servidor habilitados para STUN precisa ser escrito do zero.
Pergunta:
Para simplificar o processo, estou me perguntando se seria possível implementar um cliente STUN genérico que basicamente rodasse como um daemon em ambas as máquinas. Os clientes se conectariam a um servidor STUN público para registrar e consultar informações de outros clientes. Eles também redirecionariam todo o tráfego de saída de uma porta local monitorada para o IP/porta correto (configuração do usuário + informações do servidor STUN) para alcançar a outra máquina. Isso poderia permitir que qualquer aplicativo cliente/servidor de terceiros abrisse perfeitamente soquetes TCP regulares (possivelmente vários) e estabelecesse uma conexão com a outra máquina (como se estivesse na mesma LAN).
Responder1
Podes tentarSoftEther VPN
- isto:
- Tem muito bom
NAT Traversal
. - Permite configurar vários
Listener Ports
.
É um software muito bom da IMO que pode economizar muito trabalho ...