Files
ipw-cn/docs/guide/getting-started.md
nomdn e9b3a75f02 feat: v3.3.0 — OTA 优雅交接与中间件自更新、多架构镜像、全项目审计修复
OTA 自更新:
- Windows 改优雅交接:预检新二进制 → 原子替换 → 优雅停机 → 拉起新进程 → 健康检查确认 → 老进程退出,失败自动回滚 .old,不再依赖端口抢占竞态
- 下载增加 Release 资产尺寸精确比对;库缺失慢启动按子进程存活判定(10min 宽限)
- OTA 移植至中间件(middleware-go/ota.go,ota/OTA + gh-proxy 配置)

多架构镜像:
- 新增 docker.yml:amd64 原生 + GitHub 原生 ARM 实例构建 arm64/armv7(无 QEMU),打 v* 标签推送 GHCR(DockerHub 预留注释暂未启用)
- 两个 Dockerfile 支持 buildx 交叉编译(TARGETVARIANT → GOARM 映射),修复 middleware-go Dockerfile 漏拷 ws.go 导致镜像无法构建

审计修复(安全/崩溃/数据正确性):
- SSRF:私网黑名单补齐 CGNAT/ULA/NAT64/组播段;重定向校验检查即将跳转的目标并限 10 跳;边缘函数 tcping 补私网拦截;探针响应体 10MB 上限
- 修复 url.Parse 空指针 ×4、启动解析器初始化崩溃、IP2LOCATION .ZIP 大小写永久缺库、残缺下载覆盖现有库、WHOIS 单次 Read 截断、Bilibili 查询无超时
- 修复中间件 WS 写失败干等 30s、僵死节点永久占位;前端死 catch、路径穿越、toFixed 空指针、首页 IPv4/IPv6 优先判断
- 新增 TRUSTED_PROXIES(后端/中间件)与缓存定期清扫;CORS trim/端口归一化等 20+ 项边缘修复

部署:
- install.sh:curl -f、systemd unit 引号与 env 转义、重跑安装 restart 生效
- CI go-version 对齐 1.26.6
2026-08-29 20:17:31 +08:00

3.5 KiB
Raw Permalink Blame History

快速开始

本章节将指导您以最低成本部署一个功能完整的测试站

尝试一下

我们的开发团队已经部署了一个功能完整的预览站: 预览站点

前置准备

  • 一台 Linux 服务器(需 root 权限 + systemd)
  • 服务器上可访问 GitHub(下载 release 二进制)
  • 无需本地编译环境,无需准备配置文件

开始部署

交互式一键部署(推荐)

# 获取安装脚本(任选其一)
git clone https://github.com/nomdn/ipw-cn && cd ipw-cn   # 或
curl -fsSL https://raw.githubusercontent.com/nomdn/ipw-cn/main/install.sh -o install.sh

# 执行安装(root 权限)
sudo bash install.sh

Warning

请勿使用 curl ... | sudo bash 管道方式执行:脚本经管道边下载边执行,网络慢/抖动时 bash 会读到不完整的脚本内容,报 syntax error near unexpected token 类错误(脚本本身无语法问题)。务必先下载完整文件再执行。

脚本会自动完成:检测架构 → 下载最新 release 二进制 → 交互式输入配置 → 生成并启动 systemd 守护进程。

交互式配置项(直接回车使用默认值):

配置项 默认值 说明
安装目录 /opt/lemon-ipw 二进制与工作目录
监听端口 8080 后端 HTTP 端口
单栈模式 双栈 SINGLE_STACK,ipv4 / ipv6 / 留空
access-token 留空 留空 = 不启用鉴权
DNS 服务器 留空 主从逗号分隔(如 119.28.28.28:53,223.5.5.5:53);留空 = 启动时自动探测系统 DNS
DNSSEC 专用 DNS 留空 留空 = 沿用 dns-server;都留空 = 自动探测系统 DNS
IP 数据库 Y 首次启动下载约 450MB
CORS 留空 逗号分隔允许来源
远端配置地址 留空 REMOTE_CONFIG_URL
WS 通道接入 N 选 y 后输入 WS_URL / NODE_ID / NODE_KEY
其他环境变量 无 每行一个 K=V,空行结束。如需可信代理在此输入 TRUSTED_PROXIES=<IP/CIDR 逗号分隔>(配置后归属地接口只信任这些代理转发的 X-Forwarded-For,防伪造)

WS 通道接入规则(选 y 时):

  • WS_URL 留空自动使用默认值 wss://middleware-1.api-ipw.wsmdn.top/ws;填写自己的中间件地址须为完整路径(wss://host:8092/ws 形式);逗号分隔多个则同时连接全部(多活)
  • NODE_ID 强制自动生成 UUID(无需输入)
  • NODE_KEY 必填:不加 key 禁止启用 WS;安装完成后脚本会提示把 "<NODE_ID>": "<NODE_KEY>" 加入中间件 ws-keys

验证安装

systemctl status lemon-ipw        # 服务状态(active running)
curl http://127.0.0.1:8080/       # 应返回 {"status":"ok"}
journalctl -u lemon-ipw -f        # 实时日志

修改配置

sudo systemctl edit --full lemon-ipw   # 编辑环境变量
sudo systemctl daemon-reload && sudo systemctl restart lemon-ipw

下一步