Skip to content

v1.6.21

Choose a tag to compare

@github-actions github-actions released this 02 Nov 10:11
· 24 commits to main since this release

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 /health endpoint 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