Sucaddy v2.0 一键安装指南
Sucaddy v2.0 — 三端合一融合代理工具,一个二进制文件同时支持 NaiveProxy 入口、SS 中转和 Shadowsocks 出口。 源码: GitHub
架构
三端合一
| 端 | 角色 | 位置 | 协议 |
|---|---|---|---|
| 服务端 | 入口节点 | 海外(如韩国) | HTTPS (NaiveProxy) |
| 中转端 | 国内中转 | 国内(如成都) | SS → TLS 上游 |
| 落地端 | 出口节点 | 海外落地(如香港) | Shadowsocks Server |
数据流
┌─────────────────────────────────────────────────────────┐
│ 路径 A: 直连 │
│ │
│ NaiveProxy 客户端 ──HTTPS──→ 服务端(:443) ──→ 本地出口 │
│ TLS + 认证 │
├─────────────────────────────────────────────────────────┤
│ 路径 B: 中转 + 链式 │
│ │
│ SS 客户端 ──SS──→ 中转端(:10099) ──TLS──→ 服务端(:443) │
│ 成都 韩国 │
│ │ │
│ SS 链式转发 │
│ ↓ │
│ 落地端(:8443) │
│ 香港 │
│ ↓ │
│ 互联网 │
└─────────────────────────────────────────────────────────┘
- direct 用户 — 从韩国服务器直接出口
- chain 用户(中转) — SS 客户端 → 成都中转 → 韩国 → 香港出口
- chain 用户(直连) — NaiveProxy 客户端 → 韩国 → 香港出口
快速开始
一行命令完成安装,支持三种模式:
curl -fsSL https://liuhp.net/downloads/sucaddy/install.sh | bash
系统要求
| 要求 | 说明 |
|---|---|
| 操作系统 | Debian 11+, Ubuntu 20.04+, CentOS 8+, Rocky Linux, AlmaLinux, Alpine |
| 架构 | amd64 (x86_64) / arm64 (aarch64) |
| 权限 | root 或 sudo |
| 服务端端口 | 80(证书申请)+ 443(代理服务) |
| 中转端端口 | 10099(SS Server,可自定义) |
| 落地端端口 | 8443(Shadowsocks Server,可自定义) |
模式说明
Sucaddy 使用同一个二进制文件,通过 mode 字段自动识别运行模式:
| 模式 | 配置关键字 | 功能 |
|---|---|---|
| 服务端(入口) | listen: :443 + auth: |
NaiveProxy TLS 监听,认证后直连或链式转发 |
| 中转端(国内中转) | mode: relay + ss_server: + upstream: |
SS Server 接收用户,TLS 转发到上游服务端 |
| 落地端(SS 服务端) | ss_server: |
Shadowsocks Server 监听,接收服务端 SS 客户端转发来的流量 |
安装服务端(入口节点)
运行安装脚本后选择 选项 1:
请选择安装类型:
[1] 安装服务端(入口节点)— NaiveProxy :443
[2] 安装中转端(国内中转)— SS → TLS 上游
[3] 安装落地端(出口节点)— Shadowsocks :8443
[4] 管理已有服务
[0] 退出
选择 [0-4]: 1
交互步骤
脚本会依次询问:
- 绑定域名 — 你的代理服务器域名(需提前解析到服务器 IP)
- 邮箱地址(可选)— 用于 Let’s Encrypt SSL 证书
- probe_resistance — 是否隐藏代理特征(推荐开启)
- 添加认证用户 — 可添加多个用户,每个用户选择路由:
- direct — 从本机直接出口
- chain — 转发到落地端
- 落地端配置(如果有 chain 用户)— 输入落地端地址、SS 加密方式和密码
配置示例
# Sucaddy 服务端配置
listen: :443
tls:
cert: /etc/sucaddy/ssl/proxy.example.com/fullchain.pem
key: /etc/sucaddy/ssl/proxy.example.com/key.pem
auth:
- username: your-username
password: "your-password"
route: direct # 从本机出口
- username: your-username
password: "your-password"
route: chain # 转发到落地端出口
ss:
server: "<landing-server-ip>:8443"
method: aes-256-gcm
password: "your-ss-password"
probe_resistance: true
v2.0 默认加密方式改为
aes-256-gcm
安装完成后
===============================================
Sucaddy 服务端安装完成!
===============================================
监听: proxy.example.com:443
IP: <your-server-ip>
配置: /etc/sucaddy/config.yaml
日志: journalctl -u sucaddy -f
===============================================
安装中转端(国内中转)⭐ 新增
运行安装脚本后选择 选项 2:
选择 [0-4]: 2
适用场景
国内用户通过 SS 客户端连接中转端,中转端通过 TLS 加密转发到海外服务端。避免国内直连海外服务器,降低被墙风险。
交互步骤
- SS 监听端口 — 默认 10099(高端口,避开常见端口)
- 上游服务端地址 — 例如
your-server.com:443 - 上游是否使用 TLS — 默认 Yes
- 上游认证信息 — 与服务端
auth中的用户名/密码一致 - SS 加密方式 — 默认
aes-256-gcm - SS 密码 — 与落地端 SS 密码保持一致
配置示例
# Sucaddy 中转端配置 — 国内中转
mode: relay
ss_server:
listen: :10099
method: aes-256-gcm
password: your-ss-password
upstream:
addr: your-server.com:443
tls: true
insecure: false
auth:
username: your-username
password: "your-password"
安装完成后
===============================================
Sucaddy 中转端安装完成!
===============================================
SS 监听: <your-ip>:10099 (aes-256-gcm)
上游转发: your-server.com:443 (TLS=true)
配置: /etc/sucaddy/config.yaml
日志: journalctl -u sucaddy -f
===============================================
安装落地端(出口节点)
运行安装脚本后选择 选项 3:
选择 [0-4]: 3
交互步骤
- SS 监听端口 — 默认 8443
- SS 加密方式 — 默认
aes-256-gcm - SS 密码 — 必须与服务端
ss.password一致
配置示例
# Sucaddy 落地端配置 — SS 服务端
ss_server:
listen: ":8443"
method: aes-256-gcm
password: "your-ss-password"
安装完成后
===============================================
Sucaddy 落地端安装完成!
===============================================
SS 监听: <your-landing-ip>:8443 (aes-256-gcm)
配置: /etc/sucaddy/config.yaml
日志: journalctl -u sucaddy -f
⚠️ 此地址需填入服务端的 ss.server 配置
===============================================
SSL 证书
服务端安装时自动通过 acme.sh 申请 Let’s Encrypt 证书:
- ✅ 自动申请(ECDSA 256 位密钥)
- ✅ 自动续期(cron 管理)
- 支持 HTTP-01 验证
如果证书申请失败(如 80 端口不可用),脚本自动降级为自签名证书(仅测试环境)。
手动续期:
~/.acme.sh/acme.sh --renew -d your-domain.com --force
管理命令
查看服务状态
systemctl status sucaddy
查看实时日志
journalctl -u sucaddy -f
查看最近 50 条日志
journalctl -u sucaddy -n 50 --no-pager
管理菜单
curl -fsSL https://liuhp.net/downloads/sucaddy/install.sh | bash
# 选择 [4] 管理已有服务
卸载
# 远程卸载
curl -fsSL https://liuhp.net/downloads/sucaddy/uninstall.sh | bash
# 或本地卸载
/usr/local/bin/sucaddy-uninstall.sh
常见问题
Q: direct 和 chain 有什么区别?
- direct — 用户连接后从当前服务端直接出口(IP = 服务端 IP)
- chain — 用户连接后,服务端通过 SS 客户端转发到落地端的 SS 服务端,从落地端出口(IP = 落地端 IP)
一台服务端可以同时服务两种用户。
Q: 中转端和落地端有什么区别?
- 中转端 — 国内节点,接收 SS 客户端,通过 TLS 转发到海外服务端
- 落地端 — 海外节点,接收服务端的 SS 客户端连接,作为最终出口
Q: 服务端和落地端可以装在同一台机器上吗?
可以,但一般没必要。一台机器同时跑 :443(NaiveProxy + SS Client)和 :8443(SS Server)技术上完全可行。
Q: 支持哪些操作系统?
Debian、Ubuntu、CentOS、Rocky Linux、AlmaLinux、Fedora、Alpine。其他 systemd Linux 发行版可能也能用但未测试。
Q: 支持 arm64 吗?
支持。脚本会自动检测架构并下载对应二进制(树莓派、OpenWrt 等均可)。
Q: 如何添加/修改用户?
编辑 /etc/sucaddy/config.yaml,在 auth: 列表中添加或修改用户:
auth:
- username: newuser
password: "newpass"
route: direct
然后重启服务:
systemctl restart sucaddy
Q: 如何更换 SS 密码或端口?
同时修改服务端的 ss 部分(SS 客户端)和落地端的 ss_server 部分(SS 服务端),确保两边密码和加密方式一致后重启两边的服务。
Q: probe_resistance 是什么?
开启后,无认证的连接会返回伪装页面(fake nginx 405),不暴露代理身份。建议开启以增强隐蔽性。
Q: v2.0 默认加密方式为什么改了?
从 AEAD_CHACHA20_POLY1305 改为 aes-256-gcm,兼容性更好,硬件加速支持更广。
安全说明
- 所有传输均通过 TLS 加密(NaiveProxy 模式)或 AEAD 加密(SS 模式)
- NaiveProxy 伪装成普通 HTTPS 流量,可过 GFW
- 建议配合防火墙使用,仅开放必要端口
- 定期更新 sucaddy 二进制以获得最新安全修复
有问题?在 GitHub 提交 Issue。