Visualizando meu site hospedado no IIS em outras máquinas da minha rede

101

Em casa tenho uma configuração de rede simples contendo 2 máquinas.

Em uma máquina, tenho um site hospedado com IIS7. Em vez do localhost/index.htmendereço padrão , adicionei uma entrada no HOSTSarquivo apontando o IP local (127.0.0.1) para este domínio - www.mysite.dev.

Posso acessar o site www.mysite.devsem problemas.

o que eu gostaria de fazer é poder visualizar este site de minha outra máquina na rede.

Inicialmente, presumi que isso poderia ser feito com uma URL como essa MACHINE-NAME/www.mysite.dev, mas a conexão sempre expira. Mas posso pingar MACHINE-NAMEsem problemas.

Para fins de teste, desativei o firewall do Windows em ambas as máquinas, mas sem alegria.

Como um desenvolvedor web típico, minhas habilidades de hardware / rede são muito fracas.

Alguém pode ver onde estou errando?

Truegilly
fonte
Você tentou apenas se conectar a MACHINE-NAME ?
Lazarus

Respostas:

155

Como outros disseram, seu Firewall precisa ser configurado para aceitar chamadas na porta TCP 80 .

no win 7 (maneira fácil e mágica)

  1. vá para o firewall do Windows com segurança avançada
  2. Regras de entrada -> Ação -> Nova regra
  3. selecione o botão de opção Predefinido e selecione o último item - Serviços da World Wide Web (HTTP)
  4. clique em Avançar e deixe as próximas etapas como estão ( permitir a conexão )

  • Como o tráfego de saída (do servidor para o mundo externo) é permitido por padrão . Significa, por exemplo, respostas http que o servidor da web está enviando de volta para usuários externos e solicitações

  • Mas o tráfego de entrada (proveniente do mundo externo para o servidor) é bloqueado por padrão, como as solicitações da web do usuário originadas de seu navegador que não podem alcançar o servidor da web por padrão e você deve abri-lo.

Você também pode dar uma olhada mais de perto nas regras de entrada e saída nesta página

Iman
fonte
Se ainda não funcionar, você pode desligar o próprio firewall, pelo menos para o ambiente de desenvolvimento.
USER_NAME
@Contristo, meus sentimentos exatamente :)
Bryan Rayner
1
@hitesh, você só precisa abrir a porta 80 por meio do firewall ativado. se você não tem nem mesmo permissão para adicionar portas, você normalmente deve pedir à equipe de suporte relacionada para abrir esta porta para este servidor para você
Iman
1
@Hitesh: você pode hospedar seu site na porta diferente da 80 e permitir apenas essa porta para você. Veja minha resposta abaixo sobre como fazer isso.
Syed Ali Taqi
1
Acesso rápido ao Firewall do Windows com Segurança Avançada: Win + R e digite mmc.exe wf.msc.
facepalm42
35

Se você estiver hospedando um site em uma porta específica no IIS, como 4321 , também deverá permitir essa porta por meio do Firewall do Windows. Aqui estão os passos que segui junto com a resposta do imanabidi para fazer funcionar para mim:

  1. Firewall do Windows> Configurações avançadas
  2. Regras de entrada> Nova regra
  3. Selecione Porta> Próximo
  4. Portas locais específicas> Adicionar a porta que você deseja permitir
  5. Permitir todas as conexões
  6. Insira um nome e uma descrição para que você se lembre mais tarde
  7. Feito
Syed Ali Taqi
fonte
10

Em primeiro lugar, tente conectar-se ao IP LAN do seu servidor. Se o IIS estiver configurado com apenas um site, é provável que seu site seja exibido.

Se você quiser acessá-lo pelo nome, deverá adicionar uma entrada no arquivo HOSTS de cada PC cliente com o qual deseja visualizar o site (não para 127.0.0.1 obviamente, mas para o endereço IP local do seu servidor).

Além disso, seu Firewall precisa ser configurado para aceitar chamadas na porta 80.

Normalmente, esse é o ponto em que faz mais sentido configurar um serviço DNS com o qual você possa registrar nomes como "meusite.dev" de forma centralizada, sem ter que se preocupar com arquivos de hosts. Mas essa é uma história diferente e pertence a superuser.com ou serverfault.com.

Pekka
fonte
1
O firewall é a parte mais importante aqui.
Pierre de
6

Abra as configurações do firewall. Em seguida, pesquise algo como - Permitir que o programa ou recurso permita através do firewall. Se na lista World Wide Web services (HTTP) estiver desmarcada, verifique e reinicie o sistema.

