Repository navigation
v1.6.21
What's Changed
fix(sync): Xray version changes and config syncs no longer roll back on a fresh cc-agent
A config sync restarts cc-agent and then asks it to restart Xray. systemd reports the agent as running before it starts listening on its port, so the restart request could hit a closed port (ECONNREFUSED). The panel treated this as a failed Xray restart: it rolled the config back, and an Xray version change rolled the core back too. The result was Node configuration synchronization failed, and the outcome depended on timing, so some nodes updated and others did not.
- The panel waits until the agent is reachable before restarting Xray. It polls the agent's
/healthendpoint from the panel side for up to 8 seconds and sends the restart request exactly once. When the agent is already up, this adds one quick request. - The real reason is shown. A failed Xray version change now reports why the sync failed, for example
Node configuration synchronization failed: Xray restart failed: cc-agent not reachable within 8s (ECONNREFUSED); cc-agent is not listening on port 62080 on the node, instead of only the generic message. When the agent cannot be reached, the panel checks over SSH whether the agent's port is open on the node, which tells a stopped agent apart from a firewall or routing problem. - One node no longer blocks the others. The limit on Xray version changes is now 3 attempts per node every 10 minutes, plus 15 attempts per admin across all nodes. Before, 3 attempts were shared by every node. A rate-limited request now shows a readable message instead of a JSON parse error.
The fix is panel-side only; the agents on the nodes do not need to be updated.
CC Agent binaries
Lightweight Go agent for managing Xray on nodes.
Downloaded automatically during node auto-setup from the panel.
| File | Architecture |
|---|---|
cc-agent-linux-amd64 |
x86_64 (most VPS) |
cc-agent-linux-arm64 |
ARM64 |
Celerity Probe binaries
External diagnostic probe. Installed by the operator on their own
host; holds only client subscription credentials and no node access.
The install command with a single-use token is generated in the panel.
| File | Platform |
|---|---|
celerity-probe-linux-amd64 |
Linux x86_64 |
celerity-probe-linux-arm64 |
Linux ARM64 |
celerity-probe-linux-mipsle |
OpenWRT MIPS little-endian (ramips, mt7621) |
celerity-probe-linux-mips |
OpenWRT MIPS big-endian (ath79) |
celerity-probe-darwin-amd64 |
macOS Intel |
celerity-probe-darwin-arm64 |
macOS Apple Silicon |
celerity-probe-windows-amd64.exe |
Windows x86_64 |
celerity-probe-windows-arm64.exe |
Windows ARM64 |
Panel source code is distributed via Docker Hub:
clickdevtech/hysteria-panel
Full Changelog: v1.6.20...v1.6.21