在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,我该如何解决?
谢谢
hosts
文件仅用于主机名parsing(在Windows以及类Unix系统上)。 你不能把端口号放在那里,并且没有办法用通用的操作系统级别的configuration来做你想要的 – 浏览器是select端口的select。
所以使用书签或类似的东西。
(某些防火墙/路由软件可能允许出站端口redirect,但这听起来不像是一个吸引人的选项。)
您可以通过Fiddler 2应用程序修改主机文件来达到目的。
按着这些次序:
- 安装Fiddler2
- 导航到Fiddler2菜单: – 工具 > HOSTS ..(点击select)
像这样添加一行: –
localhost:8080 www.mydomainname.com
- 保存文件,然后在浏览器中检出
www.mydomainname.com
。
我设法通过使用Windows包括networking工具netsh
实现这一点。
正如Mat指出的那样:hosts文件仅用于主机名parsing,所以两者的组合对我来说都是诀窍。
例
概观
example.app:80 | <--Link by Hosts File +--> 127.65.43.21:80 | <--Link by netsh Utility +--> localhost:8081
操作
- 在
localhost:8081
上启动我的服务器localhost:8081
- 将主机文件中的“本地DNS”添加为新行
-
127.65.43.21 example.app
- 可以使用networking
127.0.0.0/8
中的任何空闲地址。 - 注意:我假设
127.65.43.21:80
没有被另一个服务占用。 - 你可以用
netstat -a -n -p TCP | grep "LISTENING"
netstat -a -n -p TCP | grep "LISTENING"
- 可以使用networking
-
- 使用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端口转发示例
Fiddler2 – >规则 – >自定义规则
然后在下一个脚本的末尾find函数OnBeforeRequest:
if (oSession.HostnameIs("mysite.com")){ oSession.host="localhost:39901"; }
– 你可以使用127.0.0.0/8networking中的任何空闲地址,在我的情况下需要这个python烧瓶,这就是我所做的:在主机文件中添加这一行(你可以find它是windows下:C: \ Windows \ System32 \ drivers \ etc):
127.0.0.5 flask.dev
-
确保端口是默认的端口“80”在我的情况下,这是在python烧瓶:
app.run("127.0.0.5","80")
-
现在运行你的代码并浏览
flask.dev
如果发生的事情是你有另一台服务器运行在本地主机,你想给这个新的服务器一个不同的本地主机名像http://teamviewer/
我认为你实际上正在寻找的是虚拟主机function。 我使用Apache,所以我不知道其他Web守护进程如何支持这一点。 也许它被称为别名。 这里是Apache文档:
Apache虚拟主机的例子
最简单的方法是使用Ergo作为反向代理: https : //github.com/cristianoliveira/ergo
你设置你的服务和它的IP:PORT和ergo为你路由:)。
你可以用nginx
或者apache
来实现,但是你需要configuration它们。