Shadowsocks翻墙原理以及分享免费的账号(长期更新)


本文最后更新于:2020年5月20日14:11:29

免费的SS/SSR节点已分享在文章最底部,如果免费的线路太慢或不稳定可以看一下最后的广告。


介绍长城防火墙(GFW)

众所周知,中国境内通过 GFW 隔离了大多数人与外界的正常交流,本文暂且不讨论背后的动机。当然,这个隔离并非完全隔离,而是选择性的,相关管理人员不希望你访问的网站就直接阻断(404)。每一个网络请求都是具有数据特征的,不同的协议则具备不同的数据特征,比如 HTTP/HTTPS 这类请求,会很明确地告诉 GFW 它们要请求访问哪个域名。再比如 TCP 请求,它只会告诉 GFW 它们要请求访问的IP地址。

通常而言,GFW 的封锁包含多种方式,最容易操作也是最基础的方式便是域名黑白名单(DNS污染),在黑名单内的域名不让通过,通常会返回404代码。IP 黑白名单自然也是这个道理,通过对TCP请求的分析查看该IP是否存在与GFW黑名单中,如果条件为真则无限重置该连接。如果你有一台国外服务器,且该服务器IP不在 GFW 的黑名单内,那么境内的主机就可以跟这一台机器进行正常通讯。这么一来,一个绕过长城防火墙的方案就出来了:境内主机与境外主机进行通讯,境内主机想访问什么网站,就告诉境外的主机,让境外机器代理抓取,然后对数据包进行转发,我们要做的就是保证境内主机与境外主机的通讯时不被 GFW 怀疑和窃听。

SSH Tunnel 是比较具有代表性的防窃听通讯隧道,通过 ssh 与境外服务器建立一条加密通道,此时的通讯 GFW 会将其视作普通的连接。由于大家都这么玩,GFW 着急了,于是它通过各种流量特征分析,渐渐的能够识别哪些连接是 ssh 隧道,并尝试性的对隧道做干扰,结果还是玩不过 GFW,众多隧道纷纷不通。

相关资料:


Shadowsocks 基本原理

如果你理解了上面长城防火墙的原理,那 Shadowsocks 的原理就可以用一句简单的描述来理解了:

安装Shadowsocks客户端程序的电脑利用软件发出经加密过的的 TCP 数据包,因为经过一系列算法的加密,所以GFW无法通过解包来识别流量的具体内容,当GFW 分析不出来时,便把你发送的数据当作普通流量放行了。

具体而言,Shadowsocks 将原来 ssh 创建的 Socks5 协议拆开成 Server 端和 Client 端,两个端分别安装在境外服务器和境内设备上。

+------+     +------+     +=====+     +------+     +-------------+
| 设备  | <-> |Client| <-> | GFW | <-> |Server| <-> | 网站服务器 |
+------+     +------+     +=====+     +------+     +-------------+

为防止流量被识别和拦截,服务器和客户端软件会要求提供密码和加密方式,并且在数据传输期间会对传入和传出流量进行加密。

总体而言,Shadowsocks的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。例如,中国境内的用户无法直接访问Google,但处在境外的代理服务器可以访问,如果用户可以直接连接代理服务器,那么用户就可以通过特定软件连接代理服务器,然后由代理服务器获取网站内容并回传到用户,从而实现代理上网的效果。另外用户在成功连接到服务器后,客户端会在本机构建一个本地Socks5代理(或VPN、透明代理等)。浏览网络时,网络流量需要先通过本地代理传递到客户端软件,然后才能发送到服务器端,反之亦然。

特点

Shadowsocks使用自行设计的协议进行加密通信。加密算法有AESBlowfishIDEARC4等,除创建TCP连接外无需握手,每次请求只转发一个连接,无需保持“一直连线”的状态,因此在移动设备上相对较为省电。经过代理的所有流量都经过算法加密,且允许用户自行选择算法类型。Shadowsocks通过异步I/O事件驱动程序运行,响应速度快。

客户端覆盖多个主流操作系统和平台,包括Windows、macOS、Android、Linux和iOS系统和路由器(OpenWrt)等......

