Uma alternativa que usei para essa finalidade é configurar uma VPN com um ponto de acesso em algum ponto acessível pelo Host A e pelo Host B, ou seja, em algum lugar da Internet. Eu sugiro olhar para OpenVPN e seus exemplos. Desta forma, você pode virtualizar uma rede através da qual você pode acessar quaisquer outros hosts conectados como se estivessem na mesma rede.
O OpenVPN é bastante poderoso, portanto, fornecer um guia passo a passo estaria além do escopo dessa resposta.