安装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,我该如何解决它?


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

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


您可以通过Fiddler 2应用程序修改hosts文件来实现所需的功能。

遵循以下步骤:

安装Fiddler2 导航到Fiddler2菜单:- Tools > HOSTS..(按此选择) 像这样加一行:- localhost: 8080 www.mydomainname.com 保存文件,然后在浏览器中签出www.mydomainname.com。


Fiddler2 ->规则->自定义规则

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

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

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

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

Apache虚拟主机示例


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

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

例子


概述

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

行动

Started my server on localhost:8081 Added my "local DNS" in the hosts file as a new line 127.65.43.21 example.app Any free address in the network 127.0.0.0/8 (127.x.x.x) can be used. Note: I am assuming 127.65.43.21:80 is not occupied by another service. You can check with netstat -a -n -p TCP | grep "LISTENING" added the following network configuration with netsh command utility netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1 I can now access the server at http://example.app

注: —这些命令/文件修改需要以Admin权限执行

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


你可以看到你用命令添加的条目:

Netsh接口portproxy显示v4tov4

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

Netsh接口portproxy删除v4to4 listenport=80 listenaddress=127.65.43.21


参考资料链接:

使用Netsh “接口IP”的Netsh命令 Netsh命令用于接口端口代理 Windows端口转发示例


-你可以使用网络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

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

你可以使用nginx或apache来达到同样的效果,但你需要配置它们。


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

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


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

Apache时代称其为虚拟主机-> httpd.apache.org/docs/trunk/vhosts/examples.html NGINX >服务器块 https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/


替代的方法

安装转向器 单击编辑重定向->创建新的重定向


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

我在hosts文件中添加了域名

127.0.0.1      example.com

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

php -S example.com:8080

然后通过8080端口访问网站

http://example.com:8080

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