博客

Shadowsocks:这是什么,它是如何工作的,与VPN的比较

  • Feb 9, 2024, 10:00 AM
  • 1 分钟

在移动代理字段中,我们介绍了关于该协议的机制、优缺点,并同时将其与VPN进行了比较。

什么是Shadowsocks

Shadowsocks 是一种免费的工具,适用于那些希望通过一种简单但不常见的方式来绕过封锁的人们。它是一种具有数据加密功能的网络协议。它还可帮助保护流量和个人数据。它基于SOCKS5技术,源代码托管在GitHub上。

该项目于2012年开始。一个名为Clowwindy的中国开发者在GitHub上发布了最初的Shadowsocks研究成果。在GitHub上。该协议帮助用户绕过了中国伟大的“金盾”网络防火墙的限制。在从GitHub中删除后,该项目引起了媒体的关注。记者推测删除和GitHub遭受的攻击有关,这次攻击发生在几天后。

Clowwindy于2015年根据中国执法机构的要求停止了开发。从那时起,Shadowsocks由社区继续发展。


Freedom House网站上的地图清楚地显示了Shadowsocks在哪些国家是必需的。

Shadowsocks用于类似于VPN的任务:

  • 绕过封锁。协议用于访问被国家、提供商和运营商封锁的资源。
  • 保护个人数据。更难以访问流量和个人数据。
  • 在不安全的地方进行安全连接(例如免费Wi-Fi)。

工作原理

在标准网络连接中,用户直接通过他们的提供者访问互联网。例如,如果用户想访问特定网站,他们首先连接到提供者的路由器,然后再连接到网站本身。如果国家想要封锁该网站,他们会要求提供者禁止访问该网站的IP地址。

为了绕过这种限制,人们使用代理。在这种情况下,提供者和网站之间建立了一个“中间人” - 代理服务器。连接仍然通过提供者进行,但是提供者只知道请求是发送到代理。因此,对网站的连接没有限制,并且流量返回到用户设备。但是存在一些问题,例如:

  • 网站和提供者可以发现您正在使用绕过工具。
  • 连接未加密。虽然您可以使用具有加密功能或经常加密流量的代理,但通常情况下,VPN会加密流量。

Shadowsocks用于解决这些问题。它对数据进行加密,并将其伪装成常规HTML流量。该协议基于SOCKS5,关于它在我们的博客中有一篇文章。它通过AEAD算法帮助保护连接。

AEAD使用与SSH隧道相同的原理,只是在AEAD中加密的数据还包括关于源和目标的信息。这增加了对恶意用户的保护。即使他拦截了消息,也无法篡改数据传输。

通常来说,根据在Stack Exchange上的讨论,AEAD密码被认为不那么安全。但对于可靠的连接和数据保护来说,它们是足够的。

Shadowsocks的工作原理:SS程序内部将其作为常规SOCKS5进行处理,但其IP地址为127.0.0.1。这样的IP地址被称为本地主机,连接是本地的。也就是说,任何程序,例如浏览器,都连接到与其所在设备相同的设备上运行的Shadowsocks。然后,在本地Shadowsocks组件和服务器之间建立连接,在这种组合中流量已加密。

您可以将其他应用程序连接到Shadowsocks,并且代理只对所选应用程序起作用。如果其中某个应用程序不支持代理,则可以使用例如Proxifier


要安装和配置Shadowsocks,需要对连接有一定的了解。首先,您需要:

  • 购买和设置在所需内容未被封锁的国家的VPS服务器,或使用现成的代理服务器,可以在Shadowsocks代理网站上找到它们。
  • 客户端和服务器。有谷歌播放商店上的移动应用程序,有Windows的程序可以从此处下载,也有适用于Linux的程序。


然后只需安装和启动客户端,然后配置与服务器的连接:添加服务器的IP地址、端口、密码和加密方法。

