Inline Selector Reference
Supported selector forms, URL syntax, and practical caveats for inline-selector access.
This page lists the selector forms Mullgate supports when --access-mode inline-selector is enabled.
It does not try to list every live selector value. The exact live set depends on:
- the current Mullvad relay catalog
- any configured provider constraints
- whether a selector resolves to exactly one target
Use mullgate proxy access --access-mode inline-selector to inspect the live examples for the current config.
URL shape
The selector lives in the proxy username.
Guaranteed form:
scheme://selector:@host:portBest-effort form:
scheme://selector@host:portUse the guaranteed form. Some clients handle a missing password poorly, which is why Mullgate documents selector:@host:port as the safe syntax.
Supported selector families
Country selectors
Supported forms:
- ISO country code
- normalized country slug
Examples:
se
sweden
ca
canadaMeaning:
- selects a relay in that country
- Mullgate chooses a preferred relay that matches the selector and any configured constraints
City selectors
Supported forms:
countryCode-cityCodecountryCode-citySlugcountrySlug-citySlug- bare
citySlug, but only when that city slug is globally unambiguous
Examples:
se-got
se-gothenburg
sweden-gothenburg
gothenburg
ca-tor
canada-toronto
torontoMeaning:
- selects a relay in that city
- Mullgate chooses a preferred relay in the matched city after applying any provider constraints
Exact relay selectors
Supported forms:
- relay hostname
- relay FQDN
Examples:
se-got-wg-101
se-got-wg-101.relays.mullvad.net
ca-tor-wg-301
ca-tor-wg-301.relays.mullvad.netMeaning:
- targets that exact Mullvad relay
- this is the most specific selector form
Resolution rules
Inline selectors only work when the selector resolves to exactly one target.
That means:
- exact relay hostnames work when the relay exists in the current catalog
- country and city selectors work when they map cleanly after constraints are applied
- ambiguous short aliases are not guaranteed to be available
- a bare city slug such as
gothenburgortorontois only usable if it is unique in the catalog
Provider constraints
If you configure Mullgate to limit allowed providers, the live selector set narrows with it.
Examples:
- a city selector may stop resolving if all matching relays are filtered out
- an exact relay selector disappears if that relay no longer satisfies the saved provider constraints
Protocols
Inline-selector uses one shared listener per enabled protocol.
Typical URLs:
socks5://se:@100.124.44.113:1080
http://se-got:@100.124.44.113:8080
https://se-got-wg-101:@100.124.44.113:8443Notes:
https://...only works if HTTPS proxy support is configured with a cert, key, and HTTPS port- in
private-network, clients should use the host's real trusted-network IP, such as its Tailscale100.xaddress 0.0.0.0is a bind-any address, not the client target
Practical examples
Choose a country:
socks5://ca:@100.124.44.113:1080Choose a city:
socks5://ca-tor:@100.124.44.113:1080Choose an exact relay:
socks5://ca-tor-wg-301:@100.124.44.113:1080Use the relay FQDN:
socks5://ca-tor-wg-301.relays.mullvad.net:@100.124.44.113:1080What this mode does not do
- it does not generate a static per-route proxy list like
published-routes - it does not guarantee that every short alias is unique
- it does not bypass the public empty-password safety rule
If you need a generated proxy inventory file, stay on published-routes and use mullgate proxy export.