我想在Windows hosts
文件中指定具有两个不同端口的主机名。
有办法吗?或者Windows本身不允许这样做?
我一直在浪费时间寻找过去8小时的解决方案。
是否可以在主机文件中指定端口,hosts
?例如:127.0.0.1:80
和127.0.0.1:9211
我想在Windows hosts
文件中指定具有两个不同端口的主机名。
有办法吗?或者Windows本身不允许这样做?
我一直在浪费时间寻找过去8小时的解决方案。
是否可以在主机文件中指定端口,hosts
?例如:127.0.0.1:80
和127.0.0.1:9211
Answers:
您无法将端口号与映射到hosts文件中的IP的主机名相关联。你可以通过Fiddler使用Fiddler来实现这个目的:
if (oSession.HostnameIs("somesite.com")){
oSession.bypassGateway = true;
oSession["x-overrideHost"] = "1.2.3.4:8080";
}
只需使用没有端口的IP地址。例:
192.168.2.50 example.com
然后,从您的浏览器(或其他程序)访问192.168.2.50:5555:
http://example.com:5555/
(该hosts
文件可在以下找到C:\Windows\System32\drivers\etc\hosts
。)
C:\Windows\System32\drivers\etc\hosts
?
hosts
文件仅用于主机名解析<hostname>:<port>
,默认端口80
127.0.0.1
又名localhost
(在hosts文件中定义)。为了避免可能的其他现有/正在运行的服务器之间的冲突,应用程序通常允许您更改端口,但不能更改IP地址。
2A。如果您可以在环回保留地址空间 中将服务器IP地址更改为另一个127.0.0.0/8
,那么您可能不会尝试在hosts文件中设置端口。
您可以使用Windows附带的网络工具netsh
作为端口代理来解决此问题。
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
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
可以使用网络中的任何空闲地址。127.65.43.21:80
没有被其他服务占用。netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
注意:
- 需要使用管理员权限执行这些命令/文件修改
- netsh portproxy甚至只需要使用v4tov4的ipv6库,通常它们也会默认包含在内,否则使用以下命令安装它们:netsh interface ipv6 install
您可以使用以下命令查看已添加的条目:
netsh interface portproxy show v4tov4
您可以使用以下命令删除该条目:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
注意:这个答案是我在stackoverflow上的类似问题/答案中讨论的答案的重复。