通过 OpenVpn 重定向 Privoxy 流量

通过 OpenVpn 重定向 Privoxy 流量

我不确定这是否可行,但我想通过我的 OpenVpn 连接将来自 FireFox 的所有流量路由到 HideMyAss。

基本上,我的设置是,我正在通过 HideMyAss 使用 OpenVpn 运行连接,我已经编辑了 ovpn 文件并添加了“route-nopull”,以便在使用 Chrome、IE 等时。我使用本地连接,我已经安装了 Privoxy 并设置 FireFox 以使用该代理,然后我想要做的是让所有流量都通过 FireFox 正在使用的代理使用 OpenVpn 连接进行请求。

请原谅我,因为我对此还很陌生,这可能吗?

答案1

是的,这是可能的。OpenVPN 在网络级别工作,因此您不能将其安装在您的正常默认连接所经过的同一台机器上。您不能在计算机上有两个默认网关并告诉代理只使用其中一个,而这正是您要尝试做的。

您需要在单独的网络上设置另一台机器来执行此操作。然后在另一台机器上设置代理和 OpenVPN,然后通过它代理 FireFox 流量。

答案2

与 @illandous 的回答相反,我认为在一台机器上完成你想做的事情是完全有可能的。我无法给你一个具体的分步教程,这不是这个网站的目的,但至少这里有一些想法:

  • 使用iptables并利用owner模块(通过选项匹配流程--pid)仅发送PrivoxyOpenVPN网关生成的流量。
  • 绑定Privoxy到你的OpenVPN界面,确保阻止访问OpenVPN 网络连接到您的Privoxy,并且,如果您从提供商处获取的 IP 发生变化,请找到一种方法来动态更新PrivoxyFirefox配置,以通知他们有关更新后的 IP。
  • ...

我想还有更多可能的方法。无论哪种情况,这都需要编写一些脚本,但并不是什么高深的科学,而且我确信如果您遇到具体问题,您会得到帮助。祝你好运!

答案3

首先,你应该问这个问题https://superuser.com。那里还有更多有关 privoxy 的问题。

是的,这会起作用,并且您可以在同一台机器上使用它。

这里有三个活动部件,如果我不冻结其中一个,这篇文章将会太长,所以我们假设您正在运行一个开箱即用的 vanilla privoxy,仅绑定到 127.0.0.1 ipv4,端口 8118。

重要的 openvpn 选项(除了 hidemyass 提供给您的选项之外) 以及或route-nopull之一。 redirect-gateway def1redirect-gateway block-local

route-nopull阻止你的客户端接受来自 hidemyass 的路线(他们可能只会给你一个默认路线,他们没有太多其他可以做的事情)。

redirect-gateway def1为您提供一条到 0.0.0.0/1 的路由,以 hidemyass 为网关:它比您 LAN 上现有的默认路由略微具体一些(它的掩码更小)

第二个选项,redirect-gateway block-local我想你会想要的,当你连接到 VPN 时,它会阻止到 LAN 的流量(VPN 除外)。它通过添加到 0.0.0.0/1 的路由来实现这一点以 hidemyass 作为网关的到 LAN 子网的路由。如果您想要为 LAN 上的其他计算机提供代理服务,则不会使用此项,并且您会将 privoxy 配置为监听您的 LAN ip 地址和 lo 接口。

因此,所有浏览器(LAN 或仅您自己,无论您喜欢哪种设置)都已配置为使用您的本地 IP:8118 作为代理服务器。您实际上并没有在这里进行任何路由或数据包转发(代理不是路由)。

第三个移动部分,即路由其他内容,我甚至无法解决,因为除了 Chrome 和 IE 作为线索之外,您没有告诉我们您运行的是什么操作系统。那么您运行的是什么操作系统?

答案4

虽然实际上从技术上来说,通过一些努力是可以做到这一点的(例如使用 @gf_ 建议的方法),但不幸的是,这也很容易出错,而且几乎不可能验证你是否 100% 正确。例如,访问网页可能会加载一个插件,而这个插件可能无法通过 VPN 正确捕获。

如果您真正想要的是能够在同一台计算机上同时通过 VPN 进行私密浏览和非私密浏览,那么设置虚拟机更能实现您的目标。然后,您将运行 OpenVPN 客户端和私密 Web 浏览器,而不是该 VM。这比您建议的要容易得多,也更安全。

相关内容