Chrome设置代理的方法
Chrome浏览器并未提供设置单独代理的方式,如果需要配置代理,就要打开系统层面的代理方式,但这种方式对其他应用程序也会产生影响,不是特别的方便,在这里整理和记录平时了解到的代理设置方式,以供未来查阅。
插件商店
Chrome浏览器中有丰富的插件商店,其中各种的网络代理插件可以实现上述所需的功能,比较推荐的是Proxy SwitchyOmega插件,虽然多年没有进行更新了,但依然能够满足使用需求。如果觉得这个代理插件设置起来比较复杂,也可以尝试Socks5 Configurator这款插件,这款插件只支持设置socks5代理,但设置方式足够简单,可以方便新手使用。如果插件商店无法访问的话,可以先通过设置系统代理的方式让Chrome走代理,安装完插件后再关闭代理。
以上的解决方法虽然方便、快捷,但问题在于,Chrome的更新以及内置的翻译系统,都是通过开启单独的程序进行的,而且不会通过插件的代理方式,更新系统的服务器在国内仍然是可以访问的,所以问题倒不是很大。重点在于右键菜单中的翻译功能,目前大陆的谷歌翻译服务器已经关闭了,所以网页弹出的自动翻译功能大概率是无法使用的,如果不想安装额外的翻译插件,也可以尝试以下的代理方式。
命令行参数
Chrome在启动时可以设置命令行参数的方式来为浏览器设置代理,这种方式可以弥补上述的插件缺陷,让内置翻译也通过代理。在Windows下可以为Chrome的快捷方式配置参数,具体格式如下:
1 | "C:\....\chrome.exe" /proxy-server="socks5://proxy-server:proxy-port" |
上面的/不能省略,否则命令很可能不生效,具体原因有待了解,--show-app-list同理。
修改:经过测试,即使是像macOS下的命令参数也是可以实现的,但不能少加其它参数,否则代理不会生效,会按照直连网络走。比如:
1 | "C:\....\chrome.exe" --args --proxy-server="socks5://proxy-server:proxy-port" (有效) |
在macOS下,可以通过如下的命令行参数打开浏览器:
1 | open -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --proxy-server=socks5://proxy-server:proxy-port |
不过这种方法不如Windows下的方法,可以通过快捷方式打开。也可以自行通过macOS下的自动操作(automator)来创建一个运行上述脚本的应用程序,来替带原来的Chrome程序。具体如下:
打开自动操作以后,选取文稿类型中选择应用程序,然后在最左边的操作中选择运行Shell脚本,将上面的脚本复制进去后,通过快捷方式保存到应用程序文件夹中就完成了。如果觉得默认的图标不好看,也可以把Chrome的图标复制到自己创建的程序上。具体方式是在应用程序文件夹中对两个程序分别右键,然后点击显示简介,最后只需要拖动Chrome简介里的图标到自制程序的简介里,如果没有效果,可以尝试把下面的锁打开,完成后再锁上。
上述代理方式不限于socks,http、https以及quic等甚至pac都可以使用。不过根据chromium的文档说明,这种代理方式下,如果设置的是socks5代理,udp流量并不会被代理,这可能需要注意部分隐私问题,同时DNS解析是全部交给代理服务器解析的,这点不同于Firefox可以指定是否交由代理服务器进行解析。而且代理也会在无痕模式中生效,这点与插件中可以选择是否生效也有所区别。
最后为了防止代理出现问题无法访问,也可以通过设置过个代理,来让浏览器在无法访问代理是,自动回落到下一个代理方式,具体格式为--proxy-server="http://foo:8080,direct://",使用逗号间隔开的形式表示http代理无法访问时切换至直连模式。