安装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,我该如何解决?
答案 0 :(得分:166)
hosts
文件仅用于主机名称解析(在Windows上以及类Unix系统上)。你不能把端口号放在那里,并且没有办法用通用的操作系统级配置做你想要的 - 浏览器就是选择要选择的端口。
所以使用书签或类似的东西 (某些防火墙/路由软件可能允许出站端口重定向,但这听起来并不像是一个吸引人的选项。)
答案 1 :(得分:155)
您可以通过 Fiddler 2 应用程序修改hosts文件来实现您的目标。
请按照以下步骤操作:
- 安装 Fiddler2
- 导航至Fiddler2菜单: - 工具> HOSTS ..(点击选择)
添加如下所示的行: -
localhost:8080 www.mydomainname.com
- 保存文件&然后在浏览器中结帐
醇>www.mydomainname.com
。
答案 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
127.65.43.21 example.app
127.0.0.0/8
(127.x.x.x
)中的任何免费地址。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 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为您路由:)。
您可以使用nginx
或apache
来实现相同目标,但您需要对其进行配置。
答案 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文档:
答案 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记录指向服务器时自动添加新域。
Apache时代称之为虚拟主机 - &gt; httpd.apache.org/docs/trunk/vhosts/examples.html
NGINX - &gt;服务器块 https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/
答案 9 :(得分:0)
答案 10 :(得分:0)
这不能完全给出所请求的结果,但是,对于我正在做的事情,我并没有为将端口添加到浏览器中的URL感到困惑。
我将域名添加到主机文件
127.0.0.1 example.com
从域名8080上运行我的HTTP服务器
php -S example.com:8080
然后通过端口8080访问该网站
http://example.com:8080
只想分享,以防其他人遇到类似情况。