Linux USB Server

The VirtualHere USB Server shares USB devices over the network. The server runs entirely in userspace, therefore it is inherently more stable than kernel based solutions. VirtualHere was the first company to create this entirely userspace USB server. No compilation or kernel modules are required, and now VirtualHere has innovated again! The server is entirely statically complied, no linux run-time libraries are required at all on the server! The server can be run as a console only daemon, for easy integration into run-level scripts. Diagnostic messages are output to syslog.

VirtualHere is perfect for OEM integration because:

  • Bring your own device - turn any linux based device into a USB Server! E.g raspberry pi, pi2, desktop, router, switch, android phone, blade server or your custom pcb! You choose the most cost effective and suitable hardware for your use.
  • The server is entirely userspace - this is much more stable and easy to update than kernel based solutions. Running in userspace means that any server problems do not crash the entire server device.
  • The server is entirely self-contained, and will run on any version of the Linux Kernel (including Android), and on any architecture! This makes OEM deployment trival, nothing else is required on the server device besides the basic linux kernel.
  • All settings are stored in a simple text file auto-generated with sensible defaults - no complicated registry settings
  • Very competitive per unit cost
  • Active product development and frequent fixes/improvements/updates
  • Server can share up to 122 devices up to 5 hubs deep
  • Allows fine-grained authentication using simple bash scripting. Easily create or connect to your existing authentication backend
  • Supports Secure Sockets Layer (SSL) for better protection from eavesdroppers when sharing over the Internet
  • Easily work around device quirks though simple scripting
  • Uses the open Bonjour protocol to broadcast its services on the network, this allows clients to auto-find servers
  • All USB communications take place on a single TCP port (7575) making it very easy to setup firewall and remote access
  • IPV6 support
  • The client can run as a service and is controllable via an easy to use API that anyone can use
  • The client is a single executable file with no dependencies and can be run immediately with no pre installation required
  • Runs on Android without root!
  • Can be custom compiled for your specific CPU architecture

Installation is simple, figure out the architecture of your server device (for example x86_64), then on the linux server device:

  1. wget (e.g x86_64, see list below)
  2. chmod +x ./vhusbdx86_64 (to make that file executable)
  3. sudo ./vhusbdx86_64 -b (to run it in the background)
  4. Plug USB devices to share into your server and run the Client on the remote machines

See FAQ here

VirtualHere will run on any edition of linux including Scientific Linux, Ubuntu, CentOS, RedHat, OpenSuse, Angstrom, Android, Raspbian, Debian, OpenWRT....

The trial version of the server will allow you to share 1 device without time restrictions using one of the Generic builds below. To share more devices, resell VirtualHere on your own device, or use a CPU optimized build of VirtualHere please purchase a license

Version 2.5.2 (Changes) (SHA1SUM)

Generic VirtualHere USB Server Builds.

The Generic builds allow the sharing of one USB device in trial mode. They have no specific CPU optimizations and are good for general use

CPU optimized builds of VirtualHere USB Server for Maximum Performance on your hardware

These builds are for pro users and are optimized for a specific CPU. If you own a license to VirtualHere already you can use the same license with these builds below. If you don't yet own a license please purchase one

If you dont see your CPU architecture here, contact for a custom build

The server is also available on Google Play for Android or directly from here

Dont forget to download the client