Thunderbolt allows for peer-to-peer network connections by connecting two computers directly via a thunderbolt cable. Mika from Intel added support for this to the 4.15 kernel. Recently, Thomas Haller from NetworkManager and I worked together to figure out what needs to be done in userspace to make it work. As it turns out, it was not that hard and the pull-request was merged swiftly.

GNOME Settings' Network Panel

So now if you connect your GNU/Linux box to another machine, NetworkManager will configure the connection to be a Link-Local one.

pinging macOS

ping Linux from macOS

I have successfully tested Fedora to Fedora, Fedora to macOS and Fedora to Windows 10. The other operating systems also use a Link-Local address by default.

Copying from Linux to Windows

The technical details

When another host is connected via thunderbolt, we get a new device in sysfs that resembles a normal thunderbolt device but is of DEVTYPE thunderbolt_xdomain. Like a normal thunderbolt device, it has a unique_id and a device_name, but is missing the authorized and key attributes. A new udev rule in NetworkManager was added to load the thunderbolt-net kernel module. As a result, we get a new network device (thunderbolt0).

nmcli showing the thunderbolt networking device

Another udev rule will set a new udev property (NM_AUTO_DEFAULT_LINK_LOCAL_ONLY) to all network devices where the driver is thunderbolt-net to instruct NetworkManager to use the Link-Local configuration on these interfaces.

The dev snapshot release 1.11.3-dev has the thunderbolt networking support. Grab it, build it, and start playing around with it! Feel free to post your record transfer speeds in the comments ⚡ 🏆.


  1. Pingback: Links 24/5/2018: RIP Robin “Roblimo” Miller, Qt 5.11 Released | Techrights

  2. This is very nice, can other connectors that provide networking be setup to work as simply?

    IP over USB or HDMI spring to mind.

  3. Pingback: Thunderbolt Networking Now Supported in Linux's NetworkManager Software - Server Install

  4. Pingback: Episode 29 | This Week in Linux – TuxDigital

  5. Pingback: LWDW 120: ARM’d And Systemd-angerous – LinuxGameCast

  6. I was wondering whether the thunderbolt IP module allowed you to daisy chain more than 2 hosts together? eg. If you have 3 hosts and at least one of those hosts has 2 x thunderbolt ports, can all hosts communicate with one another? This would be fantastic for home labs using Intel Hades Canyon NUCs.

Leave a Reply

Your email address will not be published. Required fields are marked *

Made by ThemesKult