Repository navigation
Guide zh
Shroudly 是一款免费、开源的应用,适用于 Windows、macOS、Linux 和 Android,可以打开被网络审查封锁的网站和应用。它不是 VPN 服务:没有任何数据经过中间服务器,不需要账号,也没有任何需要配置的东西。关闭它之后,你的电脑或手机会和原来完全一样。
大多数网络过滤系统通过读取每个连接的第一个数据包来决定封锁什么。这个数据包里带有你要打开的网站名称(TLS 的“SNI”或 HTTP 的“Host”)。Shroudly 在你自己的电脑上运行一个小型代理,以过滤系统无法识别的形式发送这个首个数据包,而真正的网站收到的内容丝毫不变。许多过滤系统还会用虚假地址回应域名查询(DNS);Shroudly 通过加密 DNS 查询域名,这些虚假应答就不会再传到你这里。
- 你的流量仍然直接发往真正的网站。数据不经过任何其他人的服务器,所以速度不受影响。
- 它会自己找出有效的方法。对于每个被封锁的网站,Shroudly 会逐一尝试各种方法,使用有效的那一种并记住它。
- 它会自己解决能解决的问题。当 Shroudly 发现是什么在阻碍连接时(Discord 或 Roblox 在你的网络上被封锁、某个程序没有经过它而卡住、某个网站需要高级模式),它会开启所需的功能,并用一行文字告诉你。你不需要去设置里找任何东西。
- 未被封锁的连接会原样放行,不做任何改动。
- 它不会留下任何永久性更改。保护开启期间,Shroudly 会把系统代理指向自己;当你停止保护、退出程序、注销,甚至它意外崩溃时,原来的设置都会恢复。
- 在 Android 上,所有应用都经过它。在手机上,Shroudly 使用 Android 的 VPN 功能,但只在手机内部运行:浏览器、Discord(包括语音通话)、Roblox 和其他游戏都经过同一个引擎,不需要开启任何模式,中间也没有服务器。
- 它不会隐藏你的 IP 地址。Shroudly 不是 VPN。如果某项服务出于自身规定或制裁,自行拒绝来自你所在国家的用户,那么它仍然会拒绝你。当网站本身拒绝你时,Shroudly 会告诉你,免得你一直白白尝试。
- 它无法访问被直接封锁的地址。如果网络封锁的是网站的 IP 地址本身,而不是它的名称,那么只有 VPN 或类似的隧道才能连通。如果网络封锁的是某个应用的服务器地址本身,而不只是识别出它的流量,Shroudly 会用一行文字说明;由于 Shroudly 不是 VPN,这时的办法是使用该应用自己的代理设置或 VPN。
以下链接始终会下载最新版本:
| 系统 | Intel / AMD (x64) | ARM |
|---|---|---|
| Windows 10 或更高版本 | 安装程序 (.exe) | 安装程序 (.exe) |
| macOS 12 或更高版本 | Intel Mac (.dmg) | Apple Silicon (.dmg) |
| Debian / Ubuntu / Mint | .deb | AppImage |
| Arch / Manjaro | .pacman | AppImage |
| Fedora / openSUSE / RHEL | .rpm | AppImage |
| 任何 Linux | AppImage | AppImage |
| Android 8 或更高版本 | APK | APK |
- Windows:运行安装程序。首次运行时,如果 Windows 显示“Windows 已保护你的电脑”,请选择更多信息 → 仍要运行。
-
macOS:打开
.dmg,把 Shroudly 拖进“应用程序”文件夹。首次打开时,如果 macOS 不让打开,先尝试打开一次,然后前往系统设置 → 隐私与安全性,选择仍要打开。 -
Debian / Ubuntu:
sudo apt install ./Shroudly-*-Linux-amd64.deb -
Arch:
sudo pacman -U Shroudly-*-Linux-x64.pacman -
Fedora / RHEL:
sudo dnf install ./Shroudly-*-Linux-x86_64.rpm -
openSUSE:
sudo zypper install ./Shroudly-*-Linux-x86_64.rpm -
AppImage:
chmod +x Shroudly-*.AppImage,然后运行它。 - Android:请看下面的 Android 一节。
Windows 和 macOS 上的这些首次安装步骤只需要做一次。各版本如何签名,请见代码签名政策。
Linux 需要 glibc 2.28 或更高版本(Debian 10、Ubuntu 18.04、Fedora 29 或更新版本)。除高级模式外,无需管理员权限。
更新会自动安装。Shroudly 会在启动时以及每隔半小时检查一次新版本,在后台下载,并在下次重新启动时安装。如果有游戏或 Discord 通话正在经由 Shroudly 进行,它会等到它们都关闭后再安装。
Android 版 Shroudly 需要 Android 8 或更高版本,无需 root。一个约 1 MB 的 APK 适用于所有手机和平板(ARM 64 位、ARM 32 位和 x86_64)。它目前还没有上架 Google Play:这个链接始终提供最新的 APK。
- 在手机上打开链接,然后打开下载好的
Shroudly-…-Android.apk。 - 首次安装时,Android 会请你允许从此来源(你的浏览器)安装应用。允许一次,返回后点击安装。
- 打开 Shroudly,点击大大的启动保护按钮。
- Android 会询问是否允许 Shroudly 设置 VPN 连接。请允许:这是 Android 允许一个应用转发其他应用连接的唯一方式。这个 VPN 只在手机内部运行,没有任何数据经过服务器。
- 所有应用都经过 Shroudly:浏览器、Discord(包括语音通话)、Roblox 和其他游戏。没有单独的模式;使用与电脑上相同的自动方法和加密 DNS,应用自己发出的未加密 DNS 查询也会被加密。
- 快捷设置图块:把 Shroudly 图块添加到从屏幕顶部下拉的面板中,不用打开应用就能开启和关闭保护。长按图块即可打开 Shroudly。设置 → 快捷设置图块 可替你添加(Android 13 及更高版本一键完成)。
- 始终开启的 VPN:在 Android 的 VPN 设置中打开 Shroudly,开启“始终开启的 VPN”;这样手机重启后保护会自动恢复。
- 设置(关于 → 设置):强调色、绕过策略(默认自动)、绕过 Shroudly 的应用(它们的流量直接出去,例如不需要 Shroudly 的游戏)以及 手机开机时启动。其中的 语言 用于设置应用语言:跟随手机,或 Shroudly 31 种语言中的任意一种。
-
仅代理(设置 → 模式):Shroudly 不作为 VPN,而是在
127.0.0.1:10808作为代理运行(SOCKS5 和 HTTP),这样另一个 VPN 应用可以保持连接。只有设置为使用它的应用才经过 Shroudly:把 Wi-Fi 网络的代理设为手动,主机127.0.0.1,端口10808,或使用应用自己的代理设置。不会请求 VPN 权限。 -
允许自动化应用(设置,默认关闭):Tasker、MacroDroid 等应用可以开关保护,例如在打开游戏时开启、关闭游戏时关闭。它们向软件包
me.codeshare.shroudly发送广播,操作为me.codeshare.shroudly.action.START,STOP或TOGGLE。如果 Android 不允许保护从后台启动,点按一次通知即可开启;将 Shroudly 的电池使用设为不受限制后,无需点按即可启动。 - 保护停止时会告诉你:如果其他 VPN 应用或 Android 关闭了它,或者因错误而停止,会有通知告诉你,让你知道应用正在直接连接。
-
更新:有新版本时,应用会告诉你。点击下载更新,打开下载的文件并确认。每个 APK 都使用项目自己的密钥签名,所以更新会直接覆盖安装旧版本。证书的 SHA-256 为
23:AC:01:4B:72:26:34:3B:74:C7:C9:C0:A4:FD:6F:1D:ED:97:51:8A:3B:FD:35:BC:DE:65:B6:C1:EC:A8:BD:76。 - 在 Android 上做不到的事:没有高级模式(那需要 root)。Android 同一时间只允许一个 VPN,所以 Shroudly 不能和其他 VPN 应用同时开启。选择 仅代理(见上文)时,Shroudly 会把 VPN 留给另一个应用。
- 打开 Shroudly,点击启动保护。
- 打开之前被封锁的网站。第一次时,Shroudly 可能需要一点时间来找到你的网络所需的方法;之后,网站会立即打开。
- 如果 Shroudly 显示一行简短的文字,说它开启或重启了某样东西,那就是解决办法:无需再做任何事。
- 要停止时,点击停止保护。一切都会恢复原样。
关闭窗口后,Shroudly 会继续在后台运行,并在通知区域(macOS 上为菜单栏)显示图标。它会记住你是否让保护保持开启,因此重启后会恢复到相同的状态。登录时启动会让它随电脑一起启动。
- 语言:应用默认跟随系统语言,也可以在这里更改。
- 自动模式:自动为每个被封锁的网站找到有效的方法。请保持开启。绕过策略是最先尝试的方法,一般很少需要更改。最后一种策略 关闭(仅加密 DNS) 让每个连接保持应用发送时的原样,只加密 DNS。
- DNS 防污染:通过加密 DNS 查询域名,网络返回的虚假应答就不会传到你这里。请保持开启。
- DNS 服务器: 自动 使用 Shroudly 的加密 DNS。要使用自己的服务器,请选择类型(DNS over HTTPS、DNS over TLS、DNS over TCP 或普通 DNS),输入地址并点 使用:Shroudly 会先询问一次并显示结果。在网络拦截或伪造 UDP 53 端口的地方,DNS over TCP 很有用。如果你的服务器不再应答,在它恢复之前由 Shroudly 的加密 DNS 应答。Android 上在 关于 → 设置 中。勾选 仅使用此服务器 后,绝不会询问其他服务器:如果你的服务器不响应,域名解析会失败,直到它响应(用于测试服务器,或不希望其他任何人看到你的查询时)。
- 路由:选择所有网站(推荐),所有网站都会经过 Shroudly,被封锁的网站无需事先指定就能打开;未被封锁的网站会原样放行。选择仅列表中的网站,则只有列表中的网站会经过 Shroudly;该列表会自动保持更新,你也可以自己编写列表。
- Discord 应用(Windows、macOS):Discord 应用在打开前会检查更新,而这项检查会忽略系统代理,所以在受过滤的网络上,Discord 可能会一直停在“正在检查更新”。此设置会在 Discord 的设置文件中添加一行,让 Discord 经过 Shroudly;关闭此设置会删除这一行。当 Discord 在你的网络上被封锁时,Shroudly 会自动开启此设置,并重启卡住的 Discord;已经能正常使用的 Discord 则不会被改动。
-
游戏和应用(Roblox)(Windows、macOS):有些程序会忽略系统代理,但会遵循
HTTPS_PROXY设置,Roblox、Roblox Studio 以及它们的安装程序就是这样。此设置会让这些程序经过 Shroudly。当 Roblox 在你的网络上被封锁时,Shroudly 会自动开启此设置;如果 Roblox 客户端或安装程序是在没有经过它的情况下打开的,它会让其经由自己重新启动。Shroudly 绝不会关闭 Roblox Studio,因为里面可能有未保存的工作:如果 Shroudly 提示你,请保存工作,关闭 Studio 后再重新打开。 - 游戏和应用(Roblox) 开启期间,Roblox 的链接(网站上启动游戏或 Roblox Studio 的按钮,也包括通过 Bloxstrap 等启动器的)会经由 Shroudly 打开对应程序,因此从网站打开的 Roblox Studio 也经过 Shroudly;在 Windows 上,关闭该模式、退出或卸载 Shroudly 时,这些链接会恢复原样。从不读取系统代理的程序,例如机器人和命令行工具(包括用 Node.js 写的),在此模式下也经过 Shroudly:请重启已经打开的那些。在伪造 DNS 应答的网络上,Shroudly 会自动开启此模式。
- 在 Windows 上,游戏和应用模式为程序做的设置只在当前的 Windows 会话中有效:注销或重启后就会消失,因此不会残留在共用电脑(网吧、教室)或磁盘镜像中。
- 高级模式(Windows x64、Linux):适用于会跟踪整个连接、而不仅仅是查看连接开头的网络。它直接作用于数据包本身,因此也能覆盖那些忽略所有代理设置的程序。当某个网站需要它时,Shroudly 会先告诉你原因,然后自动开启它;电脑请求管理员权限时,请允许。关闭它或退出程序时,它会撤销所做的一切。
- 高级模式不会触碰你的局域网(路由器、打印机、附近的其他电脑)。当游戏的反作弊程序(Vanguard、Easy Anti-Cheat、BattlEye、FACEIT 等)正在运行时,Shroudly 不会自动开启它;你仍然可以手动开启。反作弊只在其游戏正在运行时才算数:没有打开游戏时仍在后台运行的反作弊服务(例如 Riot Vanguard 的)不会妨碍 Shroudly 开启此模式。
- 你亲手关闭的开关会保持关闭两周;两周之后,如果同样的问题再次出现,Shroudly 可能会重新开启它。
- 测试网站:输入网站地址;Shroudly 会对它逐一尝试所有方法,并告诉你是什么在封锁它、哪种方法有效,或者是网站本身拒绝了你。
- 自动安装更新、显示通知、将我计入在线人数(匿名统计正在运行的 Shroudly 数量;见“隐私”一节)、最小化到托盘和在通知区域显示图标:图标隐藏时,再次启动 Shroudly 即可打开它的窗口。
- 拦截广告和跟踪器(默认关闭;Android 上在 关于 中):公开的广告和跟踪器列表(StevenBlack/hosts)中的名称,在每个经过 Shroudly 的应用中都得不到应答。列表通过 Shroudly 下载,每周更新。如果某个网站不正常,请把它加入 永不拦截的网站。被拦截的查询数量会显示在统计中;与之相关的任何内容都不会被记录或发送。
- 退出 Shroudly:停止保护,并将所有设置恢复原样。
- 在 Android 上,关于 中有:将我计入在线人数(见隐私)、拦截广告和跟踪器 和 设置(见上文 Android 一节)。应用跟随手机的语言(在 Android 13 及更高版本中,也可以在系统设置里单独为 Shroudly 选择语言)。
请按顺序逐项检查;大多数问题都能在其中某一步解决。
- 更新。将关于页面上的版本与最新发布的版本进行比较。
- 一次只用一个工具。其他绕过工具和 VPN(GoodbyeDPI、zapret、SplitWire、WARP、各种 VPN 应用)会改动同样的连接或系统代理。Shroudly 发现这类工具时会写入日志。关闭其他工具,然后再次点击启动保护。
- 保持保护开启。每次停止再启动,都会中断已连接的应用。
- 让 Shroudly 完成它的工作。它会自动开启所需的功能,对 Discord、Roblox 和 Roblox Studio 也一样,并用一行文字告诉你。如果电脑为高级模式请求权限,请允许。如果 Shroudly 请你重新打开 Roblox Studio,请先保存你的工作。
- 某个程序忽略所有代理设置:开启高级模式(Windows x64、Linux)。开启 DNS 防污染 时,高级模式也会用加密 DNS 回答该程序的 DNS 查询,因此在 DNS 中被封锁的域名也能打开。 从 2.6.16 起,当网络拦截这类程序(例如 Discord 机器人)时,Shroudly 会自行发现并为它开启高级模式,并用一行说明是哪个程序。
- 网站在一个浏览器里能打开,在另一个里打不开:那个浏览器绕过了 Shroudly,通常是因为它自己的代理或 VPN 设置,或者某个扩展。Shroudly 会用一行文字说出是哪个浏览器;关闭那项设置或扩展,或者换一个浏览器。如果 Firefox 被设置为不使用系统代理,Shroudly 会在你关闭 Firefox 后把设置改回来。
- 还是不行:使用测试网站。它给出的结果会告诉你问题出在哪里。
在 Android 上:
- 确认没有开启其他 VPN 应用。Android 同一时间只允许一个 VPN,开启另一个会让 Shroudly 停止。要让另一个 VPN 应用保持开启,请在 设置 → 模式 中选择 仅代理。
- 如果保护停止了,通知会说明原因。打开 Shroudly,点击启动保护。开启“始终开启的 VPN”后,重启后保护会自动恢复。如果手机关闭了 Shroudly(例如在锁屏时),一有网络它就会自动重新开启;只有你自己关闭时它才会保持关闭。
- 有些手机为了省电会关闭后台应用。如果保护经常停止,请允许 Shroudly 在后台运行且不受电池限制(不同手机上这项设置的名称不同)。
- 在开启保护之前就已经连接的应用,可能需要关闭后重新打开。
| 消息 | 含义 |
|---|---|
| 此处被封锁,已用 … 打开 | 该网站在你的网络中被封锁,Shroudly 已找到能打开它的方法。无需任何操作。 |
| Discord 在此网络上被封锁 … / Roblox 在此网络上被封锁 … | Shroudly 已自动开启该应用所需的设置。无需任何操作。 |
| Roblox 连不上 … | Shroudly 已让 Roblox 经由自己重新启动。请重新加入你的游戏。 |
| Roblox Studio 在 Shroudly 接管它的连接之前就已打开 … | 请保存你的工作,关闭 Roblox Studio 后再重新打开。 |
| … 在此网络上需要高级模式 … | 电脑请求权限时,请允许。 |
| 用所有方法都打不开 | 所有方法都被拒绝了。在过滤如此深入的网络上,高级模式通常会有帮助。 |
| 能连上,随后被网络切断 | 网络允许连接开始,随后又将其切断。高级模式可能有帮助。如果网站的地址本身被封锁,只有 VPN 才能连通。 |
| … 的服务器在此网络上完全没有响应 | 网络按地址封锁了该服务的服务器(在某些网络上是 Roblox 的)。电脑上的任何技术都无法绕过,只有 VPN 可以。 |
| 没有响应,但网站其余部分通过 Shroudly 正常工作 | 网站的其他部分都正常,只有其中一个地址(例如某个 API 或跟踪器)没有响应。这不是封锁,无需任何操作。 |
| 服务器自己拒绝了连接 | 拒绝连接的是网站本身,而不是网络。这不是封锁。 |
| 同时在运行:… | 另一个绕过工具或 VPN 正在同时运行。请关闭其中一个。 |
| 另一个程序更改了系统代理 | 某个 VPN 或其他工具接管了系统代理。请关闭它,或点击将 Shroudly 重新设为系统代理的按钮。 |
| 此网络封锁了加密 DNS | Shroudly 会自动继续尝试其他途径;在某条途径打通之前,部分网站可能会变慢。 |
| 你的 DNS 服务器 … 无应答 … | 你在设置中选择的 DNS 服务器无应答;在此期间由 Shroudly 的加密 DNS 应答。请检查地址,或把 DNS 服务器 改回 自动。 |
| … 那里没有任何程序在运行 | 某个已不再运行的代理工具(ByeDPI、旧的 VPN)留下了指向它的设置。Shroudly 会自动修复能修复的部分(把 Discord Drover 的文件移开并重启 Discord);对于其他程序,请在其设置中删除该代理,或重新运行那个工具。如果 Shroudly 提出清除 Windows 的 WinHTTP 代理,请允许。 |
| … 没有经由 Shroudly:它自己的代理或 VPN 设置,或某个扩展程序挡在中间 … | 那个浏览器绕过了 Shroudly。关闭它自己的代理或 VPN 设置或该扩展,或者换一个浏览器。 |
| Firefox 被设置为不使用系统代理,因此不会经由 Shroudly … | 关闭 Firefox;Shroudly 会把它改回使用系统代理。你自己填写的代理绝不会被更改。 |
| 保护已被 Android 关闭,通常是因为开启了另一个 VPN 应用(Android) | 关闭另一个 VPN 应用,然后打开 Shroudly,点击启动保护。 |
| 保护因出错而停止,你的应用现在直接联网 …(Android) | 打开 Shroudly,再次点击启动保护。在此之前,你的应用会直接连接。 |
| Wi-Fi 设置中遗留的代理 (Android) | 你的 Wi-Fi 网络代理指向一个已不再运行的应用。请在 Wi-Fi 设置中打开该网络,把代理设为“无”。 |
Shroudly 不收集个人数据,也没有账号。它只会联系以下对象:
- 在线人数统计:仅在开启了将我计入在线人数并且保护处于开启状态时进行;发送的是一个每次启动保护都会变化的随机数(该设置在电脑上位于设置中,在 Android 上位于关于页面)。不会保存任何地址或其他信息。
- GitHub:用于获取更新和被封锁网站列表。开启 拦截广告和跟踪器 时,还用于广告和跟踪器列表,每周一次。
- 加密 DNS 解析服务器(如 Cloudflare、Google 和 Quad9):在 DNS 防污染开启时用于查询域名。或你在 DNS 服务器 中选择的服务器。只有这些服务器不知道的名称(例如内网名称)才会询问系统自己的 DNS。对于加密 DNS 给出的地址完全连不上的网站,也会询问它,因为该网站在你所在国家的缓存可能连得上;开启仅使用此服务器时绝不会询问。
- Discord 的更新服务器:仅在开启 Discord 应用时联系,询问的内容与 Discord 自己会询问的完全相同。
- 网站本身:在你使用测试网站,或某个网站反复被切断时联系一次:向它的首页发送一次普通请求,以判断是不是网站本身拒绝了你。
- Discord 或 Roblox:仅在保护开启、且电脑上装有该应用时进行,最多每六小时一次:一次域名查询和一次与其服务器的连接,与应用自己会做的完全相同,用于判断你的网络是否封锁了它们。不会发送任何关于你的信息。
哪个被封锁的网站是用哪种方法打开的,只会记录在你的电脑上,保存时间有限,绝不会发送到任何地方。完整说明以及各项服务隐私政策的链接,请见 README。
Android 应用同样不收集任何数据。它以完全相同的方式计入同一个在线人数统计(仅在保护开启时,通过受保护的连接;可在关于 → 将我计入在线人数中关闭),除此之外它只会联系你使用的网站和应用、加密 DNS 解析服务器,以及最多每六小时一次联系 GitHub,查看是否有新版本(仅限从 APK 安装的版本;它绝不会自行下载或安装任何东西)。它的数据不会被备份,也不会复制到其他设备,因为其中包含打开过哪些被封锁的网站。开启 拦截广告和跟踪器 时,它还会每周从 GitHub 下载一次广告和跟踪器列表。
- 确认你使用的是最新版本,并且没有其他绕过工具或 VPN 在运行。
- 让问题重现,然后打开 日志 并点击 复制日志(通知区域图标的菜单中也有):你的版本、系统和日志的最新部分会复制到剪贴板,短到一条消息就能发完。保存日志 会把完整日志以文本文件保存到“下载”文件夹,便于附加到 issue。在 Android 上,打开 关于 并点按 分享日志。不会自动发送到任何地方。
- 在 https://github.com/umutxyp/Shroudly/issues/new 提交一个 issue。写明哪个网站或程序无法使用、你的操作系统和网络服务提供商,并粘贴日志。日志中包含你打开过的网站名称;不想分享的请删掉。
安全问题(任何可能危害用户的问题)请不要公开报告。请通过 https://github.com/umutxyp/Shroudly/security/advisories/new 私下报告。
Shroudly 只在本项目的 Releases 页面和 https://shroudly.codeshare.me 上发布。每个版本都由 GitHub Actions 从公开的源代码构建,每个安装包在发布前都会在对应的系统上实际安装并启动一遍。切勿从其他任何地方下载 Shroudly。项目中的任何人都绝不会向你索要密码或令牌(token),也不会让你运行他们发来的文件。
Android APK 始终使用同一个项目密钥签名;它的指纹见上方的 Android 一节,各版本如何签名请见代码签名政策。
Shroudly 由 Codeshare(Codeshare Technology Ltd)打造。Codeshare 为在线社区开发软件,并让其核心部分保持免费。开发者是 Umut Bayraktar。源代码采用 MIT 许可证。
它的引擎 shroudly-core 是用 C 语言从零写成的。它的方法借鉴了 GoodbyeDPI 和 zapret 背后的公开研究,并独立重新实现;它还借助 OONI 的开放数据来识别审查方的封锁页面。项目页面:https://codeshare.me/projects/shroudly。
Shroudly — 隐形。不可阻挡。
Shroudly is free and open source (MIT), a Codeshare product. Download only from https://github.com/umutxyp/Shroudly/releases or https://shroudly.codeshare.me.