Switchyomega: 我想问问到底支持vpn吗?

Created on 18 Apr 2016  ·  7Comments  ·  Source: FelisCatus/SwitchyOmega

我企图在里面设置vpn但是没有对应的地方,我有对应的vpn地址和账号密码但是并不是什么代理服务器的形式的。
然而在百度知道上有人是说支持的。。。
http://zhidao.baidu.com/link?url=fljFjmFyTPEdHMCH6QHPmBWjyWvuuTtRLTLIsgLOY88rCFusxLb9pCmvkbsiT0t0Ecc7LBI0qLcntFNfkVWq_IBoLsgt62w-dQ8OpnsCHDy

Most helpful comment

why do you trust baidu?

All 7 comments

SwitchyOmega 是一款代理设置软件。从技术角度而言,VPN 服务器不是代理服务器,所以不支持。

但某些 VPN 提供商同时也提供代理服务。此外,某些代理提供商出于宣传等目的,会错误地把代理服务器称为“Web VPN”或“网页 VPN”等。

判断 SwitchyOmega 是否支持某代理服务器的关键在于代理协议是否支持。 Chrome 原生只支持四种代理协议—— HTTP, HTTPS, SOCKS4 和 SOCKS5 。如果您的提供商提供的是以上四种代理协议之一,那么可以直接设置使用 SwitchyOmega.

有些客户端软件可以将特殊的通讯协议转换为以上四种协议之一(例如 Shadowsocks 客户端可以将 Shadowsocks 协议转换为 SOCKS5 或 HTTP 协议),从而兼容浏览器的代理设置。您的 VPN 提供商也可能会提供这样的客户端软件。

如果您的 VPN 是所谓的 PPTP, L2TP, OpenVPN 等协议,那么可以肯定地告诉您,这些协议是属于 VPN 协议,应该在网络层设置。设置后,整个系统都生效(包括 Chrome),此时无须使用 SwitchyOmega ,也无法使用 SwitchyOmega 的任何切换功能。

why do you trust baidu?

为什么「设置后,……也无法使用 SwitchyOmega 的任何切换功能。」?按我对 VPN 的理解,连 VPN 后 SwitchyOmega 一样可以继续用代理。有人报告通过 SwitchyOmega 解决了连 VPN 后无法用 Shadowsocks 的问题:https://github.com/shadowsocks/shadowsocks-windows/issues/1421#issuecomment-336027178

如果确实无法使用的话,按我对 @chenshaoju 的解决方案的理解,只能直接在 VPN 上通过设置 PAC 来继续使用 Shadowsocks 代理了。

我试着导出了自动切换情景模式的 PAC,并在 VPN 设置导入这个 PAC 文件。可是无论 SwitchyOmega 用直接连接模式还是不启用 SwitchyOmega 扩展,一样不能正常访问互联网。

Shadowsocks 和 VPN 的实现不一样。

PPPoE/VPN是系统级网络连接,相当于多安装了一块(虚拟机的)物理网卡,所有用户流量通过这个VPN连接访问。

SS则是本机SOCKS5/HTTP代理,在本机开放了一个代理服务器,应用需要支持代理或者支持系统代理(PAC)才能通过 SOCKS5/HTTP 代理协议协议进行访问。

SwitchyOmega 是浏览器插件,只针对当前浏览器生效,和你导出的PAC没有任何关系。

昨天连 VPN 后,ShadowsocksR 的 log 没有异常报错,ping SSR 服务器也得通,看来本地 SSR 客户端能正常工作,也能正常访问服务器。

今天再做了实验:连 VPN 后,把 SwitchyOmega 禁用了,在终端启动 chromium --proxy-server="socks5://127.0.0.1:1080" ,代理成功。看来 SwitchyOmega 有在连 VPN 后无法正常工作的 bug。

SwitchyOmega 是代理设置软件,不涉及网络请求和协议。如果遇到类似 @acgtyrant 的情况,请试试看打开 chrome://net-internals/#proxy 然后看看那里显示的实际代理设置是怎么样的。如果使用命令行参数可以的话,那么请以使用了命令行参数以后 chrome://net-internals/#proxy 的内容为准。

接下去,只需要正确设置 SwitchyOmega ,使得使用 SwitchyOmega 设置的结果和命令行设置后的结果完全一致即可,这样 Chrome 的行为也会完全一致。在这个例子中,可能需要创建一个代理情景模式,第一行输入 SOCKS5, 127.0.0.1, 8080 然后 清空“不代理的地址列表” ,保存,最后点击打开 SwitchyOmega 图标,选中刚创建的情景模式。检查 chrome://net-internals/#proxy 的内容,是否和想要的结果一致(如果只有 Proxy server / Proxy server for everything else 的不同则可以忽略)。如果一致的话,再以这个情景模式为基础,设置自动切换。自动切换的规则当然需要以实际情况为准,也就是说需要确认连了 VPN 之后哪些网址需要走代理而哪些不需要来进行设置。如果用了规则列表的话,也注意规则列表是否适用。

Was this page helpful?
0 / 5 - 0 ratings