Routing a Nonstandard Port Through a Cloudflare Origin Rule (Simple Voice Chat Web Client)

Back to Minecraft

Routing a Nonstandard Port Through a Cloudflare Origin Rule (Simple Voice Chat Web Client)

Explains how to make the Simple Voice Chat web client reachable via your own domain with HTTPS, using Cloudflare DNS, Flexible SSL, and an Origin Rule for a nonstandard port.

Running Simple Voice Chat on your Minecraft server and want to make the associated web client (the page where players grant microphone permission) reachable via your own domain name with HTTPS? In this article, we explain how to set this up via Cloudflare, even if the plugin's web port is not on Cloudflare's default list of HTTPS ports.

We use voice.yourdomain.com and port 37979 as an example in this article. Replace these with your own domain name and port.

Note: First check whether the port you want to use is actually the web port of Simple Voice Chat (server.port in config/SimpleVoice-Geyser/config.json, over TCP), and not the UDP port players use to actually talk. This guide only works for the web port.

Step 1. Creating the DNS record

  1. Log in to Cloudflare and open your domain.
  2. Go to DNS → Records.
  3. Click Add record.
  4. Choose Type: A.
  5. Enter voice under Name.
  6. Enter your VPS's IP address under IPv4 address.
  7. Make sure Proxy status is set to Proxied (orange cloud).
  8. Click Save.

Step 2. Setting SSL to Flexible, only for this hostname

Cloudflare needs to handle the connection to the web client over HTTP towards your server (Flexible SSL), while visitors still just see HTTPS. It's best to set this up only for this one hostname, so the rest of your domain is left untouched.

  1. Go to the Rules overview.
  2. Click Create rule.
  3. In the popup, choose Configuration Rules.
  4. Set: if hostname equals voice.yourdomain.com.
  5. Set SSL to Flexible in the outcome.
  6. Click Deploy.

Note: It's also possible to set SSL to Flexible zone-wide via SSL/TLS → Overview, but this can affect other websites on the same domain. Prefer a Configuration Rule that only applies to this one hostname.

Step 3. Setting up an Origin Rule for the port

Port 37979 is not on Cloudflare's default list of HTTPS ports. With an Origin Rule, you rewrite the traffic to this port on your server.

  1. Go to Rules → Origin Rules.
  2. Click Create rule.
  3. Set: if hostname equals voice.yourdomain.com.
  4. In the outcome, choose Destination Port → Rewrite to and enter 37979 (or your own web port).
  5. Click Deploy.

Step 4. Setting up the firewall on the server

Because Flexible SSL means the part between Cloudflare and your server is unencrypted, and the voice chat password can also travel through this, it's important not to simply open this port for everyone.

  • Only allow TCP port 37979 from the official Cloudflare IP ranges.
  • Block direct access to this port from any other IP address.

Note: This is an important security step. Without this restriction, in theory anyone could connect directly to the web port, bypassing Cloudflare.

Step 5. Configuring Simple Voice Chat

  1. Open config/SimpleVoice-Geyser/config.json via the File Manager in the Game Panel.
  2. Set bind-address to 0.0.0.0.
  3. Set port to 37979 (or your own web port).
  4. Save the file.
  5. Restart the server.

Testing

  1. From another machine, test whether the web port is directly reachable:
curl -I http://YOUR-SERVER-IP:37979

Getting a response back? Then the plugin itself is reachable.

  1. Then open https://voice.yourdomain.com in your browser. The Simple Voice Chat page should load, and the browser may ask for microphone permission.

Note: Never use the same hostname for the web client as your server's Minecraft address. Cloudflare does not proxy Minecraft traffic (the Minecraft protocol doesn't run over HTTP/HTTPS), which would stop the game connection from working.

Troubleshooting

I get a 522 or 525 error

This usually points to a connection or SSL issue between Cloudflare and your server. Contact us via a support ticket and let us know the exact error code (522, 525, or another one), so we can investigate further.

My firewall rule doesn't seem to do anything

A common mistake is that the firewall rule's filter is set to URI Full, often with a wildcard. This almost never matches, because the full URL starts with https:// and ends in a path, while the configured value is usually just the hostname. As a result, the rule effectively does nothing.

Adjust the filter:

  1. Set Field to Hostname.
  2. Set Operator to equals.
  3. Enter your own hostname as the value, for example voice.yourdomain.com.

Or work directly with an expression:

  1. Click Edit expression in the top right.
  2. Replace the content with:
(http.host eq "voice.yourdomain.com")
  1. Click Deploy.

Checklist for issues

If you run into problems, go through the following points again:

  • Is there an A record for the correct hostname, with Proxied (orange cloud) enabled?
  • Is the Origin Rule correctly configured with the right hostname and the right Destination Port?
  • Is the configured port actually the web port (TCP) of Simple Voice Chat, and not the UDP port?
  • Is bind-address in the SVC config set to 0.0.0.0, and was the server restarted after changing the configuration?

Still stuck? Feel free to reach out via Discord or create a support ticket. Let us know which step isn't working and exactly which error (for example an HTTP status code) you're getting.

Anne
Updated on: 10/20/2026
Was this article helpful?