The remote operation grows in popularity with every passing day, so it’s essential to put together the right toolset to ensure a safe and smooth workflow. And on macOS, of all operating systems, extending USB via Ethernet can be tricky, especially for USB peripherals that are no dongles or storage devices.
In this article, we’re going to have a good and proper look at the easiest and most convenient method of sharing USB devices over any network via specifically developed extension software. Plus, we'll discuss the most common issues you can face while sharing a USB through Ethernet and how to address them.
When you think about a USB extender, the very first thing probably coming to your mind will be a hardware device, like a USB hub, or some other USB to Ethernet adapter with a few USB ports on one side and a long LAN cable (preferably Cat6 one) on another.
The truth is, with modern extension software, e.g., UNG or FlexiHub, you can share as many dongle keys, webcams, and other USB devices as you need across your network, and that doesn’t have to be a pricey Cat6 to achieve 100 Mbps data transfer speed.
Plus, PlexiHub doesn’t split bandwidth between its ports like any hardware hub does. That means you can extend several hi-speed devices like scanners or security cameras in parallel without any notable drop in their performance. This feature will be of particular assistance for remote tech support and mass firmware upgrades.
And the advanced encryption algorithm of the app will make sure all connections are one hundred percent safe, so you can use FlexiHub for your license USB dongle keys, too, with zero risks of having them hacked or blocked. Also, you will have no compatibility issues connecting to other platforms and won't have to install device drivers on client-side machines.
Note: This method can help you to extend USB over Ethernet in OSX of any version, and also in Windows (including Win 10), Linux (Ubuntu), and Android.
In a couple of seconds (maybe faster), you’ll see the remote peripheral in your machine’s device manager and will be able to use all its features like if it was physically connected to your machine’s USB port.
Pretty soon, you’ll find out that FlexiHub is not just a very easy-to-use USB-Ethernet connector but has a very high bandwidth too. In order to ensure maximum connection speed during your FlexiHub sessions, you’ll need to check if the app’s connection priority is set up in this order: direct connection → RDP connection → UDP connection → Tunnel Server connection.
In this way, you’ll be able to use any type of USB device, including the most latency-sensitive ones, over any distance without any noticeable lag, even if you don’t have a high-speed 100 Mbps network. But for the high-speed direct connection to work, both server and client machines must have a public IP address, be in the same network, and not hidden behind a NAT or some third-party firewall.
In some rare cases, after you’ve installed FlexiHub on High Sierra 10.13 version (or newer ones) and launched the app for the first time, you may see this message:
This situation mainly happens because FlexyHub is an advanced professional-grade app that contains multiple third-party kernel extensions (KEXTs). And all of those KEXTs must be manually approved by the machine’s user, or else they won’t be even downloaded, let alone installed or used.
To fix this minor nuisance once and for all, open your machine’s System Preferences and choose Security & Privacy. Now, at the very bottom of the General tab, find the message saying ‘System software from developer Electronic Team was block from loading.’ Click the Allow button next to this message, and the required FlexiHub’s kernel extensions will be automatically downloaded and install. You’ll be able to use the app whenever you need to extend a USB peripheral across your network or use some device attached to a remote PC with no error messages popping up.
In any case, it’s good to have the debug logs in hand, so you can check them and see what the problem is. To enable ten, open the Terminal and execute these commands:
sudo defaults write /Library/Preferences/us.electronic.flexihub.plist daemon_log_level 4
sudo defaults write /Library/Preferences/us.electronic.flexihub.plist eveusb_log_level 4
sudo defaults write /Library/Preferences/us.electronic.flexihub.plist eveusb_log_trace_urb 1
sudo launchctl unload -w /Library/LaunchDaemons/us.electronic.flexihub.daemon.plist
sudo launchctl load -w /Library/LaunchDaemons/us.electronic.flexihub.daemon.plist