macchina.io REMOTE Device Agent (WebTunnelAgent)
The WebTunnelAgent program is used to connect a device to the macchina.io REMOTE.
WebTunnelAgent is a native program written in C++ which can run on directly the device, or on a separate computer or network device (Windows, macOS, Raspberry Pi, OpenWRT router, etc)
in the same network.
WebTunnelAgent requires a configuration file (typically named WebTunnelAgent.properties) which can be generated in the macchina.io REMOTE web application.
Windows
WebTunnelAgent.exe is a stand-alone (statically linked) 64-bit executable that can run as is (no installation required).
Note: The WebTunnelAgent.exe executable has been signed with Applied Informatics' code signing certificate.
Run WebTunnelAgent
WebTunnelAgent /config=path\to\WebTunnelAgent.properties
macOS
Install with Homebrew
The easiest way to install the device agent and client tools on macOS is with the Homebrew package manager.
Note that this requires that you have Homebrew and Xcode Command Line Tools installed on your Mac.
brew install my-devices/tap/macchina-remote-tools
Run WebTunnelAgent
WebTunnelAgent -c path/to/WebTunnelAgent.properties
Pre-Built Binaries
If you cannot use Homebrew, you can download pre-built binaries.
On macOS Big Sur, Monterey and Ventura, the WebTunnelAgent.gz file should be downloaded via the Terminal (shell) using the curl command. If the file is downloaded with a web browser, the executable won't run due to security restrictions (Gatekeeper). The following commands will download and extract the WebTunnelAgent executable:
Intel:
curl https://macchina.io/downloads/RemoteManager/SDK/macos/monterey/x86_64/WebTunnelAgent.gz | gunzip >WebTunnelAgent && chmod +x WebTunnelAgent
Apple Silicon:
curl https://macchina.io/downloads/RemoteManager/SDK/macos/monterey/arm64/WebTunnelAgent.gz | gunzip >WebTunnelAgent && chmod +x WebTunnelAgent
If you have downloaded the file via a browser, you can use the following command to unquarantine it:
xattr -d com.apple.quarantine WebTunnelAgent
On an Apple Silicon Mac, do not copy the executables to /usr/local/bin, as macOS on Apple Silicon will refuse to run unsigned executables from that location. Run from your home directory or a directory like /opt/local/bin.
Linux
Install from Source
The easiest way to install WebTunnelAgent and the client tools is via our installer script with the following command:
curl https://raw.githubusercontent.com/my-devices/agent-installer/master/install.sh | bash
The script should work on most Debian and RedHat-based Linux distributions including Ubuntu and Raspberry Pi OS.
The script will install all required dependencies, then get the sources from GitHub and run the steps necessary
to build and install the binaries in /usr/local/bin/.
Run WebTunnelAgent
WebTunnelAgent -c path/to/WebTunnelAgent.properties
Pre-Built Binaries
Pre-built binaries for various Linux distributions can be found below.
The WebTunnelAgent executable must be extracted from the gzip-compressed file with:
gunzip WebTunnelAgent.gz
OpenWRT Packages
Meta data and instructions for building OpenWRT packages of the device agent for various OpenWRT targets with Docker can be found on GitHub.
Yocto Layer
Meta data and instructions for building Yocto packages of the device agent can be found on GitHub.
Docker
A Docker image containing WebTunnelAgent is available on Docker Hub for multiple platforms (x86_64, arm32v7, arm64).
Run WebTunnelAgent
The following command can be used to run WebTunnelAgent in a Docker container.
Note that WEBTUNNEL_DOMAIN, WEBTUNNEL_DEVICE_ID and WEBTUNNEL_HTTP_PORT must
be set according to your account.
docker run \
-e WEBTUNNEL_DOMAIN=eac8b99b-1866-4ef4-8f57-76b655949c29 \
-e WEBTUNNEL_DEVICE_ID=6e26e894-10a2-48bf-80f1-65a48527c80e \
-e WEBTUNNEL_HTTP_PORT=8080 \
-e WEBTUNNEL_SSH_PORT=22 \
macchina/device-agent
Please see the project on GitHub for more information.
Build from Source
The macchina.io REMOTE SDK (formerly my-devices.net SDK) is available from GitHub.
The SDK can be built for various platforms, including Linux (desktop/server or embedded), Windows, and macOS. CMake is required to build the SDK and the included programs WebTunnelAgent, remote-client, remote-ssh, remote-scp, remote-sftp, remote-vnc and remote-rdp. Please see the included README.md for instructions how to build.
The macchina.io REMOTE SDK is open source, based on the POCO C++ Libraries and licensed under the Boost Software License 1.0.
Downloads (Pre-Built Binaries)
Validating the Integrity of Downloads
SHA-256 hashes for all files, signed with our PGP key, are available alongside the files.
macchina.io REMOTE Helper
macchina.io REMOTE Helper is a native Windows desktop application that integrates with the macchina.io REMOTE web user interface in the browser and allows you to launch an external secure shell (SSH), secure file transfer (SFTP), or remote desktop (RDP or VNC) client directly from the macchina.io REMOTE web user interface.
macchina.io REMOTE Command-Line Client Tools
The macchina.io REMOTE SDK includes a number of command-line clients for starting SSH (Secure Shell), SCP (Secure Copy), SFTP (Secure File-Transfer Protocol), RDP (Remote Desktop Protocol) or VNC (Virtual Network Computing) sessions, or for tunneling arbitrary TCP ports between a client machine and the remote device.
- remote-client : This executable can run on a client machine (Windows, macOS or Linux) to create a secure tunnel from the client machine to the remote device, via macchina.io REMOTE. It is required for tunneling TCP-based protocols not directly supported by macchina.io REMOTE, such Modbus/TCP, OPC-UA, or application-specific protocols.
- remote-ssh : This is a variant of remote-client that first creates a tunnel connection from your local machine (Windows, macOS or Linux) to the remote device, then launches a SSH client using that tunnel connection.
- remote-scp : This is a variant of remote-client that first creates a tunnel connection from your local machine (Windows, macOS or Linux) to the remote device, then launches a SCP (Secure/SSH File Copy) client using that tunnel connection.
- remote-sftp : This is a variant of remote-client that first creates a tunnel connection from your local machine (Windows, macOS or Linux) to the remote device, then launches a SFTP (Secure/SSH File Transfer Protocol) client using that tunnel connection.
- remote-vnc : This is a variant of remote-client that first creates a tunnel connection from your local machine (Windows, macOS or Linux) to a remote device running a VNC (Virtual Network Computing) server, then launches a VNC remote desktop client using that tunnel connection.
- remote-rdp : This is a variant of remote-client that first creates a tunnel connection from your local machine (Windows, macOS) to a remote Windows device (which must have the remote desktop feature enabled), then launches a Microsoft Remote Desktop (RDP) client using that tunnel connection.
Client Executables
macchina.io REMOTE command-line client executables for Windows, Linux and macOS are available for download.