Appearance
How it works
When you install the Dataplicity agent on a Linux device, it establishes and maintains a secure HTTPS connection to the Dataplicity IoT Router.
When you connect to remote shell or reach a web service through a Wormhole URL, traffic is routed between the browser and device through Dataplicity.
Outbound connections
The agent initiates the Dataplicity connection from the device. The Dataplicity access path does not require an inbound internet route to Remote Shell, RDP, or a device-hosted web service. This means:
- No port forwarding on customer routers
- No inbound firewall exception for Dataplicity access
- Restricted networks can allowlist the documented outbound destinations
- Portable devices reconnect automatically when they move between networks
Traffic is routed over encrypted WebSocket connections. Availability still depends on the device's network path, DNS, time configuration, and permitted outbound traffic.
Components
| Component | Role |
|---|---|
| Agent | Software installed on each Linux device. Maintains the outbound connection and handles remote access requests. |
| IoT Router | Dataplicity service that routes connections between your browser and devices. |
| Dashboard | Web interface for device list, remote shell, fleet management, logs, and monitors. |
| Wormhole | Persistent outbound tunnel to a web service running on the device. |
| File retrieval | Resilient transfer for support artifacts. |
What this means in practice
You can access devices when the agent has a viable, authorised route to Dataplicity. NAT and dynamic public addressing do not require a per-device inbound rule because the agent connects outward.
This is the same model whether you are validating one development device or managing hundreds of embedded Linux devices in customer facilities.
Related pages
- Security model - authentication, permissions, and production recommendations
- Firewall requirements - URLs and ports the agent needs
- Remote access - shell, Wormhole, and file retrieval
- Port forwarding compared - how this differs from traditional SSH setup