105

在家里,我有一个包含 2 台机器的简单网络设置。

在一台机器上,我有一个使用 IIS7 托管的站点。localhost/index.htm我在文件中添加了一个条目,而不是标准地址,HOSTS将本地 IP (127.0.0.1) 指向该域 - www.mysite.dev.

我可以www.mysite.dev毫无问题地访问该网站。

我想做的是能够从我网络上的另一台机器上查看这个站点。

最初我认为这可以通过这样的 URL 完成 MACHINE-NAME/www.mysite.dev,但连接总是超时。但是我可以MACHINE-NAME毫无问题地ping通。

出于测试目的,我在两台机器上都禁用了 Windows 防火墙,但并不高兴。

像典型的 Web 开发人员一样,我的硬件/网络技能很差。

谁能看到我哪里出错了?

4

12 回答 12

158

正如其他人所说,您的防火墙需要配置为接受TCP 端口 80上的传入呼叫

在 win 7+ 中(简单的魔法方式)

  1. 转到具有高级安全性的 Windows 防火墙
  2. 入站规则-> 操作 -> 新规则
  3. 选择预定义单选按钮,然后选择最后一项 - 万维网服务(HTTP)
  4. 单击下一步并保留后续步骤(允许连接

  • 因为默认情况下允许出站流量(从服务器到外部世界) 。这意味着例如 Web 服务器发送回外部用户和请求的 http 响应

  • 但是默认情况下会阻止入站 流量(从外部世界到服务器) ,就像来自浏览器的用户 Web 请求默认情况下无法到达 Web 服务器并且您必须打开它一样。

您还可以在此页面上仔细查看入站和出站规则

于 2011-01-04T19:56:05.700 回答
36

如果您在 IIS 中的特定端口(例如4321 )上托管网站,那么您也必须允许该端口通过 Windows 防火墙。以下是我与imanabidi 的回答一起遵循的步骤,以使其对我有用:

  1. Windows 防火墙 > 高级设置
  2. 入站规则 > 新规则
  3. 选择端口 > 下一步
  4. 特定本地端口 > 添加您要允许的端口
  5. 允许所有连接
  6. 输入名称和一些描述,以便您以后记住
  7. 完毕
于 2015-08-17T17:29:21.287 回答
10

首先,尝试连接到服务器的 LAN IP。如果 IIS 只设置了一个网站,那么您的网站很可能会弹出。

如果要按名称访问它,则必须在要查看站点的每台客户端 PC 的 HOSTS 文件中添加一个条目(显然不是 127.0.0.1,而是服务器的本地 IP 地址)。

此外,您的防火墙需要配置为接受端口 80 上的传入呼叫。

这通常是设置 DNS 服务更有意义的地方,您可以集中注册“mysite.dev”之类的名称,而不必涉足主机文件。但那是另一回事,属于 superuser.com 或 serverfault.com。

于 2010-02-02T12:42:59.523 回答
6

打开防火墙设置。然后搜索类似的东西 - 允许程序或功能允许通过防火墙。如果列表中的万维网服务 (HTTP) 未选中,请选中它并重新启动系统。

我们的机器已准备好接受入站请求。

于 2012-08-16T07:20:57.967 回答
3

很晚的答案,但我会强调一些点,因为几年前我必须处理它跨网络设置我的 IIS 站点

  1. 你的两台机器都应该连接到同一个网络(同一个无线网络很好)
  2. 通过 IP168.192.x.x或通过http://his-pc-name(不要忘记 http 部分)访问您的远程机器
  3. 这将在远程机器上为默认的 IIS 页面提供服务(与通过 localhost 提供的相同)。如果您想为另一个站点提供服务器,[您必须将其设为默认值] 首先1

通过检查localhost哪个应该为默认站点提供服务,确保您的 IIS 在远程计算机上正常工作。还要确保您的防火墙配置为允许通过端口 80 进行连接,或者您可以暂时禁用防火墙以进行测试。

于 2016-06-07T05:03:08.660 回答
3

除了修改你的防火墙,别忘了添加端口绑定!

打开$(SolutionDir)\.vs\config\applicationHost.config并找到绑定定义,应该是这样的

<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>

只需添加额外的行以反映您的机器 IP 和指定端口

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

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

于 2018-06-30T16:28:12.047 回答
2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

它对我有用

于 2015-07-06T14:46:21.953 回答
2

可能为时已晚,但是对于将来可能遇到此类问题的任何其他人,对于您要与服务器建立的任何连接(在这种情况下是托管 Web 应用程序的机器,无论它是 iis 还是 xampp),您需要允许通过将在防火墙中使用的特定端口的连接或流量

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

你完成了

于 2018-05-10T06:05:35.637 回答
1

安装防病毒软件后,我遇到了这个问题,我注意到我的防火墙自动设置为打开,现在我只是将防火墙设置为关闭 ,它解决了我的问题。希望它会帮助某人:)

于 2014-03-22T10:06:01.510 回答
0

127.0.0.1 始终指向本地主机。在您的家庭网络上,您应该有一个由您的互联网路由器(dsl/cablemodem/whatever)分配的 IP 地址。您需要将您的网站绑定到该地址。然后,您应该能够使用机器名称访问该网站,但我建议实际编辑相关客户端计算机的主机文件,以将特定名称指向该计算机。hosts 文件位于 c:\windows\system32\drivers\etc\hosts (使用记事本),条目如下所示:

192.168.1.1     mycomputername
于 2010-02-02T12:43:54.667 回答
0

2021 年的完整解决方案。

与 IP 的绑定不起作用。星号解决了这个问题。

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

https://www.theancientscroll.com/tech/4-steps-aspnet-web-apps-lan/753/

于 2021-01-26T15:19:27.460 回答
-1

您必须执行以下步骤。

转到
IIS->
站点->单击您的网站->
在操作中单击编辑权限->
安全->
单击添加->
高级->
立即查找->
添加其中的所有用户->
并授予所有权限给其他用户->
点击确定。

如果您正确执行上述操作,则可以使用您的域访问您的网站。
建议 - 不要将主机名添加到您的站点,它有时会产生问题。因此,请使用您的机器 IP 地址托管您的网站。

于 2017-06-08T03:58:47.080 回答