Fork me on GitHub

Ubuntu下google不能正确代理的解决方法

@author:zhanjzh

问题陈述

在某些环境下,我们配置的 shadowsocks 代理可能在chrome之外的浏览器能正常工作,但在chrome下反而不能正确代理流量。

寻找解决方法

通过打开 chrome://chrome-urls 中的 chrome://linux-proxy-config , 你可以看到网址给你的提示:

1
2
3
在受支持的桌面环境中运行Google Chrome时,将使用系统代理设置。但您的系统不受支持,或启动系统配置时出现问题。

但您仍可通过命令行进行配置。如需详细了解各项实验功能和环境变量,请参见 man google-chrome-stable。

解决

那么问题就很简单了,加上配置参数就行。
通过

man google-chrome-stable
查看 proxy 的相关选项。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
--proxy-server=host:port
Specify the HTTP/SOCKS4/SOCKS5 proxy server to use for requests.

This overrides any environment variables or settings picked via
the options dialog. An individual proxy server is specified
using the format:

[<proxy-scheme>://]<proxy-host>[:<proxy-port>]

Where <proxy-scheme> is the protocol of the proxy server, and is
one of:

"http", "socks", "socks4", "socks5".

If the <proxy-scheme> is omitted, it defaults to "http". Also
note that "socks" is equivalent to "socks5".

Examples:

--proxy-server="foopy:99"
Use the HTTP proxy "foopy:99" to load all URLs.

--proxy-server="socks://foobar:1080"
Use the SOCKS v5 proxy "foobar:1080" to load all URLs.

--proxy-server="socks4://foobar:1080"
Use the SOCKS v4 proxy "foobar:1080" to load all URLs.

--proxy-server="socks5://foobar:66"
Use the SOCKS v5 proxy "foobar:66" to load all URLs.

It is also possible to specify a separate proxy server for dif‐
ferent URL types, by prefixing the proxy server specifier with a
URL specifier:

Example:

--proxy-server="https=proxy1:80;http=socks4://baz:1080"
Load https://* URLs using the HTTP proxy "proxy1:80". And
load http://*
URLs using the SOCKS v4 proxy "baz:1080".

--no-proxy-server
Disables the proxy server. Overrides any environment variables
or settings picked via the options dialog.

--proxy-auto-detect
Autodetect proxy configuration. Overrides any environment vari‐
ables or settings picked via the options dialog.

我的shadowsockks是基于socks协议,端口为127.0.0.1:1080 的,于是我的操作如下:
打开 google-chrome-stable 的启动快捷方式:

sudo vim /usr/share/applications/google-chrome-stable.desktop

查找每一个 Exec, 在该行后面添加:

1
--proxy-server="socks://127.0.0.1:1080"

如果你使用的协议跟我不同的话,做一些相应的修改即可。