当我修改本地主机文件时:
1.1.1.1 示例
并使用我的浏览器连接到 example.com,一切正常(它请求“example.com”主机:在 1.1.1.1 服务器上)
但是当我尝试通过代理连接时,它会忽略它并尝试通过代理解析 example.com(当我将该行放在服务器上的 /etc/hosts 中时,它可以正常工作)。
我尝试在 Chrome 中使用 HTTP Header Modifier 插件,但效果是一样的。
通过代理连接时如何更改本地计算机上请求的主机?(我可以编辑 squid.conf,我只是不想每次有新域时都通过 SSH 连接到服务器)。
答案1
你在要求不可能的事情。当你使用 HTTP 代理服务器时(如你所愿),运行代理服务器的机器就是进行名称→地址查找(以查找 HTTP 内容服务器)的地方。因此,运行代理服务器的机器就是你必须添加查找覆盖的地方,例如你的example.com
→ 1.1.1.1
。如果你想让它成为你自己的机器,那么你必须运行 HTTP 代理服务器在您自己的机器。
当然,您可以设置一些 Rube Goldberg 机制,其中带有代理服务器的计算机使用其他计算机上的代理 DNS 服务器,而带有代理 DNS 服务器的计算机具有查找覆盖。但这样做只会给您带来 (a) HTTP 代理服务器计算机的额外外部依赖,(b)不同的当您想要添加另一个查找覆盖时,您仍然必须通过 SSH 进入并在其上编辑数据文件的机器,以及 (c) 可能对该服务器机器上的其他服务产生严重的不利影响,例如邮件、新闻、FTP、LAN 用户身份验证等,因为 DNS 查找覆盖不仅适用于 HTTP。
(我不会涉及更神秘的机制,例如将邮件发送到[email protected]
服务器上的邮箱,该邮箱的~alias/.qmail-squid
文件会调用定制程序,该程序会解析邮件以获取编辑命令,然后将其应用于ex
等squid.conf
。因为我必须涵盖允许整个互联网随意通过邮件编辑服务器配置所带来的广泛安全影响。仅仅因为不想花费相对微小的努力而建立这样的系统是非常愚蠢的ssh
。)
你必须接受这样一个事实:要让 HTTP 代理服务器完成这项特定任务,你需要进行某种形式的服务器管理,在运行服务器的机器,无论它是哪台机器。