梯子Z 来自巴黎的稳定快速安全ShadowsocksR梯子

shadowsocks-rust 安装配置:从安装到连接校验

更新于 2026-10-28 · zionladderq.top

简答:shadowsocks-rust 是用 Rust 编写的 Shadowsocks 实现,最短上手路径是:选择预编译包或 Homebrew 安装,创建合法的 local.json,运行 sslocal,再让单个应用连接 127.0.0.1:1080 的 SOCKS5 代理。先验证普通 SOCKS5,确认日志、本地监听和远端参数一致后,再处理 UDP、DNS、TUN 或系统服务。

定义:shadowsocks-rust 是 Shadowsocks 的 Rust 实现,提供 sslocal 本地客户端、ssserver 服务端以及 ssmanager、ssservice、ssurl 等命令行组件。

先试这条 3 分钟最小流程

如果你只是想把 shadowsocks-rust 客户端跑起来,不要一开始配置 TUN、透明代理或系统服务。先完成下面这条最短链路:安装程序→创建配置→启动 sslocal→检查本地端口→让一个支持 SOCKS5 的应用连接。

  1. 安装程序:Windows 可从 官方 Releases 页面选择匹配架构的预编译包;macOS 或 Linux 可使用 brew install shadowsocks-rust,已有 Rust 工具链时也可以运行 cargo install shadowsocks-rust。
  2. 确认命令可用:Windows PowerShell 执行 .\sslocal.exe -h;macOS 或 Linux 执行 sslocal -h。看到帮助信息,只能说明程序能够启动,不代表远端服务已经连通。
  3. 创建 local.json:将服务器地址、端口、密码和加密方法替换成你已核实的参数。
  4. 启动客户端:在配置文件目录执行 sslocal -c local.json;Windows 使用 .\sslocal.exe -c local.json。
  5. 填写应用代理:代理类型选择 SOCKS5,地址填写 127.0.0.1,端口填写配置中的 local_port,默认示例为 1080。
  6. 确认日志:如果程序立即退出,先看终端报错;如果进程持续运行但应用无法连接,再检查远端端口、密码、加密方法和防火墙。

本页是第三方使用指南,不是 shadowsocks-rust 项目页面;下载文件、版本资产和当前参数请以项目仓库及发布页为准。

场景先选什么优点限制与回滚
Windows 普通客户端Releases 预编译包不用先配置 Rust 工具链,解压即可检查帮助需自行管理目录;删除解压目录即可回滚
macOS 或 Linux 桌面Homebrew安装和升级命令简单,公式页面列出可用二进制版本由公式管理;可用 brew uninstall shadowsocks-rust 移除
已有 Rust 环境Cargo适合开发者和源码构建场景依赖 Rust 版本、编译器和系统库;失败时优先查看构建错误
服务器或容器预编译包、Docker 或 Snap便于服务化和隔离运行需要额外检查端口映射、权限、日志和重启策略

安装方式与当前版本核验

shadowsocks-rust 项目仓库将它定义为 Shadowsocks 的 Rust 移植版本,README 列出了 crates.io、Homebrew、Snap、静态链接预编译包和 Docker 等安装路径。查看项目仓库。

截至 2026-10-28 本次核验,官方 Releases 页面当前将 v1.25.0 标为 Latest,页面显示发布日期为 2026-08-26。这是本次抓取时页面显示的状态,不应替代你下载时对 Releases 页的再次核对。该版本发布说明写明最低支持 Rust 版本提高到 1.91,如果使用 Cargo 构建,先执行 rustc --version 和 cargo --version。查看 v1.25.0 发布页及当前 Latest 标记。

Homebrew 当前公式页面显示稳定版本为 1.25.0,安装命令是 brew install shadowsocks-rust,并列出 sslocal、ssmanager、ssserver、ssservice 和 ssurl 等二进制。公式页面同时列出 macOS Apple Silicon、macOS Intel 以及 Linux ARM64、x86_64 的瓶装包支持;具体可用平台仍应以安装时的公式页面为准。查看 Homebrew shadowsocks-rust 公式。

