在Windows主机文件中使用端口号

时间:2011-12-28 07:09:06

标签: windows

安装TeamViewer后,我已将wampserver端口更改为8080,因此地址为http://localhost:8080.

对于位于C:\ WINDOWS \ system32 \ drivers \ etc \的主机文件,我也进行了如下更改


127.0.0.1 www.example.com


127.0.0.1:8080 www.example.com

当我访问www.example.com时,它没有直接到我的wampserver,我该如何解决?

11 个答案:

答案 0 :(得分:166)

hosts文件仅用于主机名称解析(在Windows上以及类Unix系统上)。你不能把端口号放在那里,并且没有办法用通用的操作系统级配置做你想要的 - 浏览器就是选择要选择的端口。

所以使用书签或类似的东西 (某些防火墙/路由软件可能允许出站端口重定向,但这听起来并不像是一个吸引人的选项。)

答案 1 :(得分:155)

您可以通过 Fiddler 2 应用程序修改hosts文件来实现您的目标。

请按照以下步骤操作:

  
      
  1. 安装 Fiddler2
  2.   
  3. 导航至Fiddler2菜单: - 工具> HOSTS ..(点击选择)
  4.   
  5. 添加如下所示的行: -

         

    localhost:8080 www.mydomainname.com

  6.   
  7. 保存文件&然后在浏览器中结帐www.mydomainname.com
  8.   

答案 2 :(得分:115)

我设法通过使用 Windows包含网络工具 netsh 来实现这一目标。

Mat指出:hosts文件仅用于主机名解析,因此两者的结合对我来说很有用。

实施例

概述

example.app:80
 |                           <--Link by Hosts File
 +--> 127.65.43.21:80
       |                     <--Link by netsh Utility
       +--> localhost:8081

操作

  • localhost:8081
  • 上启动了我的服务器
  • 添加了我的&#34;本地DNS&#34;在 hosts文件 中作为新行
    • 127.65.43.21 example.app
      • 可以使用网络127.0.0.0/8127.x.x.x)中的任何免费地址。
      • 注意: 我假设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 portproxy needs ipv6 libraries即使只使用v4tov4,默认情况下也会包含它们,否则使用以下命令安装它们:netsh interface ipv6 install

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

netsh interface portproxy show v4tov4

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

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21

资源链接:

答案 3 :(得分:12)

Fiddler2 - &gt;规则 - &gt;自定义规则

然后在最后输入下一个脚本中找到函数OnBeforeRequest:

if (oSession.HostnameIs("mysite.com")){
    oSession.host="localhost:39901";
}

答案 4 :(得分:3)

最简单的方法是使用Ergo作为反向代理: https://github.com/cristianoliveira/ergo

您可以设置服务及其IP:PORT和ergo为您路由:)。

您可以使用nginxapache来实现相同目标,但您需要对其进行配置。

答案 5 :(得分:2)

- 您可以使用网络127.0.0.0/8中的任何免费地址,在我的情况下需要这个用于python flask,这就是我所做的: 在hosts文件中添加此行(您可以在以下窗口中找到它:C:\ Windows \ System32 \ drivers \ etc):

127.0.0.5 flask.dev
  • 确保端口是默认端口&#34; 80&#34;在我的情况下,这就是python烧瓶中的内容:app.run("127.0.0.5","80")

  • 现在运行您的代码并浏览flask.dev

答案 6 :(得分:1)

如果发生的事情是您在localhost上运行了另一台服务器,并且您希望为此新服务器提供不同的本地主机名,例如 http://teamviewer/

我认为您实际需要的是虚拟主机功能。我使用Apache,所以我不知道其他网络守护进程如何支持这一点。也许它被称为Alias。这是Apache文档:

Apache Virtual Hosts examples

答案 7 :(得分:1)

将netsh与connectaddress = 127.0.0.1一起使用对我来说无效。

尽管在互联网上无处不在,我找不到解决这个问题的解决方案,这是使用connectaddress = 127.xxx(即任何127.ipv4地址,只是不是127.0.0.1),因为它似乎链接回到localhost只是相同但没有限制,所以环回在netsh中工作。

答案 8 :(得分:0)

您需要NGNIX或Apache HTTP服务器作为代理服务器,以将http请求转发到适当的应用程序 - &gt;它监听特定端口(或者使用提供托管公司的CNAME)。它是最强大的解决方案,这只是一种非常简单的方法,可以继续添加新的子域,或者在DNS记录指向服务器时自动添加新域。

答案 9 :(得分:0)

  1. Install Redirector
  2. 点击编辑重定向->创建新重定向

enter image description here

答案 10 :(得分:0)

这不能完全给出所请求的结果,但是,对于我正在做的事情,我并没有为将端口添加到浏览器中的URL感到困惑。

我将域名添加到主机文件

127.0.0.1      example.com

从域名8080上运行我的HTTP服务器

php -S example.com:8080

然后通过端口8080访问该网站

http://example.com:8080

只想分享,以防其他人遇到类似情况。