Troubleshooting remote desktop audio: routing fixes

Nothing kills a remote session faster than no sound. You can see the app, control the mouse, but the other side is silent — no notification chimes, no videos, no conference audio.
Nothing kills a remote session faster than no sound. You can see the app, control the mouse, but the other side is silent — no notification chimes, no videos, no conference audio. If you’ve typed "remote desktop audio" into a search bar because audio isn’t being routed from the remote machine to your local speakers (or vice versa), this guide walks through the practical checks and fixes that solve the problem on Windows, macOS, and Linux.
How remote desktop audio routing actually works
At a basic level, remote desktop audio is just I/O redirection across a network: the remote host captures audio (microphone or system output), encodes it, streams it over the remote session protocol, the client decodes it and plays it on the local device. That sounds straightforward, but there are three common failure points:
- Settings and policy: the remote protocol can be configured to block audio redirection (or only allow mic but not playback).
- Server/client audio stacks: mismatches or missing modules on the host (PulseAudio / PipeWire on Linux, Windows Audio Service on Windows) prevent capture/playback.
- Network and codec constraints: firewalls, wrong ports, or codec incompatibilities can prevent audio packets from being delivered or decoded properly.
Different remote tools handle these stages differently. Microsoft RDP exposes explicit audio redirection options. TeamViewer and AnyDesk implement proprietary audio codecs and drivers and often work out-of-the-box for Windows-to-Windows audio. Open-source solutions (Tenvo, RustDesk, VNC+PulseAudio) rely on the host's audio stack and sometimes need extra configuration. If you’re comparing tools, see our piece on rustdesk-vs-anydesk for context on where open-source stacks differ from proprietary ones.
Quick checklist — fixes you can try in 10 minutes
If you just want the fastest path to “it works,” try these in order. These are the common, low-effort fixes we see most often.
- Restart audio services: On Windows, restart the Windows Audio and Windows Audio Endpoint Builder services. On Linux, restart PulseAudio or PipeWire:
systemctl --user restart pipewire pipewire-pulse
orpulseaudio -k && pulseaudio --start
. - Verify client settings: In Windows RDP client (mstsc) open Local Resources → Remote audio → Settings and set "Remote audio playback" to "Play on this computer". For other clients, make sure "Share audio" or similar is enabled.
- Check default devices: Ensure the local playback device is enabled and the remote host has a default output device set. Try setting both to a simple stereo 44.1/48 kHz device (many remote encoders dislike exotic formats).
- Temporarily disable firewall/AV (briefly): firewall rules can block remote audio ports or the remote service. Test with firewall off to rule it out.
- Try a different client: If RDP fails, try TeamViewer or AnyDesk to determine if the problem is protocol-specific. These proprietary apps often have better cross-OS audio handling.
Windows host or client: RDP and native settings
Windows is the environment most people use for RDP. Two distinct cases matter: you are connecting from a Windows client to a Windows server (mstsc / RDP), or you are connecting into a Windows host from another platform.
Check the client (mstsc) settings)
On the client machine run mstsc.exe → Show Options → Local Resources. Under "Remote audio", click "Settings…" and confirm:
- Remote audio playback: Play on this computer
- Remote audio recording: Record from this computer (if you need microphone redirection)
If you’re using the Remote Desktop app from the Microsoft Store, the same options appear in the session settings. Also verify in the local Sound control panel that the playback device you want is active and not in "exclusive mode" that blocks other apps.
Check the host (server) configuration)
On the Windows host (the machine you remote into), confirm the Windows Audio service is running:
sc query Audiosrv sc query AudioEndpointBuilder
If either is stopped, start them:
net start Audiosrv net start AudioEndpointBuilder
Group Policy can also block audio redirection in RDP sessions. Check gpedit.msc → Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Device and Resource Redirection. Confirm "Allow audio and video playback redirection" and "Allow audio recording redirection" are enabled or not configured.
RDP for multimedia: codecs and sample rates
RDP encoders prefer standard formats. If the remote app is outputting a high sample-rate or multichannel stream (e.g., 192 kHz or 5.1), try switching the host to stereo 44.1 kHz or 48 kHz. In Sound control panel → Playback device → Properties → Advanced, set the Default Format to 2 channel 16 bit 44100/48000 Hz and retry.
Linux hosts and clients: PulseAudio, PipeWire, and xrdp gotchas
Linux audio stacks vary. Ubuntu 22.04 and many contemporary distributions use PulseAudio or PipeWire. Remote desktop servers like xrdp or VNC don’t automatically capture desktop audio without extra modules.
Common symptoms and fixes
- No audio in an xrdp session: install and enable pulseaudio-module-xrdp or use PipeWire's sink integration. On Debian/Ubuntu:
sudo apt install xrdp pulseaudio-module-xrdp
then restart services:sudo systemctl restart xrdp systemctl --user restart pulseaudio
- PulseAudio client running as root: some xrdp setups run your desktop as a different user — make sure PulseAudio runs per-session (systemd user instance) not as root.
- PipeWire: newer desktops like Fedora 35+ or Ubuntu 22.10 default to PipeWire. Ensure pipewire-pulse is installed (it provides a PulseAudio compatibility layer) and restart the PipeWire user services:
systemctl --user restart pipewire pipewire-pulse
Useful commands for diagnosis
pactl list sinks short # list playback sinks pactl list sources short # list recording sources pactl info # shows server (Pulse/PipeWire) info journalctl --user -u pipewire -f # live PipeWire logs
If you see no sinks, the desktop audio server hasn’t created a sink for the user session that xrdp attaches to. Creating a stable per-session PulseAudio instance or using PipeWire’s per-user services fixes this. For xrdp specifically, follow the distribution docs to enable pulseaudio-module-xrdp or configure /etc/xrdp/startwm.sh to start PulseAudio per session.
macOS hosts and clients: capture limitations and workarounds
macOS historically makes system audio capture harder: the platform does not include a built-in virtual loopback device. VNC-based remote sessions generally do not forward system sound. Chrome Remote Desktop supports audio playback for some setups, but behavior depends on macOS version and the client application.
Practical options:
- Use a hardware workaround: plug a virtual cable (USB sound interface) and route macOS audio to that device, then share microphone input from that device. This is clumsy but works for some setups.
- Install a virtual audio device: BlackHole (open-source) or Loopback/Soundflower lets apps capture system audio. Once installed, set the system output to BlackHole and configure a pass-through to the physical device so local monitoring still works.
- Use TeamViewer/AnyDesk: they bundle audio drivers that can capture and stream macOS audio more transparently than some open-source tools. If macOS audio is crucial, these proprietary options are often less friction for end users.
For details on connecting from macOS or setting up a macOS client, our article remote-desktop-for-mac has platform-specific tips.
Mobile clients, low-latency audio, and when a remote desktop isn't the right tool
Mobile remote apps (Android, iOS) often deprioritize audio to save bandwidth and battery. If audio is essential on mobile, check the app’s settings for "Play audio" or "Use device audio." Android clients typically have more control than iOS due to platform restrictions.
If you need low-latency, high-fidelity audio (musical collaboration, DAW streaming, pro audio), a remote desktop is the wrong tool. Use an audio-over-IP solution such as JACK over network, Dante, or specialized tools like Jamulus or JackTrip. Remote desktop audio is fine for voice, notifications, and video soundtracks; it’s not designed for sub-20ms latency musical performance.
When to try another tool (and which ones)
Be honest about whether the remote protocol can do what you need. A few guidance points:
- If you need robust cross-platform audio forwarding with minimal configuration, TeamViewer and AnyDesk often "just work" for Windows and macOS because they include proprietary drivers and codecs. See our comparison pieces anydesk-vs-teamviewer-2026 and best-teamviewer-alternatives for trade-offs.
- If you want an open-source, self-hosted stack and are comfortable with Linux audio configuration, Tenvo and other self-hosted solutions are viable but may require installing pulseaudio-module-xrdp, pipewire-pulse, or virtual devices on macOS.
- If the only missing piece is microphone capture to the remote machine (not playback), ensure the client allows microphone redirection and the host application is set to use the redirected device.
Honestly: proprietary tools are sometimes better at cross-OS audio because they control both ends of the pipeline and can supply custom codecs/drivers. Open-source stacks can match that with effort and proper configuration, but expect extra setup if you want parity on macOS or unusual Linux desktops.
Step-by-step checklist for a full diagnosis
Follow this ordered checklist when "quick fixes" didn’t help. Don’t skip steps — they narrow down the failure point quickly.
- Reproduce and note symptoms: playback only, microphone only, or both. Note client OS and host OS and the remote tool in use (mstsc, xrdp, Tenvo, TeamViewer, AnyDesk).
- On the host: confirm the audio service is running (Windows: Audiosrv; Linux: PulseAudio/PipeWire). Restart if needed.
- On the client: confirm "share audio" / "play on this computer" is set.
- Temporarily switch host and client to simple stereo 44.1/48 kHz devices.
- Check firewall: allow the remote protocol (RDP TCP 3389, custom ports for Tenvo, or specific app permissions for TeamViewer/AnyDesk). If using Tenvo self-hosting, ensure your relay/port-forwarding is configured (see our remote-desktop-without-port-forwarding article for networking options).
- Try another client or protocol: a quick test with TeamViewer/AnyDesk can tell you whether audio is protocol-specific.
- Collect logs: Windows Event Viewer (Application/System), PulseAudio/pipewire journal logs, or Tenvo logs in ~/.config/tenvo/logs if applicable.
Example fixes — copy/paste snippets
Linux (Ubuntu) xrdp + PulseAudio: install module and restart:
sudo apt update sudo apt install xrdp pulseaudio-module-xrdp sudo systemctl enable --now xrdp systemctl --user restart pulseaudio
PipeWire restart (user session):
systemctl --user restart pipewire pipewire-pulse wireplumber
Windows: check and start audio services from an elevated prompt:
sc query Audiosrv net start Audiosrv sc query AudioEndpointBuilder net start AudioEndpointBuilder
Final notes and realistic expectations
Remote desktop audio is reliable for typical use: voice calls, video playback, alerts. Don’t expect studio-grade fidelity or sub-20ms latency. When everything seems configured correctly but audio is still poor, consider whether network conditions (packet loss, jitter), CPU overload for the encoder, or the particular app’s audio format are the true bottlenecks.
If you prefer an open-source remote desktop and want to avoid the black-box approach of proprietary apps, Tenvo aims to be predictable and extensible — but you may need to tweak the host audio stack on Linux or add a virtual audio device on macOS. Download Tenvo or check pricing and hosting options at /download and /pricing to test how it handles audio in your environment.
For platform-specific setup guides, our Windows walkthrough (setup-remote-access-windows) and macOS article (remote-desktop-for-mac) have additional tips and screenshots.
If you’ve followed these steps and still have trouble, collect the logs mentioned above and open an issue or support thread with the exact host/client OS versions (for example: Windows 11 22H2, Ubuntu 22.04, macOS Ventura 13.4), the remote tool and version, and the symptom set. That makes debugging fast.
Ready to try it yourself?
Free for 30 devices, no credit card. Up and connected in two minutes.