Windows:预编译包优先

  1. 打开官方 Releases 页面,按系统架构选择 Windows 资产;README 明确列出 x86_64-pc-windows-msvc 构建目标。
  2. 解压到单独目录,不要直接覆盖正在使用的旧版本。
  3. 在 PowerShell 进入该目录,执行 .\sslocal.exe -h。
  4. 帮助信息正常显示后,再创建配置文件并启动客户端。

Windows 的 TUN 模式还需要额外的 wintun.dll,不建议将它作为首次连接测试路径。普通 SOCKS5 验证失败时,先不要增加 TUN、系统代理或服务项。

macOS 和 Linux:Homebrew、Cargo、Snap 怎么选

  • Homebrew:适合已经使用 brew 管理软件的桌面或服务器环境,命令为 brew install shadowsocks-rust。
  • Cargo:适合已有 Rust 工具链、需要自行编译或开发调试的用户,命令为 cargo install shadowsocks-rust。安装后通常在 $CARGO_HOME/bin 中找到程序。
  • Snap:README 给出了 snap install shadowsocks-rust、查看服务和使用 systemd 状态命令的示例,适合已经采用 Snap 管理服务的 Linux 环境;如果系统没有 Snap,不必为了首次验证额外引入它。
  • Docker:项目 README 提供了 sslocal 和 ssserver 镜像,并要求挂载配置文件和映射端口。容器默认不一定具备 IPv6 访问能力,使用 IPv6 时需要单独检查容器网络。

这些安装方式不是同时叠加的。首次排障时只保留一个来源和一个运行进程,避免系统中同时存在多个 sslocal,导致端口占用或无法判断实际运行的版本。

配置文件、ss:// 链接与最小客户端校验

sslocal 是本地客户端:它监听本机端口,并把应用流量转发到远端 Shadowsocks 服务。ssserver 是服务端:它监听服务器端口。两者共享服务器地址、端口、密码和加密方法等核心参数,但客户端还需要本地监听地址和端口。

可校验的 local.json 骨架

下面是符合 JSON 结构的配置骨架,但不是可直接连接的成品。尖括号中的值必须替换,不能原样保留;JSON 中不要加入注释、中文引号或尾随逗号。

{"server":"<服务器域名或IP>","server_port":8388,"password":"<密码>","method":"aes-256-gcm","local_address":"127.0.0.1","local_port":1080}

  1. 将内容保存为 local.json。
  2. 使用编辑器或系统 JSON 工具检查括号和引号是否闭合。
  3. 运行 sslocal -c local.json,Windows 使用 .\sslocal.exe -c local.json。
  4. 确认 127.0.0.1:1080 被本地进程监听。
  5. 只让一个应用使用 SOCKS5,地址填 127.0.0.1,端口填 1080。

项目 README 给出的基础字段包括 server、server_port、password、method、local_address 和 local_port,并分别说明本地字段主要用于 sslocal。查看 README 的配置和启动示例。

收到 ss:// 链接时怎么处理

ss:// 是 Shadowsocks 的分享链接格式,不等于普通网页地址。shadowsocks-rust 提供 ssurl 用于 SIP002 URL 的编码和解码。你可以先用 ssurl -h 查看当前版本帮助,再根据实际参数解码或生成链接;不要把未知来源的链接直接当作可信配置导入。

如果链接包含插件、特殊加密方法或额外参数,应先确认客户端和服务端都支持这些字段。官方入门文档说明,不同 Shadowsocks 实现具有协议层面的兼容基础,但这不代表插件、扩展字段、加密方法和所有高级功能都能任意互换。查看官方 Getting Started 对实现兼容与功能差异的说明。

服务端配置只作结构说明

如果你管理自己的服务器,README 提供了类似下面的服务端结构:

{"server":"0.0.0.0","server_port":8388,"password":"<密码>","method":"aes-256-gcm"}

这里的 0.0.0.0 仅表示示例中的监听地址,不应直接照搬到所有环境。实际部署前应结合服务器网卡、防火墙、安全组、访问控制和端口暴露范围确认监听策略;端口处于监听状态,也不代表客户端认证和转发已经成功。

