Acessar IP interno usando IP público

38

Eu tenho um modem DSL com um endereço IP público ( 201.206.x.x) e um servidor web na minha rede interna ( 192.168.0.50).

Eu configurei o modem para encaminhar solicitações para a porta 80 para o meu servidor da web; portanto, se eu acessar 201.206.x.xde fora da minha rede, ele mostrará minha página da web, o mesmo acontecerá se eu acessar 192.168.0.50de um computador dentro da minha rede.

Agora, o problema é que, quando tento acessar 201.206.x.xda minha rede interna, o navegador tenta se conectar à configuração do modem DSL, em vez de redirecionar minha solicitação para o servidor da Web.

Quais configurações eu preciso alterar no modem para configurar esse redirecionamento?

willvv
fonte
Uma variação do problema, tenho vários (2) servidores de hospedagem e configurei um DNS (BIND9) para as solicitações internas. Como mapeio (para diferentes Hosting Server) solicitações externas (para IP público) com base no nome do host?
precisa

Respostas:

20

O problema é que a reescrita de pacotes geralmente só pode ocorrer ao atravessar o firewall. Em geral, os roteadores não podem executar a reescrita necessária quando a solicitação chega da mesma rede na qual a solicitação seria reescrita. A solução comum para esse problema é colocar um proxy da Web fora da rede que faz o loop da solicitação de volta pelo firewall.

Suspeito que seu problema específico é que você deseja acessar o site por meio do nome do host DNS. Você pode lidar com isso usando o DNS com "horizonte dividido", para prestar atenção à origem da solicitação e responder adequadamente: Se a solicitação vier de dentro da sua rede, ele distribuirá 192.168.0.50 para solicitações provenientes do seu rede e o IP público para todos os outros.

Qualquer uma dessas sugestões pode ser implementada em qualquer host fora da sua rede, como uma micro instância (gratuita) do Amazon EC2.

Insyte
fonte
Obrigado, embora eu ache que vou continuar com a edição de arquivos HOSTS, já que é basicamente um site pessoal que eu uso para testes dos sites em que estou trabalhando. O PC nem funciona 24/7.
3
Resolvi esse problema em minha própria rede doméstica, adicionando um registro A com o mesmo nome do meu nome de dyndns externo no meu próprio servidor DNS (também em execução na minha rede doméstica). O registro A aponta para o local adequado na minha rede doméstica, assim como o registro PTR reverso. Mas, claro, nem todo mundo está correndo o seu próprio DNS casa ...
LawrenceC
14

Eu diria que o @Insyte está interessado em algo quando fala sobre o problema ser uma resolução de DNS .. o que significa que o problema está sendo reescrito por pacotes (leia o post do @Insyte novamente para obter essa explicação).

Supondo que você tenha a seguinte configuração:

  1. IP público: 201.206.x.y
  2. IP privado: 192.168.0.50
  3. Encaminhamento de porta para todos os 80 (e 443 se você estiver executando SSL) no IP 201.206.x.y192.168.0.50

Você digita o seguinte no seu navegador enquanto está na sua rede interna:

http://www.yourwebsite.com

e o erro ocorre. Então, solução: corte seu arquivo de hosts.

No Windows, vá para C:\windows\system32\drivers\etc\hosts (observe, não há extensão nesse arquivo). No Linux, o arquivo está localizado em /etc/hosts.

Se você abrir esse arquivo no Bloco de Notas, poderá ver as entradas usadas para substituir o DNS. Se você deseja atualizar esse arquivo, será necessário abrir o Bloco de notas (ou qualquer outro programa que esteja usando para editar o arquivo) com direitos de administrador - caso contrário, não será possível salvar o arquivo.

Adicione isso ao seu arquivo hosts:

192.168.0.50 www.yourwebsite.com

Em seguida, reinicie o navegador , digite o URL e violà! Está funcionando. Portanto, isso significa que seu navegador não depende do seu DNS para resolver seu domínio com o IP. Em vez disso, estamos substituindo isso e dizendo: Navegador, basta ir ao meu IP interno para esse nome de domínio, em vez de solicitar o endereço IP ao DNS .

Se você estiver em um escritório, poderá obter todas as pessoas que precisam acessar este site interno, invadir o arquivo de hosts ou, se tiver um DNS interno, poderá adicionar uma entrada.

