Se a sua rede não permite conexões de entrada (ou seja, existe um firewall que você não controla que está bloqueando todas as portas de entrada), então você terá que usar um servidor intermediário (que é o que o teamviewer usa).
Se você tiver acesso SSH a um computador remoto, poderá configurar um túnel reverso ssh para disponibilizar seus serviços locais remotamente.
Caso contrário, se você não se importar com os possíveis riscos à segurança, há vários serviços on-line que oferecem funcionalidade semelhante: