我想欺骗我的浏览器访问 localhost:3000 而不是 xyz.com。我在 OS X 10.5 上进入 /etc/hosts 并添加了以下条目:
127.0.0.1:3000 xyz.com
那是行不通的,但没有指定端口的技巧有效。有没有办法指定端口?
我想欺骗我的浏览器访问 localhost:3000 而不是 xyz.com。我在 OS X 10.5 上进入 /etc/hosts 并添加了以下条目:
127.0.0.1:3000 xyz.com
那是行不通的,但没有指定端口的技巧有效。有没有办法指定端口?
不,hosts 文件只是一种在没有 DNS 服务器时静态解析名称的方法。
hosts 文件用于 DNS 解析。DNS将名称解析为IP地址,恐怕与端口无关。您将需要结合主机文件使用其他东西来重定向端口(通过更改目标端口来破坏 TCP 标头)。
使用 iptables:
MAC OS 是否使用 iptables / netfilter(我认为没有)..?如果 OS X 使用 iptables,您可以将 xyz.com 指向主机文件中的某个 ip,例如 157.166.226.25,然后:
:-)
您无需在 hosts 文件中指定端口。只需像您一样输入省略端口,如 127.0.0.1 xyz.com,这会将您定向到本地主机,然后只需将端口 3000 添加到 URL 的末尾... http://xyz.com :3000
假设您尝试拦截 http 而不是 https,则您必须在本地计算机上侦听端口 80,但是您可以通过 ssh'ing 到 localhost 来使用 ssh 的端口转发功能
-L80:localhost:3000
,但是您'必须以 root 身份执行此操作。让在端口 3000 上运行的任何东西只听端口 80 可能会更好。
如果您控制您和 xyz.com 之间的路由器,则可以改为设置端口转发规则。
DNS 解决方案是使用 SRV 记录:
http://en.wikipedia.org/wiki/SRV_record
这些是允许 DNS(最初是“名称到数字”或“数字到名称”分布式数据库)包含“名称到服务端点”的一种方式,它可以(可选地)包含协议和端口。
坏消息是必须开发应用程序才能使用 SRV 记录,因此它不是您想要做的事情的直接解决方案。
我认为您需要使用某种代理服务器或防火墙软件来重定向端口连接...
Chief-AG 是正确的,因为 hosts 文件用于静态解析名称(与 DNS 存在无关)。但是,您可能会做多种事情。
似乎是一项相当多的工作,但它会完成你的要求。
作为 ; 的虚拟主机的替代方案,您可以创建一个监听端口 80 并转发到 localhost:3000 的 ssh 隧道。
我假设这是用于 Rails 开发?如果是这样,则运行 script/server -p 80 以使其在标准 Web 端口上运行。那么你的 xyz.com 就可以了
如果您在 xyz.com 上使用 Apache 作为网络服务器,您可以使用 Apache
ProxyPass
来“转换”到不同的端口。