Um problema é determinar quando você está na sua rede local, em oposição à rede local de outra pessoa. ie: Minha sub-rede doméstica é 192.168.1.0/24, mas quando estou trabalhando, a sub-rede local também é 192.168.1.0/24.
Eu também tenho vários serviços que hospedo em um servidor em casa e enfrento a mesma situação. A maneira como resolvo isso é ter um nome de domínio para o endereço IP externo da minha casa e hospedar meu próprio servidor DNS na minha rede doméstica.
Quando não estou em casa, mydomainname.com resolve meu endereço IP público e me conecto remotamente por meio das portas encaminhadas relevantes. No meu servidor DNS home, adiciono manualmente um registro DNS para mydomainname.com e faço com que aponte para o endereço local [192.168.1.x], que substitui o registro DNS público.
Isso significa que posso simplesmente usar mydomainname.com para todos os meus scripts / configurações, e o endereço IP usado é determinado pelo servidor DNS, com base em se estou em casa ou externo.
A configuração de um servidor DNS pode, naturalmente, adicionar um nível de complexidade à situação além do que você está disposto a lidar [compreensivelmente]. Eu recomendo olhar para pfSense ou alguma outra forma de firmware de roteador / gateway que torna muito mais fácil.
Como alternativa, veja se o roteador / gateway suporta um recurso chamado "NAT-reflection". Isso permite que você se conecte usando o endereço IP externo quando estiver na rede interna e ainda obtenha uma conexão roteada corretamente. É menos elegante, mas pode ser adequado para a sua situação.