Shadowsocks提供三种连接模式。

  1. 直接连接模式不会通过代理服务器转发流量。预设的某些应用程序设置可在此模式下运行。
  2. PAC模式:在访问被封锁的网站时,流量将通过代理服务器。
  3. 全局模式:所有流量都将通过代理服务器转发。

Shadowsocks能够仿真HTTPS与远程服务器的连接。这对于隐藏流量非常重要。这样提供者就无法知道用户在查看什么内容,以及他们绕过了封锁。可以在服务器上安装简单模糊化流量的插件simple-obfs来实现这一点。

模糊化是一种混淆和混淆流量的技术。使用它可以保护数据免受检测:提供者无法知道您正在使用Shadowsocks。通常,这可以通过加密代码、将变量重命名为无意义的名称、添加多余代码或使用类似Cloak、Stunnel、OpenVPN Scramble等的解决方案来完成。

中国人通过被动分析流量和主动“嗅探”来跟踪Shadowsocks的工作,并封锁连接,尽管它使用了模糊技术。首先,防火墙会搜索可能的Shadowsocks连接;然后,在第二阶段,它以自己的IP地址连接到这些连接所涉及的服务器上,就像它是Shadowsocks客户端一样,并监视服务器的响应。

您可以在GitHub上阅读有关此问题解决方案的详细信息和机制,但不管怎样,Shadowsocks的效果仍然优于VPN。

优点

1)选择性流量混淆。可以指定哪些流量通过提供者发送,哪些通过Shadowsocks发送。这有助于同时绕过封锁和访问某些服务。

例如:像Instagram这样的网站和政府在线服务的同时运行。前者可能对您的国家不可用,而后者仅适用于本地IP地址。如果使用VPN,您可以访问Instagram,但无法使用本地服务。然而,一些VPN支持分隔的隧道。通过Shadowsocks可以解决此问题:可以隐藏Instagram的流量并同时使用其他服务。

2)抵御DPI。DPI是一种检查流量以跟踪特定应用程序工作的技术。几乎不可能追踪和封锁Shadowsocks,因为它模拟了常规的HTTPS连接。因此,提供者无法检测到用户的“非常规”行为。

3)可靠性。即使连接中断,Shadowsocks也不会消失,只要将连接配置为仅通过Shadowsocks进行。当与VPN服务器失去连接时,流量将直接发送,提供者将看到所有信息。“杀掉开关”在一定程度上解决了这个问题:紧急按钮断开与互联网的连接。但有时它不起作用,或者根本没有。

4)良好的吞吐量。如果正确配置,Shadowsocks的工作速度比其他加密方法(例如SSH隧道)更快。大致的速度损失不会超过3-5%。

5)通用性。适用于任何操作系统的客户端程序 - Windows,MacOS,Linux(不同的发行版),Android和iOS。

6)加密时降低计算负担。从客户端的角度来看 - 节省电池电量(对于移动设备来说非常重要),从服务器的角度来看 - 为Shadowsocks节省了VPS / VDS主机上的费用。

7)成本节约。Shadowsocks非常适合最便宜的VPS服务器。最理想的情况是,托管服务提供者可以提供使用VPS / VDS而不限制流量的服务。这比付费VPN服务要划算得多。您还可以使用其他人的代理,但是像WannaFlix、12VPN之类的选择要比自己的服务器要贵得多,每月约10美元。

比较一下:您可以租用一个具有5 GB内存、0.5 GB RAM和无限流量的VPS服务器,价格为0.87美元/。这对于Shadowsocks来说足够了。而最便宜的VPN服务通常需要约2美元/月,即两倍的价格,并且需要提前支付2至3年的订阅费用。我们不考虑免费VPN - 它们传输数据、限制速度和流量。

缺点

1)使用复杂性。您需要了解计算机和连接的工作原理,但配置仅需要5行。VPN要简单得多。

2)连接速度下降的风险。根据使用的混淆器的不同,Shadowsocks可能会显著降低互联网速度。

