基本上我想我的机器上的网站的所有请求被redirect到另一个网站。
例如:您可以ping yahoo.com,而google.com则可以ping通。
或者更有用的例子:facebook.com的每个请求都会自动作为https://facebook.com发送
你可以通过修改你的/etc/hosts文件来redirect本地的东西。
但是,你想要的http / https是完全不同的。
达到这个目的的一个办法是build立一个本地代理,并有必要的规则去做。 请记住,您的本地代理必须设置为忽略主机文件,并使用上游DNSparsingIP地址。
它是这样的:
正如评论中指出的那样,你们两个例子是完全不同的话题。
如果由于某种原因(现在无法想到)必须实现这个function,我要么编辑第一个例子中的主机文件,如果必要的修改列表很小或者设置我自己的本地DNS服务器来修改答复。
对于第二个示例,您可能会使用专门configuration的代理服务器,根据需要重写请求。 但是请注意,由于大多数站点并不提供SSL服务,因此无法以“全部”方式完成,因此将每个查询redirect到对应的https变体将不起作用。
你可以用Squidcaching代理程序来做一些这样的事情。 在这种情况下,/ etc / hosts技巧将不起作用,因为它不够智能,无法执行端口级redirect,例如http:https :.所需的redirect。 我相信Squid中的redirect规则足够强大,可以编写一些这些filter。 安装它在本地主机上,你可以做拦截代理(我相信),这样对用户是不可见的。
这是一个HTTP级别的redirect,但不是IP级别的。 对于纯IP,你需要别的东西。 / etc / hosts文件可以做很多事情,但是全部或者没有。 如果您需要将逻辑插入到redirect到IF Destination = A以上的地方,请发送到B,那么您将需要另一个包。
编辑你的/ etc / hosts :
#yahoo's IP address 69.147.114.224 google.com
至于Facebook的事情,你将需要运行一个DNS服务器,并设置一个网站https://网站而不是http://一个。