1) 账号与地域选择:登录阿里云控制台,购买ECS实例时选择地域为“香港”。
2) 规格与镜像:建议选择1核/1GB起步(根据用户数量扩展),镜像推荐Ubuntu 20.04 LTS或Debian 10。
3) 网络:绑定公网EIP(如果需要固定IP),并记下实例ID与安全组ID以便后续放行端口。
4) SSH访问:在创建时设置密钥对或密码,创建完成后用ssh root@EIP登录,确认能连通。
1) 更新系统:sudo apt update && sudo apt upgrade -y。
2) 修改SSH默认端口(可选):编辑 /etc/ssh/sshd_config 修改 Port 并重启 sshd。
3) 设置基本防火墙:安装ufw(sudo apt install ufw -y),允许SSH(如22或自定义端口)sudo ufw allow 22 && sudo ufw enable。
4) 关闭不需要的服务,创建非root管理账号:adduser admin && usermod -aG sudo admin。
1) 安装:Ubuntu 下执行 sudo apt install shadowsocks-libev -y。
2) 配置文件:编辑 /etc/shadowsocks-libev/config.json,示例(多用户使用 port_password):
{"{"}"server":"0.0.0.0","mode":"tcp_and_udp","timeout":300,"method":"aes-256-gcm","port_password":{"8388":"pwd_user1","8389":"pwd_user2","8390":"pwd_user3"}{"}"}(把{}替换为实键,保持JSON格式)。
3) 启动并设置开机:sudo systemctl restart shadowsocks-libev && sudo systemctl enable shadowsocks-libev。
4) 验证:ss-server 端口是否监听:sudo ss -tunlp | grep ss-server 或 netstat -tunlp。
1) 阿里云安全组:进入ECS实例的安全组设置,添加入方向规则,类型自定义TCP,端口范围填写每个SS端口(8388,8389,8390或一段),来源设置为0.0.0.0/0或限制为你需要的IP段。
2) 本机防火墙:如果使用ufw,执行 sudo ufw allow 8388:8390/tcp && sudo ufw reload。若用iptables,执行 sudo iptables -A INPUT -p tcp -m multiport --dports 8388,8389,8390 -j ACCEPT 并保存规则。
3) 检查端口连通性:从外部机器使用 telnet EIP 8388 测试连通。
1) 基于连接数限制:使用 iptables 的 connlimit 模块限制单端口并发,例如限制每个IP对某端口最大连接数:sudo iptables -I INPUT -p tcp --dport 8388 -m connlimit --connlimit-above 50 -j DROP。为每个端口设置不同值。
2) 基于带宽限制(示例使用tc和iptables mark):先给各端口打标记:sudo iptables -t mangle -A PREROUTING -p tcp --dport 8388 -j MARK --set-mark 10,8390 标记为 11 等;然后用tc配置限速:sudo tc qdisc add dev eth0 root handle 1: htb default 30;sudo tc class add dev eth0 parent 1: classid 1:10 htb rate 2mbit ceil 2mbit(为标记10分配带宽),并用 tc filter 根据 fwmark 过滤器绑定类。
3) 推荐工具:如果不熟悉tc,推荐使用现成面板(如ss-panel/ssr-panel、Outline等)管理用户与速度配额。
1) 日志查看:shadowsocks-libev 默认无详细访问日志,可通过 systemd 查看 sudo journalctl -u shadowsocks-libev -f,或在启动参数增加 -v 查看日志。
2) 用户增删改:编辑 /etc/shadowsocks-libev/config.json 的 port_password 字段,修改后 sudo systemctl restart shadowsocks-libev。记得同步更新阿里云安全组(新增端口需放行)。
3) 备份策略:定期备份 config.json、iptables 规则与 tc 配置;可写脚本自动导出并上传到安全的对象存储。
4) 安全建议:启用 fail2ban 防暴力破解,限制 ssh 登录;定期更换用户密码与更新加密方法(推荐 aes-256-gcm)。
问:如何为新用户快速创建SS端口并限制该用户带宽?
答:步骤:1) 在 /etc/shadowsocks-libev/config.json 的 port_password 中新增 "端口":"密码";2) 阿里云安全组与本机防火墙放行该端口;3) 用 iptables 打 mark(如 MARK 12),再用 tc 新增 class 并设置 rate(例如 2mbit),通过 tc filter 把 fwmark 12 关联到该 class;4) 重启 shadowsocks-libev 并验证。可把这些命令写成脚本实现一键新增。
问:有没有方便的方法监控每个端口/用户的实时流量和连接数?
答:可以使用 ss 命令按端口统计连接数(ss -tan | grep :8388 | wc -l),或用 iptables 的 -v 参数统计流量(iptables -L -v -n -x 查看每条规则字节数)。更友好的方式是部署流量监控工具(如 vnStat、iftop 或结合 Prometheus + node_exporter 自定义按端口指标),以及使用面板(ss-panel)来展示每个用户的流量统计。
问:用户被滥用导致IP被封或被滥发流量,如何快速应对?
答:一是立即禁止该端口:从 config.json 删除端口并重启 ss 服务,或在安全组/iptables 层直接阻断端口。二是临时封禁用户IP:sudo iptables -I INPUT -s 用户IP -j DROP。三是排查原因:查看系统与ss日志,若为恶意行为建议更换端口/密码并通知用户合规使用。长期建议结合流量阈值报警与自动化封禁脚本。