Skip to main content

Asyx is invite-only while we finish the first public release.

Request Access

Docs

Expose Your Minecraft Server with Asyx

Share your local Minecraft server with friends in one command. Asyx supports Minecraft via TCP tunnels with SRV records, so players can connect using just the hostname—no port number needed.

Overview

Asyx tunnels your local Minecraft server to the internet using TCP with automatic SRV record creation. This means:

  • SRV-aware clients (Minecraft): Players enter just the hostname; the Minecraft launcher automatically discovers the port via DNS.
  • Non-SRV-aware tools: Use hostname:port format (e.g., example.tunnel.asyx.ai:10000).

Prerequisites

  • Local Minecraft server running (default port 25565)
  • Asyx CLI installed and enrolled (asyx setup)
  • Node.js 18.17+

Step 1 — Start Your Local Minecraft Server

Start your Minecraft server on the default port 25565, or note the port if you're using a custom one.

Step 2 — Open the Tunnel

Default Command (Recommended)

asyx tunnel --minecraft

What happens:

  • Creates a TCP tunnel from your local Minecraft server to the internet
  • Publishes an SRV record _minecraft._tcp.<host> so players can connect using just the hostname
  • Prints your public hostname, for example example.tunnel.asyx.ai
  • Players can connect in Minecraft using just the hostname—no port needed

The --minecraft command automatically:

  • Configures port 25565 (Minecraft's default)
  • Creates the SRV record for portless connections
  • Sets up the tunnel in TCP mode

Custom Port Override

If your Minecraft server listens on a different port:

asyx tunnel --minecraft --port 25570

Replace 25570 with your server's actual port. The SRV record will still be created, pointing to the correct public port.

Optional Custom Name/Alias

For a custom subdomain:

asyx tunnel --minecraft --name my-server

What this does:

  • Creates a CNAME alias: my-server.example.tunnel.asyx.ai
  • Creates an SRV record: _minecraft._tcp.my-server.example.tunnel.asyx.ai
  • Players can connect using my-server.example.tunnel.asyx.ai (no port needed)
  • Non-SRV-aware tools still need my-server.example.tunnel.asyx.ai:<publicPort>

The --name flag is optional. Without it, the SRV record uses your primary subdomain (e.g., example.tunnel.asyx.ai).

Step 3 — Share with Players

For Minecraft Players (SRV-Aware)

Share the hostname shown in the CLI output. Players enter this in the Minecraft server list—no port number needed.

Example:

  • Hostname: example.tunnel.asyx.ai
  • Players connect using: example.tunnel.asyx.ai (Minecraft automatically discovers the port via SRV)

For Non-SRV-Aware Tools

If using tools that don't support SRV records, use the hostname:port format:

Example:

  • Hostname: example.tunnel.asyx.ai
  • Public port: 10000
  • Connect using: example.tunnel.asyx.ai:10000

How It Works

SRV Records

When you run asyx tunnel --minecraft, Asyx creates a DNS SRV record:

  • Record name: _minecraft._tcp.<host>
  • Target: Your primary FQDN (e.g., example.tunnel.asyx.ai)
  • Port: The public port assigned by the relay
  • TTL: ~60 seconds (for agility)

The Minecraft launcher automatically queries this SRV record to discover the correct port, so players don't need to enter it manually.

With --name Flag

When you use --name <svc>:

  • CNAME alias: <svc>.<subdomain>.tunnel.asyx.ai → points to your primary FQDN
  • SRV record: _minecraft._tcp.<svc>.<subdomain>.tunnel.asyx.ai → points to your primary FQDN with the public port

Both the CNAME and SRV use your primary FQDN as the target, ensuring consistent routing.

Best-Effort & Safety Notes

SRV Creation is Best-Effort

SRV record creation is best-effort. If it fails:

  • The tunnel still works—players can use hostname:port format
  • You'll see a warning in the CLI output
  • The lease creation succeeds regardless

TCP Tunnel Security (v4.1)

TCP tunnels in v4.1 do not enforce per-guest authentication:

  • Access is owner-only via JWT validation
  • Guests connecting to the public port are anonymous (no per-connection auth)
  • TCP tunnels honor relay-level limits (connections, rate, bandwidth)

Per-guest authentication for TCP tunnels may be added in future versions.

Troubleshooting

Clients Time Out

If players can't connect:

  1. Check hostname:port works: Try connecting with the explicit port (e.g., example.tunnel.asyx.ai:10000) to verify the tunnel is working.
  2. Check firewall/security groups: Ensure the public port is open on the relay's firewall and AWS security groups.
  3. Verify SRV resolves: Check if the SRV record exists:
    dig _minecraft._tcp.example.tunnel.asyx.ai SRV
    
    Or use an online DNS lookup tool.
  4. Fall back to hostname:port: If SRV isn't working, players can always use the explicit port format.

Custom Port Not Working

If you're using --port <n> and players can't connect:

  • Ensure your Minecraft server is actually listening on that port locally
  • Check the CLI output to confirm the tunnel is using the correct local port
  • Verify the public port is accessible (try hostname:publicPort)

SRV Record Not Found

If the SRV record doesn't resolve:

  • Wait up to 60 seconds for DNS propagation (SRV TTL is ~60s)
  • Check the CLI output for any warnings about SRV provisioning
  • Use hostname:port format as a fallback

Limits & Notes

  • Default port: 25565 (Minecraft's standard port)
  • SRV TTL: ~60 seconds (for quick updates)
  • Alias creation: Only if --name is provided
  • Port override: Use --port <n> if your server listens elsewhere
  • Tunnel duration: Default lease window is 60 minutes (renews automatically)

Useful Commands

asyx tunnel --minecraft                    # Default: port 25565, no alias
asyx tunnel --minecraft --port 25570       # Custom port
asyx tunnel --minecraft --name my-server   # Custom alias + SRV
ASYX_LOG_LEVEL=debug asyx tunnel --minecraft  # Verbose logging

When you're done, Ctrl+C ends the tunnel.

Need help? Email support@asyx.ai or mention us in the Asyx community.