Network Access Tiers
The ROS 2 environment runs on the drone. You access it from your laptop, phone, or another machine. There are three ways to connect, depending on your network setup.Tier 1: LAN Direct
Best for: Bench testing, field work on the same WiFi, wired Ethernet. Connect directly to the drone’s Foxglove bridge:- Your computer and the drone must be on the same network
- Port 8766 must be reachable (the agent’s firewall allows this on private IP ranges)
- Open app.foxglove.dev
- Click “Open connection”
- Select “Foxglove WebSocket”
- Enter
ws://your-drone-ip:8766
Tier 2: Altnautica Cloud Relay
Best for: Remote access over the internet, 4G/5G cellular connections, accessing the drone from anywhere. When your drone is paired with Altnautica, the cloud relay exposes the Foxglove bridge through a Cloudflare Tunnel:- The agent runs a Cloudflare tunnel (already set up for video and telemetry relay)
- A new tunnel route maps
ros-{deviceId}.altnautica.comto the local Foxglove bridge on port 8766 - Short-lived JWT tokens gate access (only paired GCS sessions can connect)
- TLS is terminated at Cloudflare, so the connection is encrypted end-to-end
- Drone must be paired with Altnautica (via the GCS pairing flow)
- Drone must have an internet connection (WiFi, Ethernet, or 4G)
- No port forwarding or firewall changes needed on your side
Tier 3: Self-Hosted
Best for: Enterprise users, OEMs, or anyone who wants full control over the network path. If you don’t want to use the Altnautica cloud relay, you can set up your own tunnel. Six recipes are supported:Tailscale (recommended for simplicity)
Install Tailscale on both the drone and your laptop. Access via MagicDNS:WireGuard
Set up a WireGuard VPN between the drone and your network:ZeroTier
Similar to Tailscale but self-hostable. Join both devices to the same ZeroTier network and access via the assigned IP.Your own Cloudflare zone
If you have your own Cloudflare account, edit/etc/ados/cloudflared/config.yml on the drone to point to your zone:
SSH port forward (development only)
For quick testing, forward the port over SSH:ws://localhost:8766 from your laptop. Not recommended for production because it requires an active SSH session.
Bare port forward with nginx
If you have a public IP or VPS, set up nginx as a WebSocket reverse proxy with TLS:Switching tiers
From the GCS ROS tab Settings sub-view, select your network tier and enter the connection details. The Foxglove panel and topic subscriptions will reconnect automatically. From the CLI:Security notes
- Tier 1: No authentication by default on LAN. The agent’s firewall restricts port 8766 to private IP ranges (192.168.x.x, 10.x.x.x, 172.16-31.x.x).
- Tier 2: JWT tokens minted per session, short-lived (1 hour), only for paired devices.
- Tier 3: Security depends on your tunnel provider. Tailscale and WireGuard encrypt traffic by default. SSH is encrypted. Bare nginx should always use TLS.
- DDS/Zenoh is bound to loopback inside the container. ROS topic data does not leak over WiFi. All external access goes through the Foxglove bridge WebSocket.