Shadowsocks的客户端
想要用ss技术实现科学上网,在已经通过某种方式,比如:
- 从 shadowsocks.nu 等第三方ss服务商那里购买了ss服务
- 自己搭建了ss服务器
得到了ss的服务器相关信息,比如服务器IP/域名
、端口号
、密码
、加密方式
等信息后,就可以去下载对应平台的客户端,添加对应的ss服务配置信息,就可以使用ss服务了。
下面先解释一下ss客户端的通用的逻辑,再去分别介绍不同的平台下有哪些ss的客户端,以及具体如何使用。
Shadowsocks客户端通用逻辑
下面就来对使用ss技术时所涉及到的客户端的各种通用逻辑来详细解释一下:
ss客户端使用ss服务的配置信息包含哪些
有了ss客户端,想要用ss服务的话,前提是你已经有了对应的ss服务器的配置信息
最最基本的ss服务器的配置信息至少包括:
- 服务器的地址:一般是IP或域名
- 服务器的端口号:
- 加密方式:常见都有
aes-256-cfb
、chacha20-ietf-poly1305
等等 - 密码:
然后把这些配置信息,添加到ss的客户端中,就可以使用ss了。
shadowsocks.to中的各个服务器的实际使用效果
之前从
买到的不论是个人账号还是高级账号,都是多个ss的服务器,典型的有:
- 日本的:jp1,jp2
- 美国的:us1,us2
- 香港的:hk1,hk2,hk3
- 新加坡的:sg1
我这里,基本上主要是江苏电信的网络,我自己的实际使用经验是:
- 最稳定,且速度最好的是:us1和us2
- 稳定性也还可以,速度更快的是:jp1,jp2
- 其他的香港和新加坡的,有时候可用,有时候不可用
所以:
自己常常把ss客户端中的shadowsocks.to的ss服务器设置为us1或us2,偶尔也换jp1试试。
加密方式:aes-256-cfb
和 chacha20-ietf-poly1305
在介绍如何用ss客户端之前,先对于加密方式做个详细的解释,否则会导致下载了客户端,但不支持新的加密方式,而无法使用的问题。
ss技术本身不限制你采用何种加密方式去加密数据。
目前主流的ss服务器端所采用的加密方式,其实更多的还是:aes-256-cfb
而有些ss服务,比如前面提到的shadowsocks.to,现在是采用最新的加密方式:chacha20-ietf-poly1305
对比来说就是:
- 之前旧的加密方式是:
aes-256-cfb
- 最常见,使用的最为广泛
- 所以一般的ss的客户端也都支持
- 比如之前我就用过的:
- Mac的ShadowsocksX
- Android的
影梭
- 比如之前我就用过的:
- 所以一般的ss的客户端也都支持
- 但是不是足够复杂和安全
- 最常见,使用的最为广泛
- 现在新的加密方式是:
chacha20-ietf-poly1305
- 相对来说,更加复杂,但也更安全
- 但是:
- 很多旧版本客户端都不支持
- 换句话说:
- 如果你的ss服务用的是
chacha20-ietf-poly1305
加密方式,但你用的客户端不支持chacha20-ietf-poly1305
(即使支持chacha20-ietf
也不行),那就没法使用ss了
- 如果你的ss服务用的是
- 换句话说:
- 只有一些新版的客户端才支持,包括:
Mac
:macOS shadowsocksX-NG 1.6.1+Windows
:Shadowsocks-Windows 4.0.6+Android
:Shadowsocks Android 4.2.5+iOS
:最新版shadowrocket
或Potatso
/Potatso Lite
- 很多旧版本客户端都不支持
添加ss服务配置信息的方式
对于ss客户端中去添加上述ss服务器的配置信息,有多种方式:
手动(一个一个)添加(ss服务器配置信息)
对于上述的ss服务器的配置信息,可以一个个手动的去输入。
典型的方式是,一个个复制和粘贴对应的ss服务器的地址,端口号,选择对应的加密方式,粘贴密码等等,去手动添加配置信息。
扫(描二维)码(添加单个ss服务器配置信息)
一般的购买到的ss的第三方服务,都提供了二维码,某个二维码是对应ss服务器的配置信息根据一定规则生成的
-> 所以ss客户端如果支持扫码添加的话,即可去扫码,内部自动解析配置,从而自动添加该ss服务器配置信息
和上面的手动的复制和粘贴相比,肯定是通过扫码去添加配置,要方便多了。
批量导入(导入单个json配置文件实现一次性添加多个服务器配置信息)
ss客户端支持的话,可以去利用别人(比如我自己去添加多个服务器配置后,去导出)弄好的配置信息(一般是json文件),然后直接导入配置文件,即可实现批量添加多个ss服务器配置信息了。并且,同时也把其他ss客户端的其他设置信息也添加进来了,更是方便。
和上面的手动或扫码比,批量的导入,当然是更加方便了。
Windows中的Shadowsocks客户端
Windows版ss客户端:Shadowsocks.exe
下载和安装Shadowsocks.exe
Winddows中的ss客户端,有多种,常用的是:
去github官网 :
Releases · shadowsocks/shadowsocks-windows · GitHub
点击下载最新的Windows的客户端:
解压缩下载得到的zip文件后,即可得到exe可执行文件,无需额外安装,双击即可打开使用。
使用Win版Shadowsocks.exe实现科学上网
Win版Shadowsocks的功能,其实和后面要介绍的Mac版ss客户端:ShadowsocksX-NG的用法,基本上是一样的。所以可以具体用法可以参考后面的ShadowsocksX-NG
。
TODO:抽空添加更详细的Windows版Shadowsocks的用法。
Mac中的Shadowsocks客户端
Mac下的Shadowsocks客户端也有不止一个。
用过的有:
ShadowsocksX
- 对应下载地址是:ShadowsocksX-2.6.3.dmg
ShadowsocksX-NG
- 之所以换用ShadowsocksX-NG:
- 后来在shadowsocks.to改用新加密算法
chacha20-ietf-poly1305
后,而ShadowsocksX不支持,所以才换用ShadowsocksX-NG
的。
- 后来在shadowsocks.to改用新加密算法
- 之所以换用ShadowsocksX-NG:
两个版本的功能和使用方式,基本上没太大区别。
下面主要来介绍ShadowsocksX-NG的使用。
Mac版ss客户端:ShadowsocksX-NG
下载和安装ShadowsocksX-NG
从Github中下载:Releases · shadowsocks/ShadowsocksX-NG
解压下载得到的ShadowsocksX-NG.1.7.0.zip
得到app文件:ShadowsocksX-NG.app
把ShadowsocksX-NG.app拖动到应用程序Application文件夹,即可:
运行ShadowsocksX-NG
安装后,从LaunchPad中:
或从 应用程序中也可以找到:
Shadowsocks-NG,点击以启动:
当前Shadowsocks-NG的版本是最新的1.7.0:
ShadowsocksX-NG中添加服务器配置信息
如之前介绍,有三种办法添加ss服务器的配置信息:
- 一次性导入json配置文件
- 可以添加所有的服务器配置
- 通过扫描二维码添加
- 只能一个个添加服务器
- 手动输入服务器的域名,密码,加密方式等信息
- 只能一个个添加服务器
下面分别介绍:
一次性导入json配置文件
可以导入(别人配置好后导出的)json配置文件,可以实现一次性批量导入所有服务器信息
服务器 - xxx
-> 导入服务器配置文件
然后选择(之前别人整理好的,导出的)json配置文件:
稍等,提示导入成功:
即可(一次性批量)导入对应(多个)服务器:
通过扫描二维码添加
前提是已经有了对应的服务器的二维码
对于之前去shadowsocks.to去购买了ss服务后,可以通过后台管理页面中找到对应二维码。
此处去登录shadowsocks.to的后台管理页面,点击二维码:
会弹出二维码:
然后点击ShadowsocksX-NG的菜单
-> 扫描屏幕上的二维码
会自动识别屏幕上(刚才页面中弹出的)二维码,扫描成功后会提示:
如此,每个服务器都点击一下对应二维码,用Shadowsocks-NG去扫码,即可添加对应服务器。
手动输入服务器的域名,密码,加密方式等信息
点击 服务器 - xxx
-> 服务器配置
会弹出设置界面,点击左下角的加号➕,然后填入对应配置信息:
- 地址:[必填]服务器的IP或域名地址
- 对应着shadowsocks.to提供的:
节点服务器地址
- 对应着shadowsocks.to提供的:
- 端口:[必填]端口号
- 对应着shadowsocks.to提供的:
服务端口
- 对应着shadowsocks.to提供的:
- 加密方法:[必填](现在最新的加密方法是)
chacha20-ietf-poly1305
- 对应着shadowsocks.to提供的:
加密方式
- 对应着shadowsocks.to提供的:
- 密码:[必填]密码
- 对应着shadowsocks.to提供的:
登录密码
- 对应着shadowsocks.to提供的:
- 备注:[选填]
- 自己填个自己觉得容易识别的好记的名字
- 比如: hk1
然后点击确定。
用同样方法,一个个的去添加其他的服务器配置。
ShadowsocksX-NG其他使用相关的配置
在添加了ss的服务器之后,接着去介绍如何使用ShadowsocksX-NG客户端。
打开/启用Shadowsocks
先去打开SS的客户端,选择打开Shadowsocks
如此,即可去畅游互联网了,可以去打开本来无法访问的而现在可以访问的,比如:
当然,下面还是可以去根据需要去更改对应的设置的:
选择工作模式
如果不想要看下面的模式的详细解释,那么直接使用默认的PAC自动模式
即可。
关于不同工作模式的解释:
PAC自动模式
- 让Shadowsocks-NG去(根据设置中的GFW List)自动识别在打开网页时,是否需要翻墙
- 推荐:普通小白用户使用此模式
- 比如打开国内的百度,腾讯,网易等网站,不需要翻墙
- 比如打开国外的google,youtube等需要翻墙
- 让Shadowsocks-NG去(根据设置中的GFW List)自动识别在打开网页时,是否需要翻墙
全局模式
- 强制对于所有打开的网页都是用翻墙
- 优点和使用场景:对于部分页面,有些网页用自动模式打不开,则可以尝试全局模式,往往可以打开
- 缺点:如果对于本身无需翻墙的国内网站,比如百度也强制翻墙的话,访问速度可能会降低
- 强制对于所有打开的网页都是用翻墙
手动模式
- 提示:一般人很少用
- 设置为手动模式后,需要自己去
编辑PAC用户自定规则
,添加自己定义的规则,决定哪些页面翻墙,哪些页面不翻墙。
选择用哪个服务器去翻墙
在添加了多个服务器后,可以点击 服务器 - xxx
-> 去选择切换为自己需要的服务器:
即可切换到(自己平时经常使用的,觉得速度和稳定性都不错的)us2的服务器:
设置开机启动
想要每次开机自动启动的话,可以去:偏好设置
勾选上开机启动
把当前所使用的ss服务器信息分享给别人
如果想要把当前你正在使用的ss的服务器的(地址,端口,密码,加密方式等)配置信息分享给别人,则可以:
选择显示当前服务器的二维码
即可显示出当前服务器的二维码:
供其他人使用。
比如:别人用手机中的ss客户端去扫码添加该ss服务器到自己的客户端中。
Android中的Shadowsocks客户端
详细过程见单独帖子
更多细节详见:【记录】安装和使用支持chacha20-ietf-poly1305的Android的shadowsocks客户端 – 在路上
下面把关键步骤整理如下供参考。
下载和安装
两种方式:
- 自己去
github
下载apk
安装包后自己安装- 去Releases · shadowsocks/shadowsocks-android 可以下载到apk,比如:shadowsocks–universal-4.6.5.apk:
- 然后安装到Android手机中即可:
- 从应用市场
Google Play
去搜索并安装
添加配置
打开ss客户端,然后去添加服务器节点的配置,主要是去配置服务器的地址
,端口
,密码
,加密方式
等内容。
对ss的配置不熟悉的可参考通用的逻辑
各种ss的客户端的配置的逻辑都是一样的,如果不清楚可去参考:ss客户端的通用逻辑 · 科学上网相关知识总结
此处点击右上角的加号➕
:
会显示出3种方式:
扫描二维码
:扫描二维码后自动解析并添加配置从剪贴板导入
:一般是从别处拷贝了对应服务器配置的字符串,然后再来此处粘贴。- 自己很少用到此方式
手动设置
:自动手动填写配置信息- 虽然稍微麻烦点,但是最通用
一般来说,推荐扫码
添加,因为很方便
-》 但是下面会解释此处安卓中由于扫码需要Google Play
而导致死循环,而不方便扫码
-》 所以此处推荐手动添加
不过先说说如果要扫码,如何操作:
扫码添加配置
在扫描之前,先要有二维码可以扫,比如之前提到的购买 shadowsocks.nu 的ss服务,购买后去后台配置页面中可以找到二维码。
安卓扫码添加配置需要更新Google Play服务
此处实践发现,安卓端扫码去添加配置:
竟然会出现提示:更新Google Play服务,您必须先更新Google Play服务,然后才能运行shadowsocks
而Google Play服务
本身,却又需要翻墙才能更新,而此处就是要去翻墙,导致死循环了,所以此路暂时不通。
手动添加配置
所以此处为了能正常添加配置,建议用手动设置
的方式去添加ss服务器配置。
点击手动配置
后,填写如下信息:
- ss服务的配置:
配置名称
:可选,比如填写hk1 1.00
,表示节点名和流量费率,方便区分不同节点服务器
:ss服务器的地址远程端口
:ss服务器的端口密码
:ss的密码- 自建ss服务器或者购买的ss服务器,都会提供相关密码给你的
加密方式
:比如最新的:chacha20-ietf-poly1305
- 其他软件的配置
路由
:默认是全局
,建议改为:绕过局域网和中国大陆地址
填写配置后如下:
按照同样方式,去添加其他节点的服务器配置。
开始使用
点击选中
某个服务器节点(左边会有竖向的绿色提示),点击右下角纸飞机按钮
去连接,连接后:
点击已连接,点击测试连接
去测试速度如何:
就表示可以使用了,同时系统通知中也会有VPN和流量的提示:
然后就可以愉快的科学上网了,比如:
去用youtube
看视频:
去用手机浏览器上google
查资料:
iOS中的Shadowsocks客户端
iOS中的Shadowsocks客户端,也有多种。
可以参考Shadowsocks官网中:Shadowsocks – Clients介绍的:
不过想要使用支持最新加密方式chacha20-ietf-poly1305
的客户端的话,目前只有这几个:
iOS的ss客户端:shadowrocket
评分低的Wang Haiyan
的shadowrocket
国内账号的AppleID登录后的国内AppStore可以搜索到
不过貌似看了下,评分只有2.8分,很差啊:
难道不是原版?然后注意到作者是:Wang Haiyan
评分高的Guangming Li
的shadowrocket
而后来去google搜到的是:Guangming Li
的Shadowrocket on the App Store,评分很高:4.6分,估计是才是正版。
用iPhone的相机去扫码页面二维码,打开后,跳转到AppStore中,但是提示:
项目不可用
中国店面目前没有您想要的项目。不过此项目在美国店面提供。点一下”更改店面”查看此项目。
然后点击更改店面
,去看看效果,竟然还真能直接切换AppStore的地区,然后可以搜索到,看起来是正宗的shadowrocket
了:
本来打算去安装试试效果,发现要收费$2.99,所以还是算了。
不过点击后发现,好像没法买Account Not in This Store
:
所以,虽然AppStore可以自动帮你切换地区,但是如果你的苹果账号AppleID不是美国的,还是无法下载此处正宗美国版的shadowrocket。还是需要美国的AppleID才可以下载和安装。
iOS的ss客户端:Potatso
/Potatso Lite
国内账号的AppleID登录后的国内AppStore搜索不到
估计是被国家和谐了,不允许上架到国内的AppStore市场
如何才能从iPhone的AppStore中搜索并下载到Potatso?
网友提供了一些方式,供参考:
- 把AppleID的
国家/地区
设置成加拿大
,支付方式选择none
,设置成其它国家也可以,但是可能需要有当地的信用卡才行。然后下载potatso lite,只有这是免费的,可以不用支付。下载完成后把国家地区设置回来即可。 - 去淘宝买个其他国家appple id,然后再去美国的app store就可以下载了Potatso
- 见过别人用
iPhone
+自己的国外的appleid
,在AppStore上可以搜到potatso,然后就可以下载并安装,然后扫描添加服务器配置后,就可以正常翻墙了
其他平台的Shadowsocks客户端
Chrome App
下载地址:Chrome App
之后就可以购买shadowsocks 服务器:直达地址. 关于购买相关内容请参考shadowsocks 账号 购买