Do que você postou até agora, parece que você já tem o seu encaminhamento de porta configurado para que você possa acessar seus serviços de ambos os lados da sua rede (interna / externa). Se não, você vai querer começar esta configuração primeiro.
Você tem algumas opções interessantes com as quais pode brincar. Alguns um pouco mais hackeados juntos do que outros. Isso soa como um projeto divertido, então vamos mergulhar em:
Plano A: Meu primeiro pensamento é fazer algo relativamente fácil que funcione com o seu script para detecção. Você pode ter dois arquivos de host com os quais você alterna. Compartilhe ambos no dropbox em todas as suas máquinas e faça com que o script copie a versão desejada em um determinado momento para o seu computador para sobrescrever o arquivo de hosts existente. Isso mantém as coisas dinâmicas de uma forma que permite usar os mesmos nomes para qualquer um dos lados da sua rede, mas aponta para diferentes IPs, dependendo do lado em que você está.
Plano A2: Se você tem um domínio ou servidor dedicado em algum lugar, você pode fazer uso de um script que apenas grava / lê em um diretório FTP com credenciais e especifica se você não quer usar algo como dropbox.
Plano B: Se você tiver um domínio existente, poderá fazer com que um de seus servidores carregue o IP externo do seu roteador em intervalos regulares. Dessa forma, você tem algo com um endereço dedicado que você pode obter para descobrir qual é o seu IP doméstico externo em todos os momentos. A partir daí, você pode criar scripts para algo que aponta para o ip dinâmico como uma variável e usa as portas mapeadas para o encaminhamento de porta.
Plano C: VPN + DNS interno. Toda vez que você está fora você apenas VPN dentro Sempre que você está dentro - você já está apontando para esse DNS espero. Minha opinião pessoal - Windows DNS é um pouco mais fácil de usar do que algo como BIND. É um pouco mais gráfica e aponte e clique. O BIND é inteiramente baseado em texto e pode ser um pouco intimidante para quem não conhece. No entanto, você precisaria de um Windows Server dedicado (isso pode ser virtualizado, é claro), que geralmente tem preço - mas se você tiver um endereço de e-mail * .edu, pode usar o DreamSpark para obter uma cópia do Windows Server. brincar de graça. Alternativamente, você poderia fazer o mesmo com uma cópia do CentOS e do BIND (existem vários guias para "Configurando o CentOS como servidor DNS").