我可以configurationWindows主机文件使用IP地址加端口吗?

我想configurationWindows 主机文件来发送基于IP地址+端口的主机请求。

例如:

127.0.0.1:80 www.site1.com 127.0.0.1:8080 www.sitetwo.com 

因为我有端口8080上的Apache侦听和端口80上的IIS(默认)。

所以,我认为最好的办法是修改hosts文件。 这不影响任何东西。 我也没有得到任何错误,也没有任何消息。

你不能。 主机文件就是 – 主机。 这相当于本地机器中的“短路”DNS。 DNS也无法将您发送到端口。

为了实现你想要做的事情,你需要在IIS或Apache下设置虚拟主机,并使用它(基于HTTP Host:头)来让服务决定要显示哪个站点。 但是,如果您想要同时使用IIS和Apache,这不会对您有所帮助。

不,你不能。 如果它不工作,那么别的东西就出错了。

 127.0.0.1 site.com 127.0.0.1 www.site.com 

我认为这是一个发展框?

只要你没有像代理你的DNS查询那样,DNS就会将site.com和www.site.comparsing到本地主机。 您应该可以在ServerFault上询问Web服务器configuration帮助,这是最可能的问题。

你可以用小提琴手做。 随着提琴手脚本 ,你可以很多惊人的事情。

如果你设置这样的主机

 127.0.0.1 www.site1.com # Port 80 127.0.0.1 www.sitetwo.com # Port 8080 

将其添加到CustomRules.js中 (要打开CustomRules.js ,请select在Fiddler的“规则”菜单上自定义规则

 // this method is already exist static function OnBeforeRequest(oSession: Session) { if (oSession.host.toLowerCase() == "www.sitetwo.com") oSession.host = "www.sitetwo.com:8080"; ... } 

然后Fiddler转换主机,你将连接到端口8080。

您是否仅将服务器用于本地开发? 如果是这样的话,你可以把你的Apache监听127.0.0.2:80,然后把hosts文件redirect到你喜欢的域名。

  • hosts文件仅用于主机名parsing
  • 浏览器在没有直接指定端口的情况下,即<hostname>:<port>默认为端口80

典型的问题情景

  1. 应用程序通常将它们的服务器设置为相同的默认IP地址127.0.0.1又名localhost (在主机文件中定义)
  2. 为了避免可能的其他现有/正在运行的服务器之间发生冲突,应用程序通常允许您更改端口,但不能更改IP地址。

    2A。 如果您可以在环回保留地址空间 127.0.0.0/8中将服务器IP地址更改为另一个地址 ,那么您可能不会尝试在hosts文件中设置端口。

可能的scheme

您可以使用Windows包括networking工具netsh作为端口代理解决此问题。


概观

 example.app | <--browser defaults to port 80 +--> example.app:80 | <--Hostname resolution by Hosts File +--> 127.65.43.21:80 | <--Link by netsh Utility +--> 127.0.0.1:8081 

操作

  • localhost:8081上启动服务器
  • 主机文件中添加“本地DNS”作为新行
    • 127.65.43.21 example.app
      • 可以使用networking127.0.0.0/8中的任何空闲地址。
      • 注意:我假设127.65.43.21:80没有被另一个服务占用。
      • 你可以用netstat -a -n -p TCP | grep "LISTENING" netstat -a -n -p TCP | grep "LISTENING"
  • 使用netsh命令实用程序添加以下networkingconfiguration
    • netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
  • 通过http://example.app访问服务器

笔记:
– 这些命令/文件修改需要使用pipe理员权限执行

– netsh portproxy需要ipv6库,甚至只使用v4tov4,通常它们也将被默认包含在内,否则使用以下命令安装它们: netsh interface ipv6 install


您可以看到使用以下命令添加的条目

netsh interface portproxy show v4tov4

您可以使用以下命令删除条目

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21


资源链接:

  • 使用Netsh
  • 接口IP的Netsh命令
  • 接口Portproxy的Netsh命令
  • Windows端口转发示例

注意:这个答案是我的答案在这个类似的问题/ stackoverflow上讨论的重复。

与其他答案主机文件没有端口信息,但你可以有一个redirect页面像apache或IIS的名称将基于名称的虚拟主机的页面。 检查标题并根据需要redirect。 不过,我并没有真正看到这个价值,因为你正在重新发明轮子。 Apache支持基于端口的虚拟主机,我假设iis。

您的目标是拥有一台运行我们的开发机器,用于生产情况。

按着这些次序:

 Install Fiddler2 Navigate to Fiddler2 menu:- Tools > HOSTS.. (Click to select) Add a line like this:- localhost:8080 www.mydomainname.com Save the file & then checkout www.mydomainname.com in browser. 

https://stackoverflow.com/questions/8652948/using-port-number-on-windows-xp-host-file

这是你可以做的,只对本地开发有帮助。

主机文件:

  • 127.0.0.1 local.site1.com
  • 127.0.0.1 local.site2.com

在IIS中,创build新的网站和local.site1.com&local.site2.com

IIS安装程序

  • IP地址:全部未分配(将使用本地主机或任​​何其他可用的IP)
  • 端口:除已经使用的以外(81,82,83等等.80已被默认网站使用)
  • 主机名称:保留空白

你已准备好出发。 只要确保你使用的端口没有被其他进程使用,也可以从防火墙,防病毒软件等打开。

之后,您可以使用以下URL从本地机器或从局域网访问网站。