DNS、UDP、TUN 与普通 SOCKS5 的排查顺序

连接排查应从影响范围最小的环节开始。先验证程序和 TCP 代理,再增加 DNS、UDP、TUN 或系统服务;每次只改一个变量,并记录改动前后的日志。

现象优先检查不要直接下的结论
程序立即退出配置文件路径、JSON 格式、参数拼写、端口占用和终端报错不能仅凭退出判断远端服务故障
本地端口未监听local_address、local_port、权限和是否已有其他进程占用不能继续测试应用层代理
应用提示代理失败代理类型是否为 SOCKS5,地址和端口是否与配置一致不能把 ping 通服务器当作代理可用证明
域名失败但部分 IP 可访问DNS 字段、应用解析方式、IPv4/IPv6 和缓存不能只凭一次 DNS 查询判断全部网络正常
TCP 正常但 UDP 功能异常客户端、服务端、监听端口和防火墙是否都允许 UDP不能把 TCP 连接成功当作 UDP 已验证
TUN 启用后断网虚拟网卡、系统路由、权限、Windows 的 Wintun 文件及回滚设置不能忽略原有系统代理和其他客户端

DNS 和 UDP

README 说明,系统默认使用系统 DNS 配置,也可以在启用相应 DNS 功能时指定 DNS 地址或预定义名称。DNS 设置是否生效取决于当前构建特性和配置路径,因此排查时先确认当前二进制支持的参数,再观察日志。不要为了绕过一个域名问题直接修改全局 DNS;先用单个应用和单个域名复现。

配置中的 mode 可以涉及 tcp_only、tcp_and_udp 或 udp_only 等模式,但 UDP 还需要服务端、端口和网络设备共同支持。项目文档也区分了 SOCKS5 UDP Association、透明代理 UDP 和普通 TCP 代理,它们不是同一种测试。查看 README 的 DNS、UDP 和透明代理配置说明。

TUN 和透明代理

TUN 会改变系统流量路径,涉及虚拟网卡、路由、管理员权限和额外组件。README 列出 Linux、macOS、Windows 等平台的不同启动方式;Windows 需要将 wintun.dll 放到可执行文件目录或系统 PATH。首次使用建议先完成 SOCKS5 校验,确认问题来自 TUN 后再按平台文档逐项配置。

透明代理的 redir 模式也不能与 SOCKS5 监听混用:README 明确指出,系统重定向流量应发送到 redir 监听器,而不是 SOCKS 或 HTTP 监听器。改动前请保存原有路由和代理设置,失败后先停止 sslocal、关闭 TUN 或透明代理规则,再恢复系统网络配置。

服务化运行、日志与恢复

普通命令行运行适合首次校验;确认连接正常后,再考虑 Docker、Snap 或 Windows 服务。服务化的核心不是“开机自动运行”本身,而是让配置路径、权限、端口、日志和停止方式都可控。

  • Docker:README 示例要求挂载配置文件,并分别映射本地客户端的 1080/tcp 或服务端的 8388/tcp、8388/udp。请将示例中的路径替换为实际路径,确认宿主机端口没有被其他进程占用,并通过容器日志观察启动结果。查看 README 的 Docker 镜像和端口映射示例。
  • Snap:README 给出了 snap install shadowsocks-rust、snap services shadowsocks-rust、snap start --enable shadowsocks-rust.sslocal-daemon 以及 systemctl status snap.shadowsocks-rust.sslocal-daemon.service。这些命令适用于已经安装并启用 Snap 的 Linux 环境。
  • Windows 服务:README 说明 sswinservice 不是默认构建内容,需要启用 winservice 特性后编译;因此预编译的普通 sslocal.exe 不能直接等同于 Windows 服务程序。
  • 停止与回滚:普通终端运行按 Ctrl+C 停止;Docker 使用 docker stop;Snap 或 systemd 服务先停止对应服务;如果改过系统代理、TUN 或透明代理规则,停止进程后还要恢复原来的系统设置。

