Zero Signup ToolsFree browser tools

Developer Tools

SRV Record Generator

Build and parse DNS SRV records in your browser. Set service, protocol, priority, weight, port, and target, then copy Cloudflare, Route 53, and BIND snippets.

SRV record generator and parser

An SRV record locates a service by name. The owner is _service._proto.name and the data is priority weight port target.

Start from a common service

Owner name

Underscore is added automatically.

Owner name (FQDN)

_sip._tls.example.com.

Record data

0 to 65535, lowest tried first.

Share among equal priority.

1 to 65535.

Optional. 3600 = 1 hour.

A real hostname with an A or AAAA record. Use a single dot to declare the service unavailable. Never an IP address or a CNAME.

Output

Your SRV record

Record data (priority weight port target)

10 60 5061 sipserver.example.com.

Full zone-file line

_sip._tls.example.com. 3600 IN SRV 10 60 5061 sipserver.example.com.
Clients looking for the sip service over TLS on example.com are sent to sipserver.example.com on port 5061. Among records with the same priority (10), this one takes a weight share of 60; lower priority numbers are always tried first.

Validation

  • NoteIn a BIND zone file the target should end with a trailing dot so it is not treated as relative. Most provider UIs add it for you.

DNS provider snippets

Publish the record

Copy the format your DNS host uses. Replace ZONE_ID, ZONE_NAME, RG_NAME, and any example hostnames with your own values.

BIND zone file

_sip._tls.example.com. 3600 IN SRV 10 60 5061 sipserver.example.com.

Cloudflare DNS

Cloudflare DNS (Add record, type SRV)
  Name:      _sip._tls
  Service:   _sip
  Protocol:  _tls
  TTL:       Auto
  Priority:  10
  Weight:    60
  Port:      5061
  Target:    sipserver.example.com

AWS Route 53 (CLI)

aws route53 change-resource-record-sets \
  --hosted-zone-id ZONE_ID \
  --change-batch '{
    "Changes": [{
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "_sip._tls.example.com",
        "Type": "SRV",
        "TTL": 3600,
        "ResourceRecords": [{ "Value": "10 60 5061 sipserver.example.com." }]
      }
    }]
  }'

Google Cloud DNS (gcloud)

gcloud dns record-sets create _sip._tls.example.com \
  --zone=ZONE_NAME \
  --type=SRV \
  --ttl=3600 \
  --rrdatas="10 60 5061 sipserver.example.com."

Azure DNS (CLI)

az network dns record-set srv add-record \
  --resource-group RG_NAME \
  --zone-name example.com \
  --record-set-name _sip._tls \
  --priority 10 \
  --weight 60 \
  --port 5061 \
  --target sipserver.example.com

How the four values work

  • Priority works like MX: clients try the lowest number first and only fall back to higher numbers when those targets are unreachable.
  • Weight splits traffic between records that share a priority. A record with weight 60 gets roughly six times the traffic of a weight 10 record.
  • Port is the actual port the service runs on, so SRV can move a service off its default port without clients hard-coding it.
  • Target must be a host name with an A or AAAA record. A single . means the service is deliberately not offered here.

Common mistakes this tool catches

  • Pointing the target at an IP address. SRV targets are host names only; create an A or AAAA record and point at that name.
  • Forgetting the _service or _proto underscore in the owner name, so the lookup never matches.
  • Leaving off the trailing dot on a target in a BIND zone file, which makes it relative to the zone.
  • Putting numbers in the wrong order. The order is always priority, then weight, then port, then target.

Privacy

Records are built and validated entirely in your browser with plain string parsing. No DNS lookups are performed and the domains, targets, and ports you enter are never uploaded, logged, or stored.

How to use

  1. Choose Build record to compose an SRV record, or Parse and explain to paste an existing one.
  2. Builder: pick a preset (Minecraft, SIP over TLS, XMPP, LDAP / Active Directory, autodiscover, and more) or fill the fields yourself.
  3. Set the owner name: the service (the underscore is added automatically), the protocol (_tcp, _udp, or _tls), and the domain. The full owner name is shown below the fields.
  4. Set the four data values: priority (lowest tried first), weight (share among equal priority), port (the service port), and an optional TTL.
  5. Enter the target host name. Use a real host with an A or AAAA record, never an IP address or a CNAME. A single dot declares the service unavailable.
  6. Read the generated record, the plain-English summary, and any validation warnings. Copy the data, the owner name, or the full zone-file line.
  7. Pick a DNS provider snippet for BIND, Cloudflare, Route 53, Google Cloud DNS, or Azure DNS to publish the record.
  8. Parser: paste a full zone-file line, a host IN SRV line, or just priority weight port target. The tool validates each field and explains where clients will be directed.

About this tool

SRV Record Generator is a two-mode browser tool for the DNS SRV (service location) resource record defined in RFC 2782, the record that tells a client which host and port a named service lives on. The Build tab assembles the whole record from labeled fields so you never have to remember the wire format: pick the service (the leading underscore is added for you, so sip becomes _sip), the transport protocol (_tcp, _udp, or _tls), and the domain, and the tool composes the fully qualified owner name _service._proto.name. Then set the four data values, priority (0 to 65535, where the lowest number is tried first, exactly like MX priority), weight (the relative share of traffic among records at the same priority, so a weight 60 record gets six times the traffic of a weight 10 record), port (1 to 65535, the actual TCP or UDP port the service answers on), and target (the host name that runs the service). One-click presets fill the services people most often need an SRV record for: Minecraft Java servers on a custom port, SIP over TLS and TCP for VoIP, XMPP client and server federation, Matrix federation, LDAP and Kerberos for Active Directory, Microsoft 365 autodiscover, CalDAV and CardDAV, and STUN. The output panel shows the owner name, the bare priority weight port target data, a complete zone-file line with TTL, and a plain-English summary of where clients will be sent, plus validation that flags the mistakes SRV records are famous for: a target pointed at an IP address instead of a host name (which is invalid, since the target must resolve through an A or AAAA record and may never be a CNAME), a missing underscore on the service or protocol label, out-of-range or non-numeric priority, weight, and port values, and a target missing the trailing dot that a BIND zone file needs. Ready-to-paste DNS provider snippets cover a BIND zone file, the Cloudflare DNS UI (which splits the record into separate service, protocol, priority, weight, port, and target fields), the AWS Route 53 change-batch CLI, the Google Cloud DNS gcloud CLI, and the Azure DNS CLI. The Parse tab accepts a full zone-file line, a host IN SRV style line, or just the four bare data values, splits them into a field-by-field breakdown, validates every value, and explains the effective behavior so you can sanity-check a record someone handed you or one a provider generated. A reference grid contrasts how priority, weight, port, and target interact and lists the common pitfalls, so the page doubles as a quick study sheet. Everything runs locally in your browser with plain string parsing; no DNS queries are sent and the domains, targets, and ports you enter never leave your device.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsDeveloper Tools