Outra idéia é ter um servidor proxy interno (para toda a navegação na web, etc.) e depois hackear o arquivo hosts no servidor proxy. Isso significa que o seu navegador dirá: Proxy, você pode me http://www.mywebsite.comfornecer o recurso e o proxy diz Claro, e porque me disseram para ignorar o DNS desse domínio, darei o IP que foi codificado meu arquivo hosts .

Pure.Krome
fonte
Sim, eu realmente tinha isso antes de postar, eu só queria acessá-lo através do IP real, mas acho que posso conviver com isso, já que meu modem não tem reflexão NAT (como sugerido por @MaQleod).
3
Que tal um laptop ou smartphone que acessa frequentemente o mesmo site via rede interna ou externa?
TREE
@ ÁRVORE pode u por favor elaborar. Não entendi bem sua pergunta.
Pure.Krome
Eu tenho uma configuração muito semelhante, exceto que estou usando nomes de domínio. Portanto, de fora da rede, meu domínio resolve para o meu IP externo e, de dentro, para o IP interno. Eu tenho laptops e smartphones que frequentemente acessam de dentro e de fora, portanto, invadir o arquivo de hosts não funcionaria. O que eu fiz foi basicamente o que sua outra resposta (Pure.Krome) sugere, mas, em vez de usar um servidor externo, estou apenas dizendo ao servidor DHCP no roteador para preceder um servidor DNS interno. Geralmente funciona, mas há atrasos irritantes ao mudar de rede antes que as coisas comecem a resolver.
TREE
9

Esse é um problema comum na maneira como alguns roteadores lidam com o tráfego destinado ao endereço público a partir de um endereço interno - eles não seguem as mesmas regras de encaminhamento de porta que as solicitações de fora da rede. O que você precisa procurar nos roteadores é a reflexão da NAT . Isso permitirá que o roteador lide com solicitações internas do IP público para usar as mesmas regras de encaminhamento de porta como se a solicitação viesse de fora da rede.

MaQleod
fonte
11
Reflexão NAT. Eu acho que é isso que eu estava procurando. Infelizmente meu modem não tem isso. Obrigado!
o que fazer quando o modem não suporta loopback NAT?
PrimitiveNom
2

Eu poderia ajudá-lo melhor se você pudesse me fornecer sua marca e modelo de modem ...

Mas o que acontece aqui é que normalmente uma página de configuração de roteador ou modem deve aparecer apenas ao visitar seu IP interno (192.168.0.1)

Mas o que parece estar acontecendo aqui é que ele identifica a solicitação recebida (201.206.xx) Como vem de dentro, decide fornecer a página de configuração em vez da rota normal para o servidor da Web ...

Agora, se você estiver usando um modem no nível do consumidor, provavelmente não poderá alterar isso (desculpe)

Mas talvez você possa: Experimente e veja se há configurações de 'escuta' na sua página de configuração de administrador

Lá, você pode tentar alterar sua página de administração para outra porta ou limitar os endereços a sua escuta.

HTDutchy
fonte
2

Talvez o problema seja que a administração remota seja permitida.

Plamen
fonte
2

Você pode adicionar uma rota para acessar o IP público do servidor diretamente através do seu IP local. No Windows, o comando é como

route add [public IP] mask 255.255.255.255 [the server's local IP]

Para adicionar uma rota persistente, adicione o -pparâmetro ao comando acima.

Cada vez que você visita o IP público, o computador passa pelo IP local do servidor como gateway. Como o servidor conhece seu próprio IP público, ele processará o pacote por conta própria, em vez de encaminhá-lo para a rede local.

Você precisa garantir que o IP local do servidor esteja estático.

qevan
fonte
Por que o servidor conhece seu próprio endereço IP público?
G-Man diz 'Reinstate Monica'
Os servidores certamente sabem seus IPs. IPs estáticos ou dinâmicos. Não tenho certeza de como o roteamento funciona exatamente. Meu palpite é que cada máquina tem um mapa de rotas. Quando recebe pacotes, decide se deve processar o pacote.
Qevan
0

Tendo esse mesmo problema. Consegui consertar isso adicionando o nome do host DNS à lista de Mapeamento de host DNS do meu roteador. Encontrei essas configurações listadas na lista de opções avançadas do meu roteador.

Gibado
fonte
0

No meu roteador, tive que desativar a "aceleração NAT" (Cut Through Forwarding), pois isso quebrou o loopback do NAT ...

Gaymon Howard Wright III
fonte