Skip to content

Ports & protocols

PortProtocolDirectionPurposeConfigurable with
64738TCPclient to serverTLS handshake, control messages, chat, TCP fallback for voiceMUMBLE_CONFIG_PORT
64738UDPclient to serverVoice and per-channel position datasame
64739TCPclient to serverFile server (emotes, attachments)plugin.file-server.port
10000UDPclient to server (in both directions)Screen-share relay (WebRTC SFU)MUMBLE_CONFIG_WEBRTCSFUPORT
6502TCPlocalhost only by defaultAdmin RPC (Ice)Ice.Endpoint in config

The client always initiates the connection. The server never reaches back out, except for FCM push (server to Google) and link previews (server to the URL the user posted).

For a complete picture:

DestinationProtocolWhen
Public DNSUDP 53Resolving hostnames
mumble.info directoryTCP 443Public server listing (registerHostname set)
Firebase Cloud MessagingTCP 443Push notifications, if enabled
The URLs users pasteTCP 80/443Link preview fetches, if enabled

A self-hosted server typically needs:

TCP 64738 inbound
UDP 64738 inbound
TCP 64739 inbound (if file server)
UDP 10000 inbound (if screen-share relay)
TCP 443 outbound (if push or link previews)
  • UDP 64738 is blocked, voice falls back to TCP with a small latency hit. Force TCP under the client’s audio settings to make this consistent.
  • UDP 10000 is filtered: viewers will see a black screen for shared streams. Open the port.
  • Port collision with another service: change the server’s port with MUMBLE_CONFIG_PORT=12345. Clients then connect to your-host:12345.