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

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

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

< p > < br >之前 127.0.0.1 www.example.com < / p > < p > < br >后 127.0.0.1:8080 www.example.com < / p >

当我访问www.example.com时,它不重定向到我的wampserver,我该如何解决它?

382934 次浏览

hosts文件仅用于主机名解析(在Windows和类unix系统上)。你不能把端口号放在那里,也没有办法用通用的操作系统级配置来做你想做的事情——浏览器是选择端口的工具。

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

你可以通过提琴手2应用程序修改hosts文件来实现你想要的。

遵循以下步骤:

  1. < p >安装Fiddler2

  2. 导航到Fiddler2菜单:- 工具 >主机 . .(按此选择)

  3. 添加如下一行:-

    localhost:8080 www.mydomainname.com

  4. 保存文件&然后在浏览器中签出www.mydomainname.com

Fiddler2→规则→自定义规则

然后找到函数OnBeforeRequest放在下一个脚本的末尾:

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

如果发生的情况是您有另一个服务器在localhost上运行,并且您想给这个新服务器一个不同的本地主机名,例如 http://teamviewer/ < / p >

我认为您实际上正在寻找的是虚拟主机功能。我使用Apache,所以我不知道其他web守护进程如何支持这一点。也许它叫别名。以下是Apache文档:

Apache Virtual Hosts examples

我设法通过使用窗口包含网络工具netsh来实现这一点。

正如Mat所指出的:hosts文件仅用于主机名解析,因此这两个文件的组合对我来说很有用。

例子


概述

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

行动

  • localhost:8081上启动服务器
  • < em >主机文件< / em >中添加了我的“本地DNS”作为新行
      <李> 127.65.43.21 example.app
      • 可以使用网络127.0.0.0/8 (127.x.x.x)中的任何空闲地址。
      • < em >注意:< / em >我假设127.65.43.21:80没有被其他服务占用。
      • 你可以用netstat -a -n -p TCP | grep "LISTENING"来检查
      • 李< / ul > < / > 李< / ul > < / >
      • 使用< em > < / em > netsh命令实用程序添加以下网络配置
        • netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
        • 李< / ul > < / >
        • 我现在可以在http://example.app访问服务器
        < p > < em >指出:< br > —这些命令/文件修改需要使用管理权利< / em >

        执行

        - netsh portproxy需要ipv6库甚至只使用v4tov4,通常默认情况下也会包含它们,否则使用以下命令安装它们


        你可以用命令添加see the entry:

        netsh interface portproxy show v4tov4

        你可以用下面的命令删除条目:

        netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21


        参考资料链接:

-你可以在网络127.0.0.0/8中使用任何空闲地址,在我的情况下需要这个python flask,这是我所做的: 在hosts文件中添加这一行(你可以在windows文件中找到:C:\Windows\System32\drivers\etc):

127.0.0.5 flask.dev
  • 确保端口是默认端口“80”,在我的例子中,这是python flask中的内容:app.run("127.0.0.5","80")

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

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

你设置你的服务和它的IP:PORT,然后为你路由它:)。

你可以使用nginxapache来达到同样的效果,但是你需要对它们进行配置。

使用netsh与connectaddress=127.0.0.1没有为我工作。

尽管在互联网上到处寻找,我找不到解决这个问题的解决方案,这是使用connectaddress=127.x.x。X(即任意127。Ipv4地址,只是不是127.0.0.1),因为这似乎链接回本地主机一样,但没有限制,因此环回在netsh中工作。

你需要NGNIX或Apache HTTP服务器作为代理服务器来转发HTTP请求到适当的应用程序->监听特定的端口(或使用CNAME提供托管公司)。这是最强大的解决方案,这只是一个非常简单的方法,以保持添加新的子域,或自动添加新域时,DNS记录指向服务器。

替代的方法

  1. 安装重定向器
  2. 点击编辑重定向->创建新的重定向

enter image description here

这并没有确切地给出所请求的结果,但是,对于我所做的事情,我并不大惊小怪地将端口添加到浏览器中的URL中。

我在hosts文件中添加了域名

127.0.0.1      example.com

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

php -S example.com:8080

然后通过8080端口访问网站

http://example.com:8080

只是想分享一下,以防其他人有类似的情况。