3)使用限制。Shadowsocks可以尝试更改Netflix地区,但这种方案的持续时间不会很长:该服务跟踪各种绕过系统。这对于种子文件也不是一个明智的解决方案:如果您租用服务器,可以轻松追踪您的名称和账单,然后指责您侵犯版权。

4)可用性有限。尽管Shadowsocks非常受欢迎,但在某些地区很难购买或连接到可靠的VPS服务器。

5)没有官方审计。许多专家研究了Shadowsocks开源代码。但它没有经过官方审核,而与OpenVPN不同。官方审计可能由OSTIF(开源技术改进基金)进行,该基金的目的正是加强此类项目的安全性。但是,Shadowsocks的代码相当简单 - 这增加了伪造软件包的风险。

VPN与Shadowsocks

VPN和Shadowsocks是两种不同的工具。前者是虚拟私人网络,而后者是代理协议。从技术上讲,它们都:

  • 加密流量
  • 帮助绕过封锁

但是Shadowsocks提供的加密较为简单,并且无法实现匿名上网。该项目最初的开发不是为了提供安全性,而是为了绕过中国的防火墙。但是,在ShadowsocksR中部分修复了这个问题,我们将在文章末尾进行介绍。VPN通常使用复杂的AES-256算法。

此外,VPN服务通常具有许多其他功能。例如KillSwitch。 VPN是一种“隧道”,因此如果它停止工作,流量将直接发送。在这种情况下,真实IP地址很容易暴露。KillSwitch可以防止这种情况发生:如果无法访问VPN服务器,它会立即切断对互联网的连接。

最后,VPN具有庞大的服务器网络。可以从不同的国家连接到互联网-每次都会更改IP地址以匹配所选服务器的国家。

结论:VPN更方便、更安全和更简单。如果您能访问VPN并且它可以完成任务,请使用它。如果遇到困难,那么Shadowsocks应该解决问题:在阻止VPN并且难以绕过限制的国家中,它更好。它的数据类似于HTTPS流量,不会引起怀疑。使用多个TCP连接有助于实现更高的速度。对于简单的封锁绕道,他更实惠。

Shadowsocks vs VPN


Shadowsocks
VPN
加密
加密的强度较低,与大多数VPN相比
仅在您的设备和服务器之间更可靠的加密
内容访问
绕过了互联网审查并打开了对被封锁内容的访问
也可以绕过审查,但更容易发现使用
工作速度
通过更少的加密和更短的路径到最终目的地而更快
由于加密和到VPN服务器的额外距离而更慢
配置复杂性
对于常规用户而言,设置和使用上更复杂
相对容易设置和使用
成本
低成本或甚至免费的选择
更贵,尤其是对于高质量的服务
适用于
用于绕过复杂的防火墙,例如中国,并访问被封锁的内容
适用于关心隐私和访问被封锁内容的人

SSR(ShadowsocksR)

现在,Shadowsocks有了社区和自己的网站。因此,有经验的用户可以基于它构建自己的解决方案。例如,在2015年Shadowsocks关闭后,另一位名为breakwa11的开发人员声称很容易检测到SS。他基于Shadowsocks创建了支持数据混淆的ShadowsocksR。因此,ShadowsocksR是原始协议的一个分支,使用Python编写,并支持流量混淆。

但是用户更经常建议使用基于Rust的最新版本Shadowsocks-Rust

结论

Shadowsocks是一种价格实惠、方便的绕过封锁的工具。对于保护连接也可能有用。当然,它提供的功能比VPN服务少,但速度稍快。但对于解决简单的问题-例如恢复对被封网站的访问,它是最佳选择。使用和配置都很简单:在网络上有很多说明可以帮助您完成。

尝试我们的移动代理

在 OnlineProxy 中,您将找到来自世界各地的移动代理,每日资费从 0.7 $ 起,并且 IP 轮换。代理非常适合工作任务。我们保证质量,否则退款。

登记