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
3.5 KiB
3.5 KiB
快速开始
本章节将指导您以最低成本部署一个功能完整的测试站
尝试一下
我们的开发团队已经部署了一个功能完整的预览站: 预览站点
前置准备
- 一台 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