Pokud hledáš řešení pro sociální případy (tedy zadarmo), zkus SocialVPN http://socialvpn.wordpress.com/
a doufej že ti někdo poslouží jako relay ;)
Ano, proč to nenapsat rovnou - to co je potřeba je zpřístupnění obsahu na počítačích za NATem zadarmo a pokud možno bez složitých zásahů uživatele, a aby to pokud možno jelo rychle včetně streamování videaa a přenosů gigabajtů dat denně.
Kdokoliv tu něco píše o tom že pořídit si VPS nebo VPN je těžce mimo, protože pouze minorita uživatelů bude ochotna za to platit. Samozřejmě že VPN s pevnou veřejnou IP adresou bude řešením, ale opět se dostáváme do stavu - někdo musí mít veřejnou IP adresu.
Už aby bylo dobře rozšířené a funkční IPv6, to je podporováno i v boost::asio a dalších relativně standardních knihovnách, a programátoři se nebudou muset zabývat tím jak vlastně používat chujoviny jako je libnice nebo pjnath, které toto částečně řeší. A ty knihovny jsou (ne)dokumentované tak, že bez znalosti STUN a TURN protokolu se nedají použít, přitom ne každého to zajmá jak to funguje, protože chce jenom poslat data z jednoho uzlu na druhý, a pokud možno bez prostředníka aby to jelo rychle. Navíc pokud chcete stoprocentní konektivitu, tak se TURN relay stejně nevyhnete, protože to pro změnu neumí multi hole punching. Pjnath má navíc lepší podporu ALG, ale zase vůbec nepodporuje IPv6 pokud je dostupné, což je deviza libnice, takže pokud budete chtít maximalizovat pravděpodobnost přímého spojení dvou uživatelů, musíte použít obě knihovny a nebo pjnath + ipv6 a nad tím ještě nějakou další vrstvu co to posílání dat skryje a nějakou logikou rozhodne, co se tedy laskavě použije...