Nossa máquina está pronta para aceitar solicitações de entrada.

Harika Kakkireni
fonte
3

Resposta muito tardia, mas vou destacar algum ponto, pois tive que lidar com isso anos atrás ao configurar meu site IIS na rede

  1. Ambas as máquinas devem estar conectadas à mesma rede (a mesma rede sem fio é adequada)
  2. Acesse sua máquina remota via IP 168.192.x.xou via http://his-pc-name(não se esqueça da parte http)
  3. Isso servirá a página IIS padrão na máquina remota (a mesma que é servida por meio do host local). Se você quiser servir outro site, [você deve tornar esse padrão] primeiro 1 .

Certifique-se de que o IIS esteja funcionando bem na máquina remota, verificando localhostqual deve servir o site padrão. Além disso, certifique-se de que seu firewall esteja configurado para permitir a conexão através da porta 80 ou você pode apenas desabilitar o firewall por enquanto para fins de teste.

Hammad Khan
fonte
Usar o IP em vez do nome da estação de trabalho funcionou. Felicidades!
hatchrumandcode
3

Além de modificar seu firewall, não se esqueça de adicionar a vinculação de porta também!

Abra $(SolutionDir)\.vs\config\applicationHost.confige encontre definições de ligação, deve ser algo assim

<sites>
    <site name="Samples.Html5.Web" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Git\Samples.Html5.Web" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:63000:localhost" />
        </bindings>
    </site>
    ...
</sites>

Basta adicionar linhas extras para refletir o IP da máquina e a porta designada

<bindings>
    <binding protocol="http" bindingInformation="*:63000:localhost" />
    <binding protocol="http" bindingInformation="*:63000:10.0.0.201" />
</bindings>

Fonte: https://blog.falafel.com/expose-iis-express-site-local-network/

Korayem
fonte
2
O Port Binding foi um passo importante para mim! Eu estava usando o IIS Express que não permite acesso via endereço IP por padrão (apenas localhost). Portanto, sem essa etapa, as respostas com pontuação mais alta não funcionariam para mim!
JonoB de
2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

Funcionou para mim

Santhosh Legent
fonte
2

Pode ser tarde, mas para qualquer outra pessoa que possa ter esse problema no futuro, para quaisquer conexões que você deseja fazer com o servidor (neste caso, a máquina que hospeda o aplicativo da web, independentemente se for iis ou xampp), você precisa permitir conexão ou tráfego através da porta específica que será usada no firewall

1. Go to Windows Firewall -> Advanced settings
2. Click Inbound Rules -> Then New Rule
3. Select Port -> Next
4. Specific local ports -> Add the Port you want to allow
5. Allow All Connections
6. Enter a name and a description for to help you remember later on

e você fez

Antoh
fonte
1

Depois de instalar o antivírus, enfrentei esse problema e percebi que meu firewall foi configurado automaticamente como ativado. Agora, apenas desativei o firewall e ele resolveu meu problema. Espero que ajude alguém :)

Bhavin Chauhan
fonte
0

127.0.0.1 sempre aponta para localhost. Em sua rede doméstica, você deve ter um endereço IP atribuído pelo seu roteador de Internet (dsl / cablemodem / qualquer). Você precisa vincular seu site a este endereço. Você deverá então ser capaz de usar o nome da máquina para acessar o site da Web, mas eu recomendo realmente editar o arquivo hosts do computador cliente em questão para apontar um nome específico para aquele computador. O arquivo hosts pode ser encontrado em c: \ windows \ system32 \ drivers \ etc \ hosts (use o bloco de notas) e a entrada seria semelhante a:

192.168.1.1     mycomputername
Joel Etherton
fonte
@JenishZinzuvadiya: O quê? Seu comentário não faz sentido.
Joel Etherton
-1

Você tem que seguir as etapas.

Vá para IIS ->
Sites->
Clique no seu site ->
Em Ação Clique em Editar Permissões ->
Segurança ->
Clique em ADICIONAR ->
Avançado ->
Encontrar Agora ->
Adicionar todos os usuários nele ->
e conceda todas as permissões para outros usuários ->
clique em OK.

Se você fizer as coisas acima corretamente, poderá acessar seu site usando seu domínio.
Sugestão - Não adicione o nome do host ao seu site, pois às vezes cria problemas. Portanto, hospede seu site usando o endereço IP de sua máquina.

Rakesh Surve
fonte