Как пробивать НАТ?
TCP / UDP hole punching, статей куча
Универсального нет. Выше вариант наводки дали, но это не всегда и не везде.
Посему наверное единственный универсальный вариант - наличие третьей стороны (сервера). Остальное - уже по вкусу:
- все взаимодействия через сервер (типа Hamachi, ammy и т.п.)
- сервер работает только сводником (торренты)