Você está tentando resolver um problema que não existe. Basta usar o seu IP interno, isso fará com que os pacotes nunca atinjam o seu roteador (talvez o switch no seu roteador, mas não o próprio roteador). É melhor em todos os sentidos fazer assim. Aqui estão alguns benefícios:
- Você terá acesso a todas as portas que desejar (não apenas às que configurou no roteador).
- Você não desperdiçará memória do roteador com entradas NAT para serviços que só usa internamente.
- Você vai achar MUITO mais fácil lembrar o IP interno e ele nunca mudará, a menos que você o diga.
- Cada pacote fará menos saltos e cada salto estará em um interruptor, por isso será muito rápido.
- Os pacotes não atingem o bloqueio que seu roteador cria enquanto ele disseca seus pacotes. Mesmo que seja um dia lento na sua rede, isso será muito mais rápido para você.
- Seus servidores verão seu PC como um dispositivo distinto; Se você optar por usar um proxy externo para corrigir isso, você sempre será visto como originário desse proxy.
- Se o seu serviço oferecer suporte, ele poderá usar uma paleta inteira de protocolos que não estão disponíveis para dispositivos externos. DHCP, WINS, transmissões UDP reais ... para citar apenas algumas.
- Toda a segurança adicional que acompanha a sub-rede.
Tenho certeza de que existem mais motivos, porque é assim que deve ser feito. Além disso, você pode modificar facilmente o arquivo hosts ou o servidor DNS para fornecer um nome sem se preocupar com um serviço de tipo DNS dinâmico.
Atualizar
Algumas pessoas interpretaram essa pergunta perguntando como fazer um laptop funcionar da mesma forma dentro de uma rede como em outra rede. IMO, esta é uma questão completamente diferente e amplia significativamente o escopo da questão. Eu não vi nenhuma menção a este ser o mesmo computador de dentro e fora da rede (ou de qualquer coisa, mas um IP). Agora precisamos perguntar sobre coisas como, como você está se conectando, como você está resolvendo nomes de host, etc. No final, nenhuma resposta poderia resolver cada situação automaticamente.
Se você estiver disposto a executar um script minúsculo depois de se conectar à outra rede, então posso fornecer uma resposta simples que será bastante robusta.
Primeiro, crie um script em lote pequeno:
ping -n 1 some.local.ip.addy
if errorlevel 1 goto :isremote
cp /Y %WINDIR%\System32\Drivers\etc\hosts.local %WINDIR%\System32\Drivers\etc\hosts
goto :eof
:isremote
cp /Y %WINDIR%\System32\Drivers\etc\hosts.remote %WINDIR%\System32\Drivers\etc\hosts
Altere some.local.ip.addy
para um IP real na sua rede local. Certifique-se de que seja algo que esteja sempre disponível (o IP do seu roteador funcionará bem, desde que responda a uma solicitação de PING).
Em seguida, crie um arquivo de hosts locais ( %WINDIR%\System32\Drivers\etc\hosts.local
) e coloque isso nele:
192.168.0.2 my-service.mynet.dyndns.org
192.168.0.3 my-service2.mynet.dyndns.org
Usando seus IPs reais do servidor. Isto é simplificado, gostaria de adicionar entradas que especificamente só funcionam dentro da rede também.
Em seguida, crie um arquivo de hosts remotos ( %WINDIR%\System32\Drivers\etc\hosts.remote
). Deixe em branco, não precisaremos dele agora, mas você poderá usá-lo mais tarde.
Em seguida, configure uma conta dyndns.org chamada mynet.dyndns.org
e certifique-se de torná-la um curinga. É claro que o DynDNS é apenas uma das centenas de opções para um host DNS dinâmico .
Agora, depois de percorrer as redes, basta executar o script e voilà, tudo funciona da mesma maneira que dentro e (contanto que você esteja encaminhando corretamente suas portas e usando os nomes de host corretos) você só precisará use my-service.mynet.dyndns.org
ou my-service2.mynet.dyndns.org
ou mynet.dyndns.org:24829
para obter seus vários serviços. Se esse serviço suportar hosts virtuais, ele saberá como manipular a parte my-service.
. Seu roteador provavelmente passará a mensagem para que você precise fornecer a porta também para os serviços que não sabem como lidar com a parte vhost (é claro que a maioria deles tem uma porta padrão no cliente, então você ser capaz de digitar mynet.dyndns.org
normalmente).
O mesmo pode ser alcançado sem o script, se você tiver um servidor DNS em sua rede local, mas se fizer isso, provavelmente já saberá como fazê-lo. Se não, esse definitivamente merece sua própria pergunta.