Skip to Content
DocsTroubleshootingConnection issues

Connection issues

When cmdop status says Unreachable, the agent is running fine and the relay address is what did not answer — so check the address before the network. A bare host means plaintext LAN ports; a public or own-domain relay needs its full https:// URL. Remote terminal attach is separate: it requires the target to sit behind a public or own-domain relay.

Start with the verdict and the logs on the machine that is not connecting:

cmdop status cmdop logs -f

If status says Unreachable, the agent is running and the relay address did not answer. Work through the address first — it is the usual cause.

The relay’s addresses

A relay in LAN mode listens on HTTP 63141 and gRPC 63142. A bare host in a Cmdop address resolves to that pair:

You wroteHTTP basegRPC dialTLS
192.168.1.50http://192.168.1.50:63141192.168.1.50:63142no
192.168.1.50:9000http://192.168.1.50:9000192.168.1.50:63142no
https://relay.example.comhttps://relay.example.comrelay.example.com:443yes

Public and own-domain relays terminate TLS at their own door on 443, so a bare host is the wrong form for them — give the full https:// URL.

Common causes

SymptomWhat to do
A bare host resolves to the wrong placeYou are probably behind a proxy or a non-default layout. Give an explicit https:// URL instead of a bare host.
A plaintext LAN relay refuses the connectionJoin with --insecure. Authenticated plaintext is acceptable only on loopback or a private network.
A public host over http:// is refusedUse https://. Public and own-domain doors do not accept plaintext.
cmdop remotes add fails its health probeThe relay is not up, or a firewall blocks it. Start it, open the port, or stage the entry with --no-check.
Works on the relay host, not from another machineThe LAN listeners are bound to loopback or blocked. Bind and firewall them for the private network, and use the host’s reachable private address.
Authentication fails right after switching relaysCredentials are per relay — join against the new one. See Joining and access issues.

Do not expose the LAN listeners directly to the internet. If you need reach from outside the network, that is what the public and own_domain relay modes are for — see Self-hosted relay.

Attaching to a remote machine

cmdop connect <machine> needs the target to be online and behind a relay with a public or own-domain door. The command asks for that relay’s admin password and, when armed, the target machine’s connection PIN.

LAN-only machines are not remotely attachable. That is a property of the relay’s reachability mode, not a fault — decide it when you create the relay.

The no-argument picker lists only other online machines. It hides this machine and any coordinator members, because those are chat targets rather than attachable terminals. Naming a host explicitly still resolves exactly, even if that host is offline.

cmdop connect exec is narrower: it runs against this host’s own relay. Use an attached session for a machine you reach through a public relay edge.

Common questions

Why does cmdop status say Unreachable?

The agent process is running, but the relay address did not answer. Check the address first: LAN relays use plaintext private-network addresses, while public or own-domain relays need their full https:// URL.

Why can the console reach a machine but terminal attach cannot?

Console reach and remote terminal attach use different reachability requirements. The console can route to any online joined machine through the relay, but terminal attach also needs the target’s own public or own-domain relay door and its authentication.

Do I need port forwarding for a joined machine?

No. A normal joined machine dials out to its relay. Port binding decisions apply to the relay door you choose to operate, not to every agent machine in the fleet.

Last updated on