I've used autossh and port forwarding to set up a connection through the server but I think that means any interaction between the clients consumes server resources (computational overhead of forwarding packets & bandwidth).
Você está correto
Existem duas ferramentas de Samy Kamkar que permitem que dois hosts por trás do NAT se comuniquem entre si, pwnat e chownat . Há descrições do truque / técnica no site se você quiser implementar sua solução usando esse método, ou você pode usar as ferramentas que Samy publicou.
Em termos gerais, chownat
é para comunicação A < - & B; quando ambos concordam que gostariam de se comunicar; e pwnat
é para comunicação A- > B que B não está esperando. Você poderia usar o primeiro se compartilhasse o estado sobre o servidor para concordar quando abrir um túnel chownat
; ou use pwnat
e não precise do servidor.