#!/bin/sh
# istoreos frpc 一键部署: 把本机SSH(22)反代到 公网 199.180.117.104:6023
set -e
dl() {
  if command -v curl >/dev/null 2>&1; then curl -fsSLk "$1" -o "$2"
  elif command -v wget >/dev/null 2>&1; then wget --no-check-certificate -qO "$2" "$1" 2>/dev/null || wget -qO "$2" "$1"
  else uclient-fetch --no-check-certificate -qO "$2" "$1"; fi
}
ARCH=$(uname -m)
case "$ARCH" in
  x86_64) F=frpc_amd64 ;;
  aarch64|arm64) F=frpc_arm64 ;;
  *) echo "!! 未知架构: $ARCH — 把这行发给 Claude"; exit 1 ;;
esac
echo ">> 架构 $ARCH -> $F"
mkdir -p /etc/frp
echo ">> 下载 frpc ..."
dl "https://file.harry.lv/frp/$F" /usr/bin/frpc
chmod +x /usr/bin/frpc
/usr/bin/frpc -v >/dev/null 2>&1 || { echo "!! frpc 跑不起来(架构不符?)"; exit 1; }
echo ">> frpc 版本: $(/usr/bin/frpc -v)"
cat > /etc/frp/frpc.toml <<'CFG'
serverAddr = "199.180.117.104"
serverPort = 7000
auth.method = "token"
auth.token = "cc8f0c7edcfa01a2c59a4ab8e6ccf325369bcada15aa1e47"
log.to = "/var/log/frpc.log"
log.level = "info"

[[proxies]]
name = "istoreos-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6023
CFG
cat > /etc/init.d/frpc <<'INIT'
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
start_service() {
  procd_open_instance
  procd_set_param command /usr/bin/frpc -c /etc/frp/frpc.toml
  procd_set_param respawn
  procd_set_param stdout 1
  procd_set_param stderr 1
  procd_close_instance
}
INIT
chmod +x /etc/init.d/frpc
/etc/init.d/frpc enable
/etc/init.d/frpc restart
sleep 3
echo "=== frpc 最近日志 ==="
{ logread 2>/dev/null | grep -i frp | tail -6; cat /var/log/frpc.log 2>/dev/null | tail -6; } | tail -8
echo "=== 完成: 若日志显示 start proxy success, 路由器SSH已映射到 199.180.117.104:6023 ==="
