Forward a port from the VM

Reach a service running inside the guest from your host’s localhost.

./ztd tunnel -- 8080

This opens an SSH tunnel (-N -L 8080:localhost:8080) to the VM using its ephemeral key. Open http://localhost:8080 to hit the guest service. Stop the tunnel with Ctrl-C.

A different port

The port comes after -- (that’s how Task forwards CLI arguments):

./ztd tunnel -- 5432    # e.g. a Postgres running in the VM

Multiple ports at once

Run one tunnel per port in separate terminals, or open them in the background:

./ztd tunnel -- 8080 &
./ztd tunnel -- 5432 &

Why a tunnel rather than direct access?

On the local kvm backend the VM sits on the libvirt NAT network and is reachable directly at its IP — ./ztd ip prints it. The tunnel gives you a stable localhost address that works the same way across backends (including remote ones), so your workflow doesn’t change when you switch TARGET.