我有两个网络 = 有线和无线。有线连接到一个路由器,无线连接到另一个路由器(不同的网络)。有线仅使用代理设置,无线是供客人使用的互联网接入。
通常我使用有线网络,如果我需要在没有代理服务器的情况下访问互联网,我必须连接到无线网络并暂时关闭代理设置。
有没有办法让两个网络都打开,并仅通过无线网络使用一个特定的浏览器没有连接到有线网络时,代理设置是否打开?
1. 尝试摆弄 Chrome,但它继承了系统的设置 :-( 2. 尝试使用谷歌,我通常擅长谷歌搜索。这次不行 :(
操作系统:Windows 10
答案1
不幸的是,没有特别干净的解决方案。但有几种方法可以做到。
首先,您需要能够告诉浏览器使用独立于操作系统的代理设置。使用 Firefox,这可以通过常规的“首选项”UI 轻松实现 - 您可以告诉它不使用任何代理,或者使用特定的(不同的)代理。如果您想要一个具有自己的代理设置的单独实例,您可以使用其他配置文件 - 或者使用 FoxyProxy 根据目标网站进行选择。使用 Chrome,您需要向它传递参数--proxy-server
(通过命令行调用它时,或使用该参数的快捷方式)。
另一个更难的部分是让浏览器绑定到特定接口。据我所知,没有主流浏览器本身支持此操作。有一个名为 ForceBindIP 的旧工具,但我发现它在使用多个进程的现代浏览器上无法可靠地工作。操作系统仅通过目标 IP 地址提供路由配置,而不是通过源程序提供路由配置。
另一种方法是提供一个单独的 (SOCKS) 代理,该代理绑定到您想要的接口。然后,您将浏览器指向这个额外的代理。提供此代理有几种选择:
- WinGate(一个相当复杂的软件)能够本地提供它。
- 您可以运行一个托管 SOCKS 代理(例如 dante)的 VM(Linux 更轻),并将 VM 网络适配器桥接到您想要的接口。
- 您可以像上面一样运行虚拟机,并托管 SSH 服务器。然后使用 Windows 中的 SSH 客户端提供 SOCKS 代理。
- 您可以使用远程计算机作为代理服务器(无论是直接使用 SOCKS 还是 SSH 服务器)。如果这样做,您需要在客户端上定义一条路由,告诉它使用不受限制的网络作为代理服务器的 IP 地址。
相关 Firefox 功能请求:https://bugzilla.mozilla.org/show_bug.cgi?id=651882