安全性:

Shadowsocks的最初设计目的只是为了绕过GFW,而不是提供密码学意义的安全,所以Shadowsocks自行设计的加密协议对双方的身份验证仅限于预共享密钥,亦无完全前向保密,也未曾有安全专家公开分析或评估协议及其实现。如果是在监听类型的国家内想更加安全的上网,基本上Shadowsocks功能不够完善,应该使用隐密性更高的工具。

Shadowsocks本质上只是设置了密码的网络代理协议,不能替代TLS或者VPN,不能用作匿名通信方案,该协议的目标不在于提供完整的通信安全机制,主要是为了协助上网用户在严苛的网络环境中突破封锁。不过,在匿名通信能够被识别或封锁的情况下,也可将Shadowsocks与其他匿名方案配合使用,同时满足突破封锁和匿名的需求。

提高安全性

Shadowsocks在SIP003提案中支持了插件系统,插件系统允许Shadowsocks代理的流量可以通过不同的插件进行二次混淆加密。当前使用较多的插件有simple-obfsv2ray-plugin。通过插件对Shadowsocks进行流量混淆后,通常可以降低被GFW识别出来的几率,从而达到更稳定地突破网络封锁的目的。

相关资料:


如何在各平台使用 Shadowsocks

Windows端

首先我们去GitHub上下载最新的Shadowsocks客户端

链接:GitHub

备用链接:Shadowsocks 下载密码:1234 //上传时间:2020年5月11日

附件:obfs协议插件 下载密码:1234 //上传时间:2020年5月11日

下载后请检查文件hash值,以确保文件没有被篡改。

我们将下载的客户端文件进行解压并运行。

在UI界面依次输入:服务器地址--服务器端口--密码--加密方式--插件(可选)

便携模式:如果勾选便携模式,Shadowsocks会把临时文件之类的写在程序所在目录,方便跑路

主界面

保存服务器后,我们可以在任务栏找到Shadowsocks图标右键设置代理方式,选择已保存的服务器列表。

我们也可以通过二维码以及URl的方式来添加服务器配置,不过实际测试二维码及URL功能不能正常使用。

开启代理

若要开启代理可以选择PAC模式以及全局模式,反正要停止代理则使用禁用选项。

右键图标以选择代理模式

备注

PAC模式:国内网站依旧走本地网络,速度快,绝大部分国外网站都走代理,速度快。

全局模式:所有网站都走代理,访问国内网站速度变慢。


500 Internal Privoxy Error 解决方案

500 Internal Privoxy Error:

如图所示

如果你开启代理后遇到HTTP 500错误,请按照以下步骤依次在CMD执行:

#请使用管理员权限依次执行然后重启系统
netsh interface ipv4 reset
netsh interface ipv6 reset
netsh winsock reset

iOS端

首先去APP Store下载Shadowrocket客户端

一定要非中国区的账号才能下载,美国区售价为2.99$。

我这里分享几个已购买账号,不想花钱的朋友直接登录下载就可以了:

免费分享账号1:[email protected] 密码:Appledi456 切记勿登录iCloud

免费分享账号2:[email protected] 密码:Appledi321 切记勿登录iCloud

免费分享账号3:[email protected] 密码:V2net123 已购买小火箭Shadowrocket,切记勿登录iCloud

Note:如果账号失效请联系我,我给你单独提供App Store账号。


第一种方法扫描二维码

选择左上角的图标扫描二维码即可自动完成配置(这个方法适合懒人,不过首先你得有节点的二维码。)

如果你只有URL,我们也可以利用URL来转换为二维码,请看下方iOS附录。

第二种是手动添加配置(点击右上角加号)

首先选择节点类型:

选择Shadowsocks,当然这个APP也支持其他的类型,本文只讨论SS。

本文将使用Shadowsocks来做示例

