In All Directions

In All Directions

Author(s):

This cool tool helps you exchange files and directories between computers with Linux, Mac OS, Windows, and Android.

There are many tools for exchanging data on heterogeneous local networks. NitroShare promises to make this task as easy as possible. In addition to Linux, NitroShare also supports Mac OS, Windows, and Android.

In this article, my test included a network of computers running Debian "Sid," Windows 10, Ubuntu, Ubuntu MATE, Fedora, and the Android app. Users with Debian Sid, Ubuntu, Fedora, Gentoo, and openSUSE will find the software in their respective repositories; for Arch Linux users, check out the AUR user archive. If necessary, compile the program for other distributions from the source code.

Qt5 as a Basis

Packages for Nautilus (Gnome), Nemo (Cinnamon), and Caja (MATE) are available for integration in file managers. Although NitroShare is based on the Qt5 framework, not all distributions have appropriate extensions. Packages for integration into Dolphin and Konqueror were only available for openSUSE as dolphin-plugin-nitroshare and for Fedora as nitroshare-kservice. Fedora also offers a plugin for use in the terminal.

The installation on Debian and Fedora is quickly done (Listing 1); the package itself is only 150KB with just one dependency on a small 40KB Qt web server. If you do not want to use the Personal Package Archive (PPA) in Ubuntu, use the same command as in Debian. For Windows, executables for 32- and 64-bit systems are available on the project's website [1], and a DMG package is available for Mac OS from version 10.8.

Listing 1

NitroShare Installation on Debian and Fedora

# Debian:
apt update
apt install nitroshare
# Fedora
sudo dnf install nitroshare
# Ubuntu-PPA:
sudo apt-add-repository ppa:george-edison55/nitroshare
sudo apt-get update
sudo apt-get install nitroshare
sudo apt install nitroshare-nautilus
# Arch from the AUR:
wget https://aur.archlinux.org/cgit/aur.git/snapshot/nitroshare.tar.gz
tar xf nitroshare.tar.gz
cd nitroshare
makepkg -sri

Immediately Ready for Operation

After installation and an initial start from the respective menu, the program is installed in the system tray (Figure 1). From there, it offers the exchange of files and directories with computers on the LAN on which the software is also installed. NitroShare automatically detects the corresponding devices and offers them as transfer targets.

Figure 1: NitroShare is located in the toolbar's system area under Debian.

The software is ready for use immediately after installation; no further configuration is required. In the Settings menu, you have the option of configuring a number of settings depending on your distribution and desktop (Figure 2 and Figure 3).

Figure 2: NitroShare offers more options in Settings under Debian than anywhere else.
Figure 3: Ubuntu MATE offers some options that aren't present in Debian.

Checking Auto start after login causes the program to launch whenever the system is booted. Automatic detection of other devices can take up to five minutes the first time. At the end of this phase, the tool displays a message with the results.

In the Settings dialog, you can also specify a name other than the hostname for each device and a default folder for downloads in the General tab. Under Advanced, you can change the port, buffer, time out, and interval, if necessary.

Encryption Is Possible

Although not normally necessary on your own network, the software also offers the possibility to encrypt transfers via Transport Layer Security (TLS) in the Security tab. A description of the corresponding configuration (Figure 4) can be found on the NitroShare wiki [2].

Figure 4: NitroShare offers the possibility of encrypting data in transit using TLS.

The menu also offers the Send Files and Send Directory options, which allow you to select files or directories and then specify the desired transfer destination. During data transfer, the software displays its history. You can close this dialog without affecting the transfer. After the transfer has completed, you see a message to this effect.

NitroShare does not limit the size of the data sent and can thus theoretically achieve high speeds on networks designed for this purpose. Behind the scenes, the program uses IPv4 broadcasts to send User Datagram Protocol (UDP) packets to other devices on the LAN. These contain information that allows other devices to initiate transmissions without having to worry about broadcast addresses and the like. By default, NitroShare sends all UDP packets on port 40816 to any active network interface with an IPv4 broadcast address. You can change the port individually in the settings, if necessary.

Problems

In my lab, I looked at Linux-Linux and Linux-Windows connections, and vice versa, as well as Android-Linux and Android-Windows connections. NitroShare failed to cooperate with a workstation on Debian Sid, with failures in both directions and an error message regarding SSL that did not make sense. The problem resulted in a bug report on GitHub [3].

The application worked perfectly in all combinations and in all directions on Debian Sid, Ubuntu, and Windows notebooks and on an Android 8.1 smartphone. Controlling the application directly with its own tools could not have been easier.

Integration with the Nautilus file manager on Ubuntu (Figure 5) and Caja on Ubuntu MATE did not work: The context menus did not show any corresponding entries.

Figure 5: Ubuntu offers a PPA with up-to-date versions of NitroShare. However, embedding in Nautilus does not work.

I measured the speed of NitroShare with a 1.5GB file, which I sent wirelessly with Debian Sid and Ubuntu three times in both directions between the two notebooks. It reached transmission rates between 90 and 110KBps. With many small files totaling around 700MB, the data rate remained roughly the same.

Conclusions

Work on NitroShare has been in progress for six years now, so it would appear that any teething problems have now been eliminated. However, this was not always the case in the test, although not being able to access the Debian Sid workstation might not be the fault of the program itself. Nevertheless, it would be practical to copy the (in this case long) error message instead of typing it. The reason the integration in Nautilus and Caja did not work was still unclear after completing the test.

Despite these few problems, NitroShare does what it promises: After the install, you can get started immediately without having to configure any settings. Transfers take place quickly.

Android devices are limited to the sender role; the software does not offer mobile devices as targets on other clients. To do this, some Android apps offer the option of sending files directly via NitroShare. During the test, I found corresponding entries in Google Docs, Gallery, and Photos, but there may be more of them. Nevertheless, as far as Android is concerned, KDE Connect – which is even available on Gtk desktops – seems to be the more mature solution.