1.
概述与目标
• 目标:在美国VPS集群上部署Shadowsocks实现多用户隔离与可审计管理。
• 场景:站群运营、多站点爬虫或多项目代理节点需要独立流量统计与限速。
• 要求:每个用户/站点独占端口、独立带宽配额、日志可审计且互不干扰。
• 安全策略:使用强加密(chacha20-ietf-poly1305)、TLS/obfs插件与提供商DDoS防护。
• 前提条件:有至少一台美国VPS(建议越靠近目标用户延迟越低),并能配置防火墙与路由表。
2.
环境准备与VPS规格建议
• 推荐规格(示例):4 vCPU / 8 GB RAM / 80 GB NVMe / 2 TB 流量 / 1 Gbps 带宽,价格约25 USD/月。
• 操作系统:Ubuntu 20.04 LTS 或 22.04,内核建议 >= 5.4;ss-libev 建议版本 >= 3.3.5。
• 软件包:安装 shadowsocks-libev、simple-obfs(可选)、iptables/nftables、tc、vnstat、fail2ban。
• 网络准备:固定公网IP(示例:203.0.113.45),开启必要端口(管理端口22+ss端口范围)。
• 提示:若高可用需求,采用多节点部署并结合DNS轮询或Anycast CDN进行流量分发。
3.
Shadowsocks 多用户基础配置示例
• 使用 shadowsocks-libev 的多端口配置示例(JSON 风格展示):
{"server":"0.0.0.0","method":"chacha20-ietf-poly1305","mode":"tcp_and_udp","timeout":300,"port_password":{"20000":"P@ss_word1","20001":"P@ss_word2","20002":"P@ss_word3"}}
• 每个端口即代表一个用户/站点;建议端口范围 20000-30000,便于管理。
• 启动命令(示例):systemctl enable --now shadowsocks-libev.service,或使用 ss-server -c /etc/shadowsocks-libev/config.json。
• 插件建议:simple-obfs 做混淆(obfs-local / obfs-server),或使用 v2ray-plugin 提供 tls 支持。
• 日志:将访问日志定向到 /var/log/ss/ 并配合 logrotate,每月做流量与连接数统计。
4.
多用户隔离与路由策略(技术细节)
• 隔离策略一:每个用户运行独立的 network namespace 或 docker 容器,并在容器内运行 ss-server,使进程级别隔离。
• 隔离策略二:同主机运行多个 ss-server 进程,通过 iptables mark + ip rule 指定不同路由表与限速。示例命令:
iptables -t mangle -A PREROUTING -p tcp --dport 20000 -j MARK --set-mark 100
ip rule add fwmark 100 table 100
ip route add default via 203.0.113.1 dev eth0 table 100
• 带宽限制示例(tc):tc qdisc add dev eth0 root handle 1: htb default 30;tc class add ... rate 5mbit 用于端口20000分配5Mbps。
• 端口限制与连接控制:使用 conntrack 与 iptables 限制每端口最大并发,例如 -m connlimit --connlimit-above 100 。
• 日志与审计:通过 iptables LOG 记录异常连接,结合 fail2ban 自动封禁暴力行为。
5.
域名、DNS与CDN 配置建议
• 域名策略:为每组站群使用二级域名或通配符 *.example.com 指向代理节点或负载均衡。
• DNS 管理:设置短 TTL(如 60-300 秒)配合故障切换,但生产站群可设置较长期以减轻DNS解析压力。
• CDN 加速:对站群前端静态资源使用 CDN(Cloudflare / KeyCDN),同时将 ss 流量通过非代理端口直连以避免 CDN 不支持的协议。
• DDoS 防护:建议同时购买云厂商基础防护(例如 OVH/阿里云/Cloudflare Pro),并在边缘开启速率限制与 SYN cookies。
• 真实配置示例:Cloudflare 代理 off 对 ss 服务端口(20000-20010)直接解析 A 记录到 203.0.113.45,web 静态走 CDN。
6.
监控、限流与自动化运维
• 监控工具:使用 vnStat 做流量统计,node_exporter + Prometheus 收集系统指标,Grafana 可视化。
• 阈值示例:当某用户月流量超过 100 GB 或当分钟连接数 > 2000 时触发告警。
• 自动化脚本:每日汇总 /var/log/ss/ 的流量日志,生成每用户使用报表并通过邮件发送。
• 自动限流:结合 crontab 与 tc 脚本,当发现超额用户自动降速或封禁端口。
• 备份与恢复:定期备份 /etc/shadowsocks-libev/config.json、iptables/nftables 配置与路由表脚本,便于灾难恢复。
7.
真实案例与配置数据示例(含表格)
• 真实案例概述:某公司在美国部署 4 台 VPS(美东2台、美西2台)用于分散站群代理流量,每台 VPS 配置如表所示。
• 每台 VPS 运行 shadowsocks-libev,多端口映射给不同客户并用 iptables + tc 做限速与隔离。
• 防御策略:边缘使用 Cloudflare Pro 做流量过滤,VPS 供应商提供基础 DDoS 清洗,配合本机 ipset 黑名单。
• 运维数据:Ubuntu 20.04,内核 5.8,ss-libev 3.3.6,平均延迟美西节点到目标站点 40ms。
• 下表为用户端口、密码、月度带宽配额与所在容器说明(表格为示例):
| 用户 | 端口 | 密码 | 月配额 | 隔离方式 |
| user1 | 20000 | P@ss_word1 | 100 GB | docker(网络命名空间) |
| user2 | 20001 | P@ss_word2 | 200 GB | iptables mark + tc |
| user3 | 20002 | P@ss_word3 | 50 GB | 独立容器 |
来源:进阶教程美国站群服务器怎么搭建ss实现多用户隔离管理