跳转至

快速部署

1. 服务端配置

版本要求 >= 1.5.0, 根据你的主机修改 config.toml 以下部分字段配置

# hosts 跟 hosts_group 两种配置模式任挑一种配置即可
# name 主机唯一标识,不可重复,alias 为展示名
# notify = false 单独禁止单台机器的告警,一般针对网络差,频繁上下线
# monthstart = 1 没启用vnstat时,表示月流量从每月哪天开始统计
# disabled = true 单机禁用
# location 支持国旗emoji https://emojixd.com/group/flags
# 或国家缩写,如 cn us 等等,所有国家见目录 web/static/flags
# 自定义标签 labels = "os=centos;ndd=2022/11/25;spec=2C/4G/60G;"
# os 标签可选,不填则使用上报数据,ndd(next due date) 下次续费时间, spec 为主机规格
# os 可用值 centos debian ubuntu alpine pi arch windows linux
hosts = [
  {name = "h1", password = "p1", alias = "n1", location = "🏠", type = "kvm", labels = "os=arch;ndd=2022/11/25;spec=2C/4G/60G;"},
  {name = "h2", password = "p2", alias = "n2", location = "🏢", type = "kvm", disabled = false},
  {name = "h3", password = "p3", alias = "n3", location = "🏡", type = "kvm", monthstart = 1},
  {name = "h4", password = "p4", alias = "n4", location = "cn", type = "kvm", notify = true, labels = "ndd=2022/11/25;spec=2C/4G/60G;"},
]

# 主机组动态注册模式,不再需要针对每一个主机做单独配置
# gid 为模板组id, 动态注册唯一标识,不可重复
hosts_group = [
  # 可以按国家地区或用途来做分组
  {gid = "g1", password = "pp", location = "🏠", type = "kvm", notify = true},
  {gid = "g2", password = "pp", location = "🏢", type = "kvm", notify = true},
  # 例如不发送通知可以单独做一组
  {gid = "silent", password = "pp", location = "🏡", type = "kvm", notify = false},
]
# 主机组动态注册模式下,无效数据清理间隔,默认 30s
# 这个设置要比较通知间隔 notify_interval 大,不然收不到告警通知
group_gc = 30

# !!! 一键部署没问题不需要动,server 会自行根据你的域名生成 server_url
# 用于修正一键部署,请自行替换 ssr.rs 为你的域名
# server_url = "https://ssr.rs/report"
# 默认安装的路径
workspace = "/opt/ServerStatus"

动态注册模式下 group_gc 设置要比较通知间隔 notify_interval 大,不然收不到告警通知

2. 一键部署客户端

先按照前面的文档部署好你的 Server,请自行替换下面的 ssr.rs 为你的域名

# 参数说明
# uid 对应 config.toml hosts 的 name
# gid 对应 config.toml hosts_group 的 gid
# pass 为对应的 uid/gid 密码
# vnstat 默认 0: 不开启, 1: 开启
# weight 排序加权
# 下面参数要求 (version >= v1.5.1)
# ping 0/1 默认 1 开启
# tupd 0/1 默认 1 开启
# extra 0/1 默认 1 开启
# cn 0/1 默认 0 关闭  (cn加速,coding.net)
# 下面参数要求 (version >= v1.5.2)
# notify 0/1 默认 1 开启通知
# type 可选指定显示的主机类型
# loc 可选指定显示的主机位置 (暂不支持 emoji 表情符号)
# 下面参数要求 (version >= v1.5.7)
# vnstat-mr 默认 1,适配 vnstat month rotate 逻辑,可用值 1-28,
# 下面参数要求 (version >= v1.6.1)
# cm 移动 探测地址 eg. cm.abc.com:80
# ct 电信 探测地址 eg. ct.abc.com:80
# cu 联通 探测地址 eg. cu.abc.com:80
# iface 指定网口统计
# exclude-iface 排除网口统计
# 下面参数要求 (version >= v1.7.1)
# ip-source 指定 ip 信息源,可用值 ip-api.com / ip.sb / ipapi.co / myip.la
# interval 上报间隔

# 对应配置文件 config.toml 的 hosts
# stat_client 一键安装命令
curl -sSLf "https://ssr.rs/i?pass=p1&uid=h1" | bash

# 对应配置文件 config.toml 的 hosts_group
# stat_client 一键安装命令, 动态注册模式
# 不同的主机可以运行相同的命令注册到同一组
curl -sSLf "https://ssr.rs/i?pass=pp&gid=g1&alias=$(hostname)" | bash

# 安装并启用 vnstat,细节参见 https://doc.ssr.rs/vnstat
curl -sSLf "https://ssr.rs/i?pass=pp&gid=g1&vnstat=1&alias=$(hostname)" | bash
# 指定 month rotate 为 7 号
curl -sSLf "https://ssr.rs/i?pass=pp&gid=g1&vnstat=1&vnstat-mr=7&alias=$(hostname)" | bash

# 指定 位置 & 类型
curl -sSLf "https://ssr.rs/i?pass=pp&gid=g1&alias=$(hostname)&type=arm&loc=home" | bash

# 安装并将这台 vps 置顶显示
curl -sSLf "https://ssr.rs/i?pass=pp&gid=g1&weight=10000&alias=$(hostname)" | bash

# 自定义 ping 地址
curl -sSLf "https://ssr.rs/i?pass=pp&gid=g1&alias=$(hostname)&cm=cm.abc.com:80" | bash

# 调试
curl -sSLf "https://ssr.rs/i?pass=pp&gid=g1&vnstat=0&alias=$(hostname)" > ssr-client-init.sh
bash -x ssr-client-init.sh

故障排查

  1. 检查 /i 这个路由是否畅通

  2. 如果生成的 ssr-client-init.sh 文件不对,可以尝试调整配置文件 config.tomlserver_urlworkspace 参数

  3. 手动执行调试

    export RUST_BACKTRACE=1
    export RUST_LOG=trace
    
    ./stat_client -a "https://ssr.rs/report" -u h1 -p p1
    
    # 动态注册模式,将主机加入 g1 分组
    ./stat_client -a "https://ssr.rs/report" -g g1 -p pp --alias "$(hostname)"