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.
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
- Choose Build record to compose an SRV record, or Parse and explain to paste an existing one.
- Builder: pick a preset (Minecraft, SIP over TLS, XMPP, LDAP / Active Directory, autodiscover, and more) or fill the fields yourself.
- 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.
- Set the four data values: priority (lowest tried first), weight (share among equal priority), port (the service port), and an optional TTL.
- 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.
- Read the generated record, the plain-English summary, and any validation warnings. Copy the data, the owner name, or the full zone-file line.
- Pick a DNS provider snippet for BIND, Cloudflare, Route 53, Google Cloud DNS, or Azure DNS to publish the record.
- 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
DNS Record Types Reference
Searchable DNS record types cheat sheet with examples, RFC links, and a compare panel.
Open tool
DeveloperMX Record Generator
Build MX records from a preference and mail server, or parse existing records to validate and explain the delivery order.
Open tool
DeveloperNAPTR Record Generator
Build a NAPTR record from order, preference, flags, service, regexp, and replacement, or parse one to validate and explain it.
Open tool
SecurityCAA Record Generator
Build a CAA record from allowed CAs and iodef contacts, or parse an existing record to validate and explain it.
Open tool
SecuritySPF Record Generator
Build and validate SPF DNS records with mechanism qualifiers, IPs, includes, and the 10-lookup limit.
Open tool
DeveloperDNS TTL Converter
Convert DNS TTL values to and from seconds, BIND notation, and human readable durations.
Open tool
DeveloperPort Number Lookup
Search common TCP and UDP ports by number, service name, or category.
Open tool