然后请填入相应的:

  • 服务器地址(比如:1234.123.12.1 或者 ss1.example.com
  • 服务器端口(在你购买节点的网站上可以找到)
  • 密码(在你购买节点的网站上可以找到)
  • 加密算法(在你购买节点的网站上可以找到)
  • 插件(可选)(如没有特殊标注留空即可)

如果有任何疑问请参见本文章WindowsAndroid的配置图文。

完成配置后即可返回进行连接。

最后

如果你有多个节点,强烈建议在全局路由把启用回滚打开,这样当节点不可用的时候会自动帮你切换节点。

全局路由选择默认配置或选择代理

Android

首先下载客户端

GitHub:shadowsocks-android

备用下载(请根据你的系统选择相应版本):

下载地址:Android全版本安装包

注意:因为安卓有很多不同版本的客户端,请务必选择与你系统对应的版本,否则可能出现即使你安装上了,完成配置后也无法帮你代理的现象。如果出现了这种情况请更换一个安装包,卸载之前安装的版本并重新进行配置。(要有耐心 -_-

使用二维码添加配置

扫二维码即可,很简单这里就不多赘述了,下面看重点。

安卓扫码添加配置需要更新Google Play服务,但在中国境内购买的安卓手机默认是不带有这项服务的,而Google Play服务本身,却又需要翻墙才能更新,而此处就是要去翻墙,导致死循环了,所以此路暂时不通,我们进行手动配置

如果没有Google Play服务,请手动配置服务器(选择最下面的选项)

手动进行添加配置

所以此处为了能正常添加配置,建议用手动设置的方式去添加ss服务器配置。

点击手动配置后,填写如下信息(跟iOS端配置方法一样):

  • ss服务的配置:
    • 配置名称:为你的节点起个名字,方便区分不同节点
    • 服务器:ss服务器的地址(IP或域名)
    • 远程端口:ss服务器的端口
    • 密码:ss服务器的密码
      • 自建ss服务器或者购买的ss服务器,都会提供相关密码给你的
    • 加密方式:选择你的SS服务器对应的加密方式
请选择与你SS服务器对应的加密方式。

其他配置:

  • 路由:默认是全局,建议改为:绕过局域网和中国大陆地址
代理方式不强制要求,按照个人喜好设置即可。

完成配置如下图:

按照同样方式,去添加其他节点的服务器配置。

开始使用

点击选中某个服务器节点(左边会有竖向的绿色提示),点击右下角纸飞机按钮去连接,连接后:

最新版本的APP界面可能有所不同

文章附录

Link:SS/SSR二维码生成器

#代码示例
SS/SSR:
ssr://MTk0LjUuNzguMTkxOjMzODg6b3JpZ2luOnJjNDpwbGFpbjpiRzVqYmk1dmNtY2dPR1YwLz9vYmZzcGFyYW09JnJlbWFya3M9NUwtRTZMLWM1TGljUVEmZ3JvdXA9VEc1amJpNXZjbWM
V2Ray:
vmess://eyJwcyI6IltmcmVlLXNzLnNpdGVdd3d3Lmtlcm5lbHMuYmlkIiwiYWRkIjoid3d3Lmtlcm5lbHMuYmlkIiwicG9ydCI6IjQ0MyIsImlkIjoiYzM1Y2JjYzItNzI2MS0wNTljLThiYjYtYjczYzVkZDg1NTcxIiwiYWlkIjoiMCIsIm5ldCI6IndzIiwidHlwZSI6Im5vbmUiLCJob3N0IjoiL3dzIiwidGxzIjoidGxzIn0=

分享免费的SS/SSR账号


最后给自己打个小广告

出售稳定ShadowSocks:
搬瓦工服务器,多条线路,包括最快的CN2 GIA线路,最大的优势是保证IP不被墙。
如果IP被墙,服务器会自动更换新的可用IP给用户。
对于需要翻墙看看YouTube、ins或者谷歌以及谷歌学术的朋友是一个非常合适的选择。
同时速度很快,十分稳定,价格15元一个月,感兴趣的朋友可以联系我。

2020年5月20日公告:新增多个备用节点

已购买的朋友请在这里下载最新的配置文件:

下载地址:配置文件 解压密码:请找我私聊


如有任何疑问,请联系我

微信:Skater-Tan

邮箱: [email protected]

科学上网微信群

  • 分享:
评论
还没有评论
    发表评论 说点什么