Como faço o IIS funcionar e acessível fora da minha rede por trás de um roteador? [fechadas]

9

Minha máquina está executando o Windows 7 Ultimate. Aqui está o que eu fiz (com sucesso) até agora:

  1. IIS 7.5 instalado com PHP sobre FastCGI
  2. Trabalhou! Quando vou ao link , meus scripts PHP são bem executados.
  3. Ran ipconfig para descobrir que meu endereço IP local é 192.168.1.102. Confirmei que o link funciona exatamente como o endereço do host local acima.
  4. Entrou na administração do roteador (tenho um Linksys WRT54G2) e configurei o encaminhamento de porta na porta 80 para 192.168.1.102. Agora a porta 80 está encaminhando para minha máquina.
  5. Configure uma regra de entrada no Firewall do Windows para permitir todas as atividades na porta 80.
  6. Descobri qual é o meu endereço IP externo do Google. Vamos chamá-lo XXX.XX.XX.XX.

No entanto, quando tento acessar o link da minha própria máquina ou de um computador distante e não na minha rede, de qualquer forma ... eu não recebo nada. Ele tenta se conectar por algum tempo (sem sucesso), mas acaba desistindo.

Aqui está o que eu estou querendo saber:

  1. O que estou perdendo? O que eu esqueci / ignorei? Como faço para que isso funcione e seja acessível fora da minha própria rede local?
  2. Supondo que eu faça isso funcionar, como posso usar uma porta diferente da porta 80? Quais alterações eu preciso fazer (por exemplo, IIS, Firewall do Windows, administração do roteador, etc.) para tornar isso possível?

Muito obrigado antecipadamente!

    
por SoaperGEM 26.02.2012 / 08:19

3 respostas

5

Isso soa como um problema HTTP.SYS que você está tendo.

Abaixo está um trecho do blog de Scott Hanselman que descreve como expor o IISExpress fora do host local. A postagem do blog é mais longa, que também descreve como conectar o SSL. Mas eu acredito que os comandos que eu postei abaixo, que eu tirei da postagem dele, ajudarão você a resolver o problema que você está tendo.

First, we need to tell HTTP.SYS at the kernel level that it's OK to let everyone talk to this URL by making an "Url Reservation." From an administrative command prompt:

netsh http add urlacl url=http://<LocalComputerName>:80/ user=everyone

Next, as I want to be able to talk to IIS Express from outside (folks on my network, etc. Not just localhost) then I need to allow IIS Express through the Windows Firewall. I can do that graphically from Windows, or type:

netsh firewall add portopening TCP 80 IISExpressWeb enable ALL

Você pode não precisar do último comando, pois declara que já criou uma regra de firewall.

    
por 26.02.2012 / 15:41
2
  1. (Acesso de fora da rede) Muitos ISPs residenciais (e alguns ISPs comerciais) bloquearão o tráfego de entrada em determinadas portas de serviço, como a porta 80 ou 25. Isso geralmente impede que você execute serviços comerciais em uma residência. linha devido ao uso da largura de banda. A alternativa é executá-lo em outra porta (veja abaixo).

  2. (Acesso de dentro da sua rede) A situação que você está descrevendo soa como NAT em gancho de cabelo. Aqui está uma boa visão geral de alto nível do Hairpin NAT . Você precisará adicionar regras de NAT ao seu roteador para sempre fazer o tráfego destinado ao seu IP externo, a porta 80 vai pelo seu roteador e não diretamente do host para o host dentro da sua rede. Advertência: seu roteador pode não conseguir fazer isso de fato.

  3. Altere a ligação de portas no IIS e, em seguida, reinicie o site.

por 26.02.2012 / 17:15
0

Eu tive o mesmo problema. O Firewall do Windows está bloqueando o acesso. Desligue e verifique novamente. Meu palpite é que funcionará.

    
por 27.01.2013 / 17:56