[关闭]
@yiranphp 2017-01-15T17:44:37.000000Z 字数 2886 阅读 13664

Shadowsocks 入门详解

翻墙


TL;DR

  1. Shadowsocks 的简介
  2. Shadowsocks 的运行原理
  3. Shadowsocks 的特点
  4. Shadowsocks 的客户端使用教程(mac 举例)

Shadowsocks 的简介

以下内容转自【维基百科】,并做了删改:
Shadowsocks是使用Python、C++、C#等语言开发的、基于Apache许可证的开放源代码软件,用于保护网络流量、加密数据传输。使用的是Socks5代理方式。其分为服务器端和客户端。在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。

在天朝,本工具被广泛用于翻墙。

Shadowsocks原理

使用特定的中转服务器完成数据传输。
在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地Socks5代理。浏览网络时,网络流量会被分到本地socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。

Shadowsocks特点

  1. Shadowsocks使用自行设计的协议进行加密通信。加密算法有AES、Blowfish、IDEA、RC4等,除创建TCP连接外无需握手,每次请求只转发一个连接,因此使用起来网速较快,在移动设备上也比较省电。
  2. 所有的流量都经过算法加密,允许自行选择算法,所以比较安全。
  3. Shadowsocks通过异步I/O和事件驱动程序运行,响应速度快。
  4. 客户端覆盖多个主流操作系统和平台,包括Windows,OS X,Android和iOS系统和路由器(OpenWrt)等。
  5. 专为移动设备和无线网络优化。

Shadowsocks使用

由于 SS 支持的客户端特别多,举个 mac 的例子吧,步骤如下
1. 下载MAC OS X上的影梭软件: 点击下载
2. 打开下载的dmg文件,将程序图标拖到右边的Applications,安装完成。安装影梭
3. 进入Launchpad,打开ShadowsocksX程序,程序图标出现在右上方,点击图标-“服务器”-“服务器设定”。
服务器设置
4. 根据SS的帐号信息,填写服务器地址(IP或者域名)、端口、加密方式和密码,点确定。此处输入图片的描述
5. 选择刚刚配置好的服务器,点“打开影梭”,完成设置。此处输入图片的描述
6. 打开浏览器:Safari或Chrome无需设置,开始科学上网

Shadowsocks使用帮助(以下内容摘自官方说明)

基本使用

  1. 解压后移动到合适目录下,然后启动。
  2. 如果弹出系统安全提示,请选「允许」。
  3. Shadowsocks 会自动设置为全局 PAC 代理,Chrome、Safari、Twitter 都可以正常使用了。
  4. 如果你开启了其它翻墙工具,请先将它们关闭。如果你使用了 Chrome 扩展程序SwitchySharp,请把它的模式设置为「使用系统代理设置」。
  5. 启动后可以在菜单栏右边找到 Shadowsocks 图标。

高级使用

  1. 如果你不想用全局 PAC 代理,想配合 SwitchySharp 等插件使用,可在菜单栏图标里点关闭 Shadowsocks。关闭后代理仍会运行在 127.0.0.1:1080 上,代理类型为 SOCKS v5。之所以不叫关闭 PAC,因为很多人不懂什么是 PAC。写关闭 Shadowsocks 更容易理解。
  2. 默认使用公共服务器,可以在菜单栏图标里配置自定义服务器。
  3. 切换服务器后,因为 Chrome 保持长连接,可能需要重启浏览器才能生效。也可以重启 ShadowsocksX 来强制 Chrome 重新连接。
  4. 可以在菜单里点编辑 PAC 来修改 PAC 文件,文件保存后会自动通知浏览器重新加载。推荐用 Xcode 等代码编辑器来编辑。如果用系统自带的文本编辑器,引号可能自动半角变全角,需要撤销一下回到半角。
  5. 可以在菜单栏图标里打开控制台查看日志,其中 ShadowsocksX: 开头的是 Shadowsocks 的日志。

解释一下,基本使用的第三点:Shadowsocks 会自动设置为全局 PAC
如果你是 mac 系统,Shadowsocks选中的是自动代理模式,那么你可以打开 系统设置-->网络,点高级进入下图中的界面,查看代理,你会发现,被勾选了自动代理配置,并且代理配置文件是
http://127.0.0.1:8090/proxy.pac,你可以在浏览器中打开这个 url,下载 pac 文件,使用文本编辑器查看
image_1b6gib1831m411fqi8pqcsfip39.png-98.2kB

下面是 pac 文件的截图
image_1b6ginmmh1l711029jve1lfsdljm.png-275.5kB

我们也可以切换为全局模式,再次查看系统设置中的网络代理,已经变成了 SOCKS 代理,地址为 127.0.0.1:1080

image_1b6gir1571ci69b239818bpuss13.png-88.4kB

小结一下

『自动代理』和『全局代理』两种模式的区别
自动代理:proxy auto-config,简称 PAC,是通过一个脚本文件来定义访问不同的 URL 所采取的代理行为,使用的是 javaScript 的语法,其核心是一个函数:FindProxyForURL(url, host)。

这里需要说明的是,不是任何一个软件都支持 PAC,已知支持这一行为的有chrome、safari、firefox 等浏览器,还有哪些软件支持 PAC,我个人也不太清楚。当开启 PAC 模式,浏览器在访问每个url的时候都会调用ret = FindProxyForURL(url, host)
来判断是否需要走代理。

全局模式:访问任何 URL,都会走代理
这里也需要说明的是:电脑中每个软件的代理行为都是有差异的,在很多软件中,可以找到设置界面,举例如下:
一般都会有三个选择:
1. 无代理服务器(直接连接)
2. 自动检测(我也不明白这个选项的含义)
3. 手动(需要指明服务器的类型,地址和端口,甚至需要用户名和密码)

此处输入图片的描述

全局模式,浏览器也会生效,别的软件就不确定了,以前我一直有误解,以为全局模式和 VPN 一样,所有软件的网络活动都会走代理,其实不是,它的效果就是浏览器访问任何 URL 都会走代理。
别的软件需要设置手动。

最重要的一点是:

无论你选择了哪一种模式,甚至关闭了 Shdowsocks 代理,就像下面一样
image_1b6gmolghb6kl4tlebtk1i881n.png-76.6kB
关闭了 Shadowsocks 而没有退出 Shadowsocks 软件本身,它设置的本地代理(socks5:127.0.0.1:1080)依然是生效的,这是我在看了官方的帮助文档后才明白的。

一言以蔽之

打开 Shadowsocks 客户端软件,就会设置一个本地代理,代理类型为 socks5,地址端口为 127.0.0.1:1080, 如果选择自动代理(PAC)模式,浏览器访问符合 PAC 规则的 URL 才会走代理,否则是直接连接;选择全局模式,浏览器访问任何 URL 都会走代理。两种模式下浏览器都会自动生效,别的软件需要手动设置代理规则。关闭 Shadowsocks 而不退出软件,本地代理依然在运行。

TL;DR 的含义及来由

浏览国外文章的时候,偶尔会发现英文的文章中会出现“TL;DR”的字符,一开始并不理解其中的意思,后来查字典才明白,原来是“Too Long; Don’t Read”的缩写,换成中国话,就是“太长了,读不下去”的意思。

根据字典解释,“TL;DR”发源自网络。一般用于回复别人写得太多,反而让人抓不住重点,现在有的人把它放在一段话的开头,代表“长话短说”的意思。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注