遇到问题时,建议保留三类记录:运行命令、终端或服务日志、改动前后的配置差异。不要在公开日志中粘贴密码、完整分享链接或服务器凭据。

快速自查清单与兼容边界

  1. 确认使用的是同一版本来源,并记录 sslocal -h 的结果。
  2. 确认配置是合法 JSON,服务器地址、端口、密码和 method 与远端一致。
  3. 确认本地监听地址和端口没有被其他客户端占用。
  4. 只保留一个代理进程、一个测试应用和一种代理模式。
  5. 先验证 TCP SOCKS5,再单独验证 DNS,最后再验证 UDP、TUN 或透明代理。
  6. 需要升级时,先阅读当前 Releases 页面,再备份旧配置和旧程序目录。

官方 Getting Started 页面将 shadowsocks-libev、go-shadowsocks2 和 shadowsocks-rust 列为可互通的 CLI 实现,并单独列出 TCP Fast Open、多用户、管理 API、UDP Relay、插件和 AEAD 等功能差异。这表示兼容首先是协议和基础实现层面的前提,不能理解为任意插件、字段或高级功能都自动兼容。查看功能对比表。

截至 2026-10-28,本页涉及的版本、命令和菜单均以本次核验到的项目页面为依据;动态版本、构建依赖、预编译资产和平台要求可能继续变化,实际操作前应再次查看当前 Releases 与 README。

常见问题

shadowsocks-rust 和其他 Shadowsocks 实现可以直接互通吗?

官方入门文档将多个 CLI 实现列为兼容实现,但这是协议层面的互通前提,不代表插件、扩展字段、加密方法和所有高级功能都自动兼容。实际连接仍需核对服务器地址、端口、密码、加密方法及插件参数。

Windows 下载 shadowsocks-rust 后,应该先运行什么?

解压后在 PowerShell 进入程序目录,先运行 <code>.\sslocal.exe -h</code>。如果能显示帮助信息,说明程序可以启动;随后再创建 local.json,并使用 <code>.\sslocal.exe -c local.json</code> 启动。

cargo install shadowsocks-rust 失败怎么办?

先运行 <code>rustc --version</code> 和 <code>cargo --version</code>。截至 2026-10-28 本次核验的 v1.25.0 发布说明写明最低支持 Rust 版本为 1.91;版本不足时先升级工具链,或改用预编译包。若报错涉及链接器、系统库或权限,应按具体错误继续排查。

收到 ss:// 链接后能直接粘贴到任意客户端吗?

不能保证。ss:// 是 Shadowsocks 的分享链接格式,可能包含插件、特殊加密方法或扩展参数。shadowsocks-rust 提供 ssurl 处理 SIP002 URL,但导入前仍应确认链接来源、客户端版本以及服务端是否支持其中的字段。

sslocal 已经启动,但应用仍然无法连接怎么办?

先确认应用代理类型是 SOCKS5,地址为 <code>127.0.0.1</code>,端口与 <code>local_port</code> 一致;再核对服务器地址、端口、密码和 method。暂时关闭 TUN、系统代理和其他代理客户端,只保留一个应用测试,有助于判断是本地代理、远端参数还是应用解析问题。

什么时候应该配置 TUN、UDP 或透明代理?

普通 SOCKS5 已经验证后再配置。TUN 涉及虚拟网卡、系统路由和权限;UDP 需要客户端、服务端、端口及网络设备共同支持;透明代理的 redir 监听器也不能与 SOCKS 或 HTTP 监听器混用。每次只增加一种模式,并准备好恢复原有网络设置。

相关阅读

参考资料

  1. shadowsocks-rust 官方 GitHub 仓库
  2. shadowsocks-rust 官方 README:安装、配置、Docker、TUN 与服务说明
  3. shadowsocks-rust 官方 Releases:当前版本与发布说明
  4. Homebrew shadowsocks-rust 官方公式(formulae.brew.sh)
  5. Shadowsocks 官方 Getting Started 文档(shadowsocks.org)