Если правильно понял, что именно вы хотите сделать, то это бэкконнект называется.
Зависит от того, известен ли заранее IP-адрес, и если нет, технически возможны вариации, но в общем случае реализуется через ICE и STUN/TURN, dynDNS и т.п., т.е. проброс портов за NAT, а как правило использованием промежуточного скажем так "центрального сервера" для в том или ином виде (по сути тот который серый сам коннектится к заранее известному адресу).