Shadowsocks 使用过程中的一些疑难问题,结合现有信息和自己的探索加以解释说明。

临时文件夹

遇到某些不可知问题,尝试清除临时文件夹。在 Shadowsocks 文件夹中添加 shadowsocks_portable_mode.txt,可以启动便携模式,临时文件夹在 shadowsocks/temp。

默认绕过系统代理的软件的设置

某些软件默认绕过系统代理,直接使用时无法连接网络,如 QQ、网易云音乐、百度云等,在其设置选项中将其代理设置为使用浏览器代理即可。

使用 Proxifier 配置不能使用代理的软件

一些软件默认不使用代理,也没有设置代理的选项,如 Gitbook Editor、一些游戏等。这时可以使用 Proxifier 来让这些特定的程序通过代理,将默认规则设为通过代理,或将默认设为直连并将无法通过代理的程序加入代理名单,两种方法均可。一定要注意在使用时在 Proxifier 代理规则中将 Shadowsocks 加入直连名单,否则 Shadowsocks 会陷入代理循环。实际使用中发现一些游戏不支持 sock5 代理,无法通过代理联网,如 COD8,GitBook Editor。

代理配置

在浏览器代理设置中可以勾选绕过本地地址,或者添加例外地址:localhost 等,防止在本地预览一些服务如 Hexo 博客预览时出现错误。
浏览器上可以配合 SwitcyOmega 等扩展实现更灵活的控制。

使用 IPv6 地址

要求连接的网络支持 IPv6,同时使用可以提供 IPv6 地址的 VPS,在服务器中填写 IPv6 的地址,模式设置为全局。
通过向远程服务器转发 IPv6 流量,更可以实现通过 IPv4 网络访问 IPv6 网站,需要客户端软件提供。

虚拟机代理设置

本操作的目的是让虚拟机的 Guest OS 共享主机的代理连接网络。除了在虚拟机中如同 Host OS 一样配置 sock5 代理外,可以进行如下操作。

软件默认监听的地址是 127.0.0.1,也就是本机,但只有让软件的监听地址绑定在 0.0.0.0,才能把网络共享给 Guest OS。方法是开启“允许来自局域网的连接”。通过以下命令确认:

1
netstat -a

这个 0.0.0.0 是任意的意思,就是说允许其他任何主机连接到这一代理上,并不是一个特定的地址,所以不要在代理设置里填写 0.0.0.0。正确的做法是:本机上的代理设置依旧是 127.0.0.1,而 Guest OS 的网络设置就因 Guest OS 的网卡模式而异了。

NAT 模式下,Guest OS 的代理设置为:Host OS 的 IP 地址(一个内网地址)+ 软件端口号,而不是填写 127.0.0.1。以 Ubuntu 的 Guest OS 为例,找到设置 - 网络设置 - 代理,在所有类型都填入 Host OS 的 IP 地址,再填好端口号。Host OS 的 IP 地址通过以下命令获取:

1
ipconfig

找到其中的本地连接一项后的 IPv4 地址,注意它应该是一个本地 IP 地址。

然后将浏览器的代理设置为使用系统代理即可。

git 代理设置

git 默认绕过系统代理,所以无法通过代理联网,git 命令无法与 git 服务器获得连接。通过以下命令为 git 设置 socks5 代理,然后保持 Shadowsocks 常开:

1
2
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080

或者(git 支持 socks5 代理)

1
2
git config --global http.proxy 'socks5://127.0.0.1:1080' 
git config --global https.proxy 'socks5://127.0.0.1:1080' # 在虚拟机中检验成功

设置全局代理的另一种说法(在某次出错后尝试有效):

1
git config --global http.proxy socks5://127.0.0.1:1080

如果是虚拟机设置 git 代理,将 127.0.0.1 换成 Host OS 的本地 IP 地址。

取消 git 代理方法如下:

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

查看当前代理:

1
git config --global --get http.proxy

npm 代理设置

默认的 npm 命令不走代理,无法通过这一命令安装 npm 包,例如安装 gitbook-cli 失败。按照以下方法设置代理:

1
2
npm config set proxy=http://127.0.0.1:1080 #http 代理
npm config set https_proxy=http://127.0.0.1:1080 #https 代理

此处参考npm 用法及离线安装方法

aria2 代理设置

使用 aria2webui-aria2管理界面来下载可以极大地提高下载速度,据说可以达到 10M/s,现有网络环境自己实测可以达到 5M/s。但在 socks5 代理下是无法直接使用的。
打开全局设置,在 all-proxy 一项填入http://127.0.0.1:1080。

相关推荐

auooo: ShadowSocks(影梭)不完全指南

更新记录

2016.10.6 加入“使用 Proxifier 配置不能使用代理的软件”部分;加入“npm 代理设置”部分
2016.10.18 加入“aria2 代理设置”部分
2017.7.26 补充 IPv6 相关