Please note that, as of June 11th 2017, there is a fairly serious bug in Ubuntu 17.04 that seems to prevent some WiFi adapters from working properly. To use WiFi reliably in Ubuntu 17.04 please follow the recommended troubleshooting steps, or scroll down to the bottom of this article for the same instructions.

NIC
Driver
Performance
Ubuntu 16.04.3
Ubuntu 17.04
rt5372
Acceptable
12.6 Mbps up / 13.5 Mbps down
12.8 Mbps up / 15.6 Mbps down
rt2800usb
Acceptable
8.9 Mbps up / 6.8 Mbps down
9.3 Mbps up / 6.8 Mbps down
brcmfmac
Unacceptable
1.3 Mbps up / 0.6 Mbps down
0.9 Mbps up / 0.7 Mbps down
Unacceptable
0.5 Mbps up / 4.1 Mbps down
0.7 Mbps up / 6.1 Mbps down
Not Working
Not Working
Not Working

I am sure that with enough time and research, you could probably get all of these cards working in Linux (albeit with varying levels of reliability) via the right kernel module or properietary drivers.

However, my goal was to find a device that can connect immediately with no additional configuration.

My tests were performed on a 2.4Ghz Wireless N network (running DD-WRT). The speeds listed are the results of a very brief series of iperf3 tests. Drivers were determined using lshw.

Take the speeds listed with a grain of salt. I gathered them in a rather unscientific series of experiments. The only reason I list them is to give a broad idea of whether or not a card can function reasonably well under my test conditions, or is too slow and unreliable to be usable.

Motivation

My goal was to find a USB WiFI adapter for Ubuntu Linux that would work right out of the box. I assumed this would be a trivial task, but it seems that few WiFI USB dongles play well with Linux.

My quest for Ubuntu Linux compatible WiFi USB NICs began with an Amazon search for "WiFi USB". I was looking for cards that worked out of the box in Ubuntu Xenial 16.04.1.

Most cards had mixed reviews when it came to Ubuntu. Some reviews might say the dongle worked in Ubuntu out of the box, while others said the same product did not work.

I figured the easiest thing to do would be to buy a bunch of cards that seemed to have at least a couple reviews reporting that they worked in Ubuntu, and cross my fingers.

In some cases I would at least try to install linux drivers if they were provided on a CD, but I learned quickly that most of these drivers and their installation scripts are geared towards machines with 2.6 kernels, which seems silly for a consumer WiFi card in 2017. So I generally gave up on trying to install custom drivers.

PAU06 300Mbps - Panda Wireless PAU06 300Mbps N USB Adapter

Amazon

This scored the best in my performance tests. It works immediately in the Ubuntu versions specified here, and performed reasonably well.

PAU05 300Mbps - Panda 300Mbps Wireless N USB Adapter

Amazon

This scored the second best in my performance tests. It works immediately in the Ubuntu versions specified here, and performed reasonably well.

Official Raspberry Pi WiFi dongle

Amazon

I love the Raspberry Pi group, and so I hate bad-mouthing anything even remotely related to their work. Unfortunately, this card did not seem to perform well for the sake of my tests.

I wish I could explain the poor results. Maybe my card is simply malfunctioning, or it is slightly weaker than the others so a decreased signal explains the reliability issues. That, or the Ubuntu driver for this card simply does not work as well as it could.

Keep in mind that I am testing this NIC against Ubuntu on an amd64 machine. However, this device was built specifically for the Raspberry Pi. So do not take my test results to mean that this card is unreliable as it pertains to the Raspberry Pi devices. Only that it seems unreliable for the parameters of my tests.

EDUP Wifi Adapter 300Mbps Wireless N Adapter

Amazon

This card certainly connects, but performance was extremely slow.

Abner Chou reports in the comments that this rtl8192cu driver seems to work well with this card.

Edimax EW-7811UTC AC600 Dual-Band USB Adapter

Amazon

The goal of this article is to find cards that work out of the box. This card did not meet that requirement for the operating systems I tested, but I think it's worth noting that this rtl8812au driver seems to work well to get this card functioning properly.

Ubuntu 17.04 WiFi Fix

The Ubuntu 17.04 WiFi bug seems to be well known.

Add the following to the bottom of /etc/NetworkManager/NetworkManager.conf.

[device]
wifi.scan-rand-mac-address=no

Restart the network manager.

sudo service network-manager restart