首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将Windows主机文件配置为使用IP地址加端口?

问是否可以将Windows主机文件配置为使用IP地址加端口?
EN

Server Fault用户
提问于 2010-02-21 18:16:25
回答 8查看 64.3K关注 0票数 14

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

例如:

代码语言:javascript
复制
127.0.0.1:80       www.site1.com
127.0.0.1:8080     www.sitetwo.com

因为我让Apache监听端口8080,IIS监听端口80 (默认)。

因此,我认为最好的方法是修改hosts文件。对任何事都没有影响。我没有收到任何错误,也没有任何信息。

EN

回答 8

Server Fault用户

发布于 2010-02-21 18:33:25

你不能。主机文件就是--主机。它相当于本地计算机中的“短路”DNS。DNS也不能将您发送到端口。

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

票数 11
EN

Server Fault用户

发布于 2016-09-15 09:50:10

  • hosts文件仅用于主机名解析。
  • 如果没有直接指定端口:即<hostname>:<port>,浏览器默认为端口80

###Typical问题Scenario###

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

2a。如果您可以将服务器ip地址更改为回送预留地址空间 127.0.0.0/8中的另一个地址,那么您可能不会试图在主机文件中设置端口。

可能的解决方案

您可以使用netsh作为端口代理来解决此问题。

概述

代码语言:javascript
复制
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

Actions

  • 在localhost:8081上启动服务器
  • 将主机文件中的“本地DNS”添加为新行
    • 127.65.43.21 example.app
      • 可以使用网络127.0.0.0/8中的任意空闲地址。
      • 注意:我假设127.65.43.21:80没有被其他服务占用。
      • 您可以向netstat -a -n -p TCP | grep "LISTENING"查询

  • 使用netsh命令实用程序添加以下网络配置
    • netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1

  • 在http://example.app访问服务器

*说明:

  • 这些命令/文件修改需要使用管理权限执行*

- netsh端口代理需要ipv6库甚至只使用v4tov4,通常默认情况下也会包括它们,否则使用以下命令安装它们:netsh interface ipv6 install

您可以看到添加了以下命令的条目:

netsh interface portproxy show v4tov4

可以使用以下命令删除该条目:

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21

###Links到Resources:###

注意:这个答案重复了我在关于堆栈溢出的类似问题/答案。中讨论的答案

票数 5
EN

Server Fault用户

发布于 2013-01-25 09:29:30

你可以用费德勒做这件事。有了Fiddler脚本,你可以做很多令人惊奇的事情。

如果你像这样设置主机

代码语言:javascript
复制
127.0.0.1     www.site1.com    # Port 80
127.0.0.1     www.sitetwo.com  # Port 8080

将其添加到CustomRules.js中(要打开CustomRules.js,请选择Fiddler‘Fiddler菜单上的自定义规则)

代码语言:javascript
复制
// 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。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/115282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档