使用 IP 地址而不是 localhost 浏览网站

Posted

技术标签:

【中文标题】使用 IP 地址而不是 localhost 浏览网站【英文标题】:Browse Web Site With IP Address Rather than localhost 【发布时间】:2013-01-30 15:35:34 【问题描述】:

我正在使用带有 IIS Express 的 VS2012,但似乎无法使用我的 IP 地址浏览我的网站。有没有办法做到这一点?它曾经在早期版本的 VS 上运行良好。

例如,这个地址可以正常工作:

http://localhost:64651/

但是,这个地址不起作用。

http://192.168.252.165:64651/

我确定 IP 地址,因为我是使用 ipconfig 获得的。

【问题讨论】:

127.0.0.1:64651 有效吗? 不,http://127.0.0.1:64651/ 不起作用。说找不到网页。当我将 URL 更改为 http://localhost:64651/ 时,该站点正常运行。 您是否配置了端口转发?如果没有看到portforward.com 对于 Max OS 用户,这里是 port forwarding for OS X 上的信息。 @averasko 感谢您提供宝贵的信息。我已经用这些信息修改了我的答案。 【参考方案1】:

转到您的IISExpress>Config 文件夹,找到applicationhost.config。更改<bindings>如下:

<bindings>
      <binding protocol="http" bindingInformation="*:1407:YOUR_IP_ADDRESS" />
</bindings>

在执行此操作之前,您必须使用netsh 命令注册此 IP 地址,如下所示:

Windows 7 中的端口转发

如果您运行的是 Windows 7,几乎所有传入连接都被锁定,因此您需要专门允许应用程序的传入连接。首先,启动管理命令提示符。其次,运行这些命令,将 192.168.1.11:1234 替换为您使用的任何 IP 和端口:

> netsh http add urlacl url=http://192.168.1.11:1234/ user=everyone

这只是告诉http.sys 可以与此网址交谈。

重要提示:必须根据系统语言指定 user=everyone 参数。因此,如果您的 Windows 语言是西班牙语,则参数必须是 user=todos。

> netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=1234 profile=private remoteip=localsubnet action=allow

这会在 Windows 防火墙中添加一条规则,允许本地子网上的计算机连接到端口 58938。更多信息请访问this link。

端口转发 Mac OS X

第 1 步:查看当前的防火墙规则

sudo ipfw show

第 2 步:添加端口转发规则(80 到 8080)

Tomcat 运行的默认端口是 8080,所以这里我们展示从端口 80 到 8080(Tomcat 的默认端口)进行端口转发的命令。显然,这也适用于其他端口,您只需要相应地调整命令即可。

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in

这是一个临时更改,一旦您重新启动它就会恢复。如果你想让它永久化,你可以为它创建一个 lauch 守护进程。

可选的删除规则

如果您想删除防火墙规则,请运行:

sudo ipfw flush

在 Mac OS X 上使用 PFCTL(又名 PF)进行端口转发

pfctl 的设置类似于ipfw。 Github 用户 kujon 创建了一个 nice guide 来展示如何使用 pfctl 设置从端口 80 到另一个端口的端口转发。

注意:确保仅通过查找项目名称来更改项目的绑定。您甚至可以保留 localhost 绑定并添加一个新绑定,这样您就可以使用给定的 IP 地址和旧的 localhost 绑定访问同一个网页。

【讨论】:

感谢您的回复。我在 Windows 7 企业版上。如何使用 netsh 注册 IP 地址? 好的,我可以从我的机器上查看带有 localhost 和我的 IP 地址的网页。但是,也许我应该首先提到这一点,连接到同一个无线网络的 iPod Touch 看不到网页。关键是我正在尝试为移动设备构建一个网站,并且在测试更改之间部署到远程服务器需要很长时间。 必须更改规则以应用于域。现在效果很好。再次感谢。 这个文件夹在哪里? (IISExpress>Config) 我在 VS2010 上运行它,但找不到这个。更新:它在这里:C:\Program Files (x86)\IIS Express\config\templates\PersonalWebServer @Rodney 该文件夹位于此位置:C:\Users\UserNAme\Documents\IISExpress\config。最好是系统驱动器的文档目录。【参考方案2】:

在本地 iis ip webconfig 中绑定 Visual Studio

【讨论】:

【参考方案3】:

你可以使用Conveyor by Keyoti

第 1 步:

通过在“工具”->“扩展和更新”对话框中搜索“传送带”来下载 Visual Studio 扩展。

第 2 步:

Conveyor 会自动为 Web 应用程序项目启用,运行(调试)项目并记下远程 URL,即您将在您的设备或其他计算机上使用的 URL。如果您没有看到“传送带”窗口,请参阅下面的故障排除。

第 3 步:

添加入站防火墙规则,允许访问远程 URL 中给定的 TCP 端口。

1. Open Windows 'Start' and type WF.msc.
2. Click 'Inbound Rules' on the left.
3. Click 'New Rules' on the right.
4. Choose 'Port' in the new dialog, then 'Next'.
5. Select TCP, and enter the port from the Remote URL next to 'Specific local ports' (probably 45455), then 'Next'.
6. Next, and next (you may want to disable 'Public'), give it a name like 'Conveyor: web dev server access enabled'.

第 4 步:

使用您设备(手机、平板电脑或其他机器)上的远程 URL 直接访问您的应用程序。

更多信息Conveyor

【讨论】:

这曾经对我有用。我最近升级了我的电脑,现在将打开初始页面(即my.ip.address.xxx:myport/MyService.asmx),但是当我单击 Invoke 时,它​​返回为localhost:port...我已经在 applicationhost.config 文件中更新了我的 IP....任何人还有其他想法吗?

以上是关于使用 IP 地址而不是 localhost 浏览网站的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2013:使用 IP 地址而不是 LocalHost 进行调试

MacOS 上的 XAMPP - 使用 localhost 而不是 IP 地址

VS Express 2013 for Web - 在机器的 IP 地址上调试而不是 localhost avgnsa 100% CPU

您如何配置 tomcat 以绑定到单个 IP 地址(本地主机)而不是所有地址?

您如何配置 tomcat 以绑定到单个 IP 地址(本地主机)而不是所有地址?

获取本机公网ip(public ip)