历史部署记录。 本文讨论 2022 年第三方 AltServer-Linux 的配对、网络与服务组织。官方 AltServer 面向 macOS/Windows;Linux 方案对当前 iOS、Apple 登录和签名流程的兼容性,需要按具体版本与设备验证。
一、先区分几个组件
AltStore Classic 通过 AltServer 安装和刷新签名。免费开发者账号的应用通常需要在 7 天内刷新,后台刷新还依赖设备能发现和连接服务,不是运行一台服务器就获得永久证书。AltStore Classic 官方说明
官方 AltServer 文档与第三方 AltServer-Linux属于不同来源。alt-anisette-server 提供登录所需的一部分数据,usbmuxd / netmuxd 负责设备通信。替换一个组件不会自动修复其余环节。
二、当年的部署和配对过程
当时的 Debian/Ubuntu 环境使用了以下依赖:
sudo apt install usbmuxd libimobiledevice-utils curl
包名、静态二进制的依赖和架构可能随发行版变化。按服务器架构选择 AltServer-Linux 发布文件,核对来源和完整性,不能以一键脚本的退出状态证明兼容。
首次 USB 连接,在 iPhone 上确认信任。用 idevice_id -l 和 idevicepair validate 检查设备是否被发现和配对;需要重新配对时才使用 idevicepair pair,保留具体报错再判断。


当时通过 shell 菜单完成安装,出现 successfully installed 后仍应在设备上打开应用确认:

这不是当前系统版本实测的证明;虚拟机或软路由还要单独验证 USB 直通和权限。
三、Anisette 与 Wi-Fi 刷新
旧 alt-anisette-server使用 6969 端口。继续试验时,应记录核实过的镜像版本,并将宿主机映射限制到回环地址:
docker run -d --name anisette --restart unless-stopped -p 127.0.0.1:6969:6969 nyamisty/alt_anisette_server
export ALTSERVER_ANISETTE_SERVER=http://127.0.0.1:6969
这是旧项目的入口,不保证解决现在所有 Apple 登录错误。当前 AltServer-Linux README说明不带安装参数运行 ./AltServer 即服务模式,-d 是 debug,不是 daemon。
该 README 的 Wi-Fi 路径要求先运行支持网络设备的 netmuxd,并处理与 usbmuxd 的冲突。netmuxd的当前实现与早期版本已有变化,应依据自己版本的 --help 和日志核对 socket、设备权限及发现机制,不无条件停止其他应用正在使用的 usbmuxd。
USB 安装成功后,实际断开 USB,测试设备发现、手动刷新和到期日期变化,再验证后台刷新。相同 Wi-Fi、服务在运行、曾经配对都只是条件,不是成功结果。
四、组织 systemd 服务
旧单元在 ExecStartPre 中后台启动 netmuxd;systemd 会清理这个步骤派生的子进程,不适合用它维持另一个长期服务。旧 ExecStart 混入 nohup,ExecStop 又依赖 shell 连接符和按名称结束进程,既不能按预期执行,也可能影响其他实例。systemd.service 手册
先按所用版本独立配置并验证 netmuxd.service,确认 anisette 服务可访问。将核验过的二进制安装到 /opt/altserver/AltServer,准备 altserver 服务用户及其对配对记录、socket 的访问权限。在这些前提下,AltServer 单元模板为:
[Unit]
Description=AltServer Linux
Wants=network-online.target
After=network-online.target netmuxd.service
Requires=netmuxd.service
[Service]
Type=simple
User=altserver
WorkingDirectory=/opt/altserver
Environment=ALTSERVER_ANISETTE_SERVER=http://127.0.0.1:6969
ExecStart=/opt/altserver/AltServer
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
此模板要求实际二进制以前台进程持续运行。如果版本 fork 到后台,应按行为调整服务类型,不能因为项目称它 daemon 就直接用 Type=forking。Apple 密码不放进 unit 命令或环境变量。
保存后先校验、启动和读取日志:
sudo systemd-analyze verify /etc/systemd/system/altserver.service
sudo systemctl daemon-reload
sudo systemctl start altserver.service
sudo journalctl -u altserver.service -n 100
确认真实 USB 与 Wi-Fi 刷新成功后再 enable;active 状态不能证明签名已经刷新。本文没有在当前真实 iPhone 上执行签名、续签或服务单元测试。
五、按错误环节排查
设备未发现看连接、直通、网络发现和 socket;配对失败检查信任记录;Apple 登录错误核对账号、网络和 anisette;安装错误检查应用、账号限制和系统版本。旧截图没有证明所有故障都由 USB 引起,重复插拔不能替代具体诊断。
评论区