avd-shortpath-test checks from macOS or Linux whether RDP Shortpath for public networks, UDP via STUN or TURN, is likely to work for Azure Virtual Desktop and Windows 365. Microsoft has a tool for exactly that, avdnettest.exe from the Azure/RDS-Templates repository. It only runs on Windows (of course). This is my unofficial counterpart for everyone who connects from a Mac, or who has to check the network at a thin client site. Written in Go, released under the MIT license.
Why a Mac version? Most of the time I connect to AVD from a Mac, at customers and even more at home. Then a customer project came along where I had to debug Shortpath problems on Mac clients, and there was no test tool I could run on them. So I wrote one.
Download latest release → · GitHub →
What it does
- Network checks like the original: DNS, STUN Binding against the relays, an unauthenticated TURN Allocate, and the NAT type that follows from it.
- Same output as
avdnettest.exe: the report starts with the same check lines and verdict sentences, so results from Windows and macOS can be compared line by line (handy when the Windows colleague swears it works for them). A details section with response times, mapped addresses and the TURN response follows. - Environment checks for the usual suspects that push Shortpath to a relay or to TCP: a route to the relay through a tunnel (missing split tunnel), VPN services, proxies and PAC files, carrier grade NAT, known agents such as Zscaler, GlobalProtect or Cloudflare WARP, and a missing IPv4 address.
- Windows App version on macOS, with a hint when it is older than the first version Microsoft lists for Shortpath on public networks.
- Exit codes per verdict (direct UDP, relay only, no UDP, checks failed), plus
--jsonfor scripts and monitoring.
The environment checks only produce hints and never change the verdict. Nothing is sent anywhere except the STUN and TURN requests to the relays.
macOS or Linux
- macOS (universal binary, Apple silicon and Intel): network checks plus the client checks for VPN, proxy and the Windows App.
- Linux (amd64, arm64): the same network checks, without the client checks, because there is no Windows App for Linux. The Linux build is meant for the network at a thin client site (IGEL, Dell ThinOS, HP and others): take any Linux laptop or a Raspberry Pi, plug it into the same network and run the test there.
Getting started
On macOS the easiest way is Homebrew:
brew install --cask cloudchristoph/tap/avd-shortpath-test
avd-shortpath-testFor Linux, download the archive for your platform from the latest release and verify it with checksums.txt. You can also build it from source with Go.
The binary is not notarized (there is no Apple Developer account behind this project). The cask removes the quarantine attribute for you; a file downloaded in a browser needs xattr -d com.apple.quarantine ./avd-shortpath-test once.
Good to know
- TURN is checked like the original checks it. An unauthenticated Allocate counts as successful if the relay answers at all (Microsoft’s relays answer
300 Try Alternate, which is good enough). No credentials are used, so the tool cannot test a real relay allocation. - The “Use UDP where possible” setting is not read. The Windows App stores it in its protected app container, which macOS only opens to programs with Full Disk Access. Check that option in the app yourself.
- A running agent is a hint, not proof that it captures UDP 3478.
All options, the full list of environment checks and the exit codes are in the README. If the tool reports something that looks wrong on your network, please open an issue with the --json output. Hope it helps!
Comments