# Proxies.sx Peer:Linux x86-64 无界面独立安装包 更新日期:2026-10-06。当前 Linux x86-64 安装包版本:1.6.8。 Go 1.6.8 会把最近一次通过身份验证的服务端 relay 分配保留在现有故障切换列表中,并将接受的重定向原子保存到原 state 文件。分配的备用 relay 短暂不可用后,重试仍可返回该 relay;重启 SDK 后也会保留已保存的分配。手动固定 relay、有效连接保护、过时重定向检查、目标安全检查、Retry-After 和指数退避保持不变。默认每台设备 1 个连接,显式 WS_CONNECTIONS 或 -connections 设置会保留。请先升级一台已停止的设备,保留原 key、设备名、配置和 state。此版本不会自动升级现有设备,也不代表服务器故障已修复或设备已有收益。心跳、重连和健康探测不是付费客户流量。 请使用本说明替代旧版安装及大规模部署说明。 当前连接事件(10 月 3 日):原 EU 和 US SDK relay 在负载下存在间歇连接失败,注册成功后 WebSocket 仍可能超时。此客户端更新不代表服务端已经恢复。请保留原 key、设备名和 state,不要反复重装或重启整个设备群;向支持提供一台设备 ID、版本及 UTC 错误时间,不要发送密钥。 ## 1. 准备 - 在 https://farmer.proxies.sx 登录,确认 Partner Agreement 的真实主体和设备授权/知情同意方式与实际部署一致。已有账户不需要重复注册。 - 在 https://farmer.proxies.sx/api-keys?purpose=sdk 创建或使用有效的 SDK / device API key。不要把 key、token、state 文件发到群里。 - 本包适用于 Linux x86-64 / amd64,是纯命令行程序,没有 UI。设备上不需要 Go、Node.js、Docker 或编译器。 - 自动安装需要 systemd 235+ 和 sudo;系统需有 CA 证书及正常的 DNS、出站 HTTPS/WebSocket/TCP 网络。无需给 SDK 开入站端口。 ## 必填的设备来源申报 请在 https://farmer.proxies.sx/settings#peer-source 如实填写:设备所有者、运营公司及上游供应商,App/包名及安装分发渠道,国家和实际网络类型,开始流量前的明确知情授权,以及暂停、撤回同意和卸载流程。可以用中文填写,来源或流程变化后请更新。 “已提交申报”不等于身份/企业或用户同意已获独立核验。安全身份/企业核验流程正在准备;不要在此或邮件中提交身份证件、证件号码、用户清单、密钥或出口 IP。本次来源信息收集不会自动新增注册拦截,也不会修改已有签署协议。 ## 2. 先安装一台 ```bash mkdir -p proxies-peer-install && cd proxies-peer-install curl -fLO https://agents.proxies.sx/peer/releases/1.6.8/proxies-peer-linux-amd64.tar.gz curl -fLO https://agents.proxies.sx/peer/releases/1.6.8/SHA256SUMS sha256sum -c SHA256SUMS tar -xzf proxies-peer-linux-amd64.tar.gz cd proxies-peer-linux-amd64 sudo bash install.sh ``` 看到校验 `OK` 后再安装。安装程序会提示输入 SDK key,输入不回显,不需要将 key 写进命令行。 安装程序会创建一次固定设备名,配置保存在 `/etc/proxies-peer/peer.env`(仅 root 可读,0600);身份保存在 `/var/lib/proxies-peer/state.json`。服务以非 root 身份运行,开机启动,失败后间隔重试。请持久化这两处文件,不要把已配置的设备名或 state 复制到其他设备。 ```bash /usr/local/bin/proxies-peer -version sudo systemctl status proxies-peer --no-pager sudo journalctl -u proxies-peer -n 40 --no-pager ``` 启动可能随机等待最多 30 秒。日志应出现 `REGISTERED` 或 `RESUMED`,随后 `CONNECTED`、`ACK`。relay 域名可能因地区不同,不要求固定为某个域名。 如果没有 systemd,可直接运行包里的 `proxies-peer`,由你们现有的进程管理器管理;环境变量、持久化、容器和升级说明见 https://agents.proxies.sx/peer/go/install.md 。不要在不运行 systemd 的容器里执行该安装脚本。 ## 3. 本次更新修正 - Go 1.6.8 在真正建立 TCP 连接之前检查设备 DNS 解析后的 IPv4 地址,拒绝内网、回环、链路本地、CGNAT、基准测试及组播/保留地址。仅支持公开 IPv4 目标,不支持仅 IPv6 的目标。注册、身份和 relay 协议不变;这不是设备可路由数量、收益或目标成功率的保证。 - Go 1.6.3 收到 relay 重定向时,会保留已经连接到目标 relay 的连接及其隧道,只关闭其他 relay 的连接;并发重定向也受同一个 60 秒防抖限制。显式指定 relay 和允许域名限制保持不变。请先升级一台已停止的设备并验证。 - Go 1.6.2 修复了目标 TCP 写入阻塞时连带阻塞 relay WebSocket 读取和控制 PONG 的问题。目标写入仍按顺序执行,待写数据有上限,单次写入截止时间为 15 秒;超限或卡住时关闭该目标,不主动断开其他隧道。正常 FIN 会先排空待写数据,连接确认失败会清理该目标。 - 这是客户端稳定性修复,不是大规模并发、目标可用率或收益承诺;注册、原有身份和 relay 协议格式不变。发布安装包不会自动升级已运行的设备。 - Go 1.6.1 新增注册启动分散 `REGISTER_JITTER_MS`、有次数上限的临时失败重试,并处理 `Retry-After`。旧 Go 1.6.0 没有这些注册控制。 - 身份文件使用原子写入和 0600 权限,写入失败会明确报错。重启必须继续使用同一个 key、设备名和 state。 - 安装包默认每设备 1 个 WebSocket,适合初始测试;Go SDK 单独运行也默认 1;显式配置不变,默认上限 5,硬上限 6。不要直接给全量设备增加连接数。 - 旧说明中的“每个 IP 大约 50 个 socket”不能作为现行容量依据。共享出口/NAT 下的不同设备不等于不同 IP;多个进程也不会自动分别使用不同的 modem。 - `online + verified` 只是一个检查点,不代表已 listed、可路由、有客户流量或已产生收入。验证和质量探测是不同队列,不承诺固定时间或“5 次测试后必定通过”。 ## 4. 放量和验收 先 1 台,再小批量测试,通过后逐步推进双方约定的 5,000 台试点。暂不一次性启动 5,000、50,000 或更多设备;请先协调注册节奏和观察窗口。启动随机延迟不能替代集中限速。 每阶段检查: - 设备名和身份唯一,重启后 device ID 不变; - 实际出口国家、网络类型、在线率、验证与 listing 状态; - 真实客户隧道成功、重连/token 刷新正常、流量计量正确; - API/relay 资源有余量,没有持续 429/5xx 或异常断连。 截至本次检查,生产路由吞吐门槛为 500 KB/s,另有质量、国家、同意授权和账户等检查;以服务端当前规则及返回的 `throughputContract` 为准,不为设备数量降低这些要求。注册防洪配置为每个注册 key 总量约 200,000、未验证且从未服务流量的设备约 20,000;这不是并发承载保证,也不能通过多建 key 绕过。 真实出口才决定 mobile/residential 分类,操作系统是 Linux 或 Android 不等于移动网络。客户侧路由测试使用单独的代理凭证,不能拿 SDK key 当代理密码;可协调现有余额或支持安排的测试,不需要仅为证明程序启动而新买套餐。 出现持续 401/403 请先停止重复启动,核对 key、账户及协议状态。出现 429 按退避等待,不要批量重建身份。 ## 从最新源码编译(Linux x86-64) 编译机请使用仍受支持的 Go 编译器。以下命令创建全新目录,避免误用原目录内的旧文件;下载当前 1.6.8 源码、校验三个文件,再编译独立程序。设备上不需要 Go。 ```bash set -eu build_dir="$(mktemp -d)" cd "$build_dir" curl -fL -H 'Cache-Control: no-cache' -o reference-sdk.go 'https://agents.proxies.sx/peer/releases/1.6.8/reference-sdk.go' curl -fL -H 'Cache-Control: no-cache' -o go.mod 'https://agents.proxies.sx/peer/releases/1.6.8/go.mod' curl -fL -H 'Cache-Control: no-cache' -o go.sum 'https://agents.proxies.sx/peer/releases/1.6.8/go.sum' sha256sum -c <<'SHA256SUMS' d18b26f4180fb73c9e1c7edcf8c764921132d967066d9e364824b1692a957ae6 reference-sdk.go f9bce7d0fa8c432f56c968e117ec09dd9a5896b88866fccc4b11437453e62110 go.mod 1737d5523b7264df09b253e86e29f96af295a7bd18e0aaa4373c6099317e065f go.sum SHA256SUMS go mod download go mod verify CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -o proxies-peer reference-sdk.go ./proxies-peer -version ``` 最后必须显示 `proxies-peer 1.6.8` 才能安装;`-version` 只输出版本,不会注册设备。以上源码和安装包均保存在不可变的 1.6.8 版本目录中,也不会自动升级已安装程序。若任一校验失败,请停止并核对最新说明,不要继续编译旧文件。在 macOS 等系统交叉编译时,最后的版本检查须在 Linux x86-64 目标设备上执行。 若原设备仍显示 1.6.2,仅下载源码不会更新正在运行的程序。按下面的升级说明先停止一台设备,再替换程序,保留原 key、设备名和 state。安装后执行 `/usr/local/bin/proxies-peer -version`;自定义服务请核对其实际可执行文件路径。上面的官方安装包仍可直接使用,无需自行编译。 ### 注册报 HTTP 403:怎样查账户和协议 自己编译官方 `reference-sdk.go` 是支持的。源码编译版和官方二进制使用相同的注册接口及账户检查;更换二进制不能解除服务端账户限制。 即使 SDK key 正确,所属账户被暂停、缺少当前 Partner Agreement 或触发设备总量上限,都可能返回 403。能登录后台不等于设备注册一定已启用。当前 Go 客户端只显示 HTTP 状态,没有显示服务端具体拒绝原因,不能仅凭“403”断定 key 错误。 1. 用创建该 key 的同一账户登录 https://farmer.proxies.sx ,在 **API Keys** 检查原 key 是否有效,在 **Partner Agreement** 查看当前协议是否已签署。 2. 请支持人员核验后台的设备注册权限。提供账户邮箱、key 的**名称**、一台固定设备名、SDK 版本和 UTC 报错时间即可;不要发送完整 key、token 或 state 文件。账户暂停需要我们这边核查,反复编译或创建新 key 不能解决。 3. 支持确认解除限制后,仅重试一台设备,保留原 key、设备名和 state。看到 `REGISTERED` 或 `RESUMED`,再看到 `CONNECTED`、`ACK` 后,才继续小批量验收。 排查 403 时不要删 state、随机换设备名或启动全量设备。401 与 429 是不同的错误;429 继续按退避规则处理。 ## 5. 停止、升级及反馈 ```bash sudo systemctl disable --now proxies-peer ``` 升级时先下载、校验并解压 1.6.8,运行解压目录内的 `./proxies-peer -version` 确认版本。安排一台设备的维护窗口,在该解压目录执行: ```bash sudo systemctl stop proxies-peer sudo bash install.sh /usr/local/bin/proxies-peer -version sudo journalctl -u proxies-peer -n 40 --no-pager ``` 必须保留原 `/etc/proxies-peer/peer.env` 和 `/var/lib/proxies-peer/state.json`,不要删除、更换或复制 key、设备名、state。确认原 device ID 恢复且出现 ACK 后,再升级小批设备。自己编译的设备请下载匹配源码、`go.mod` 和 `go.sum`,重新编译,停进程后替换程序。 停止会断开该设备的当前隧道;通常保留配置和 state,以便恢复。已有服务运行时,安装程序不会直接覆盖,请安排该设备维护窗口后再升级。永久删除时,先停进程,再删除后台设备,最后按你们的数据保留规则处理本地密钥和 state。不要为了删除一台设备撤销全量共用的 key。 请提供:Linux 发行版/版本、`uname -m`、是否使用 systemd/容器、SDK 版本、一台测试设备名/ID、UTC 时间和脱敏错误日志。不要提供密钥或 state。 文档: https://agents.proxies.sx/peer/go/ 支持: maya@proxies.sx