O mais fácil é configurar um servidor DNS interno que resolva o nome do host do seu site para o endereço IP interno.
Como alternativa, você pode inserir uma entrada / etc / hosts (ou equivalente) em sua máquina cliente e obter o mesmo resultado.
Estou usando o OpenWRT (baseado em Linux) no meu roteador. O roteador tem um IP local e um IP público. Eu tenho um nome de dyndns atribuído ao IP público. O roteador está encaminhando várias portas (por exemplo, ssh e https) para o meu servidor local.
Meta: Use o mesmo URL para acessar o servidor, não importando se o cliente está dentro ou fora da minha rede local.
Do lado de fora: Quando envio uma solicitação para o IP público. A solicitação é encaminhada para o meu servidor interno. Está tudo bem
De dentro: Quando envio uma solicitação para o IP público, ela acaba na interface interna do roteador. Assim, o encaminhamento de porta não funciona.
Ao escanear o IP local do roteador com o nmap de dentro, obtenho os mesmos resultados que o IP público de dentro. Então, parece que quando eu acesso o IP público por dentro, o tráfego ainda acaba no IP local.
O que posso fazer para acessar o servidor com o mesmo URL dentro e fora da minha rede local?
Editar:
O mais fácil é configurar um servidor DNS interno que resolva o nome do host do seu site para o endereço IP interno.
Como alternativa, você pode inserir uma entrada / etc / hosts (ou equivalente) em sua máquina cliente e obter o mesmo resultado.
Você precisa da resolução de nomes para funcionar de maneira diferente de dentro e de fora da rede. Sua entrada do dyndns será roteada para o IP externo. Rotas de firewall são diferentes de dentro e de fora da rota.
Adicione o nome do dyndns com o endereço IP do servidor ao arquivo de hosts locais no OpenWrt e o serviço DNS dnsmasq deve substituir a entrada da Internet. Se você configurou corretamente, seu nome deve resolver para o endereço IP do seu servidor de dentro da sua rede, e seu endereço IP externo de fora da rede.
É possível configurar o hairpin NAT, mas é relativamente difícil e frágil.
Você poderia usar "view" no bind
acl "local_net" {
192.168.0.0/16;
};
view "internal" in {
match-clients { local_net; };
recursion yes;
additional-from-auth yes;
additional-from-cache yes;
zone "example.net" in {
type master;
allow-query { local_net; };
allow-transfer { none; };
allow-update { none; };
file "master/example.net";
};
...
}
master/example.net
@ IN SOA ns.example.net. root.example.net. (
2013072101 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN A 192.168.127.1
www IN CNAME example.net.
Com essas configurações, todos os seus clientes locais receberão o endereço IP interno do seu nome de domínio público. Além disso, você pode resolver o problema com o iptables, mas seria uma solução mais complexa.
Tags routing linux forwarding openwrt