Skip to content

Instantly share code, notes, and snippets.

@ergosteur
Last active February 17, 2026 22:26
Show Gist options
  • Select an option

  • Save ergosteur/3334ea2a6138ba385c0df97129b4123d to your computer and use it in GitHub Desktop.

Select an option

Save ergosteur/3334ea2a6138ba385c0df97129b4123d to your computer and use it in GitHub Desktop.
iOS mobileconfig file for forcing IPv4 on Public Mobile cellular data APN to resolve VPN connectivity issues - https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA1Ki000000fxlXKAQ&lang=en_US
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadContent</key>
<array>
<!-- PAYLOAD 1: DNS SETTINGS (Quad9 ECS) -->
<dict>
<key>PayloadDescription</key>
<string>Configures Quad9 (ECS) Encrypted DNS</string>
<key>PayloadDisplayName</key>
<string>Quad9 DNS (DoH)</string>
<key>PayloadIdentifier</key>
<string>com.quad9.dns.config</string>
<key>PayloadType</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadUUID</key>
<string>8f2e91bb-a4bf-4725-8ee3-d04d04d04d04</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>DNSSettings</key>
<dict>
<key>DNSProtocol</key>
<string>HTTPS</string>
<key>ServerURL</key>
<string>https://dns11.quad9.net/dns-query</string>
<key>ServerAddresses</key>
<array>
<string>9.9.9.11</string>
<string>149.112.112.11</string>
</array>
</dict>
<key>ProhibitDisablement</key>
<false/>
</dict>
<!-- PAYLOAD 2: APN SETTINGS (Strict IPv4) -->
<dict>
<key>AttachAPN</key>
<dict>
<key>Name</key>
<string>sp.mb.com</string>
<!-- Protocol Mask: 1 = IPv4 Only -->
<key>AllowedProtocolMask</key>
<integer>1</integer>
</dict>
<key>APNs</key>
<array>
<dict>
<key>Name</key>
<string>sp.mb.com</string>
<key>AllowedProtocolMask</key>
<integer>1</integer>
<key>AllowedProtocolMaskInRoaming</key>
<integer>1</integer>
<key>AllowedProtocolMaskInDomesticRoaming</key>
<integer>1</integer>
</dict>
<dict>
<key>Name</key>
<string>isp.mb.com</string>
<key>AllowedProtocolMask</key>
<integer>1</integer>
<key>AllowedProtocolMaskInRoaming</key>
<integer>1</integer>
<key>AllowedProtocolMaskInDomesticRoaming</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDescription</key>
<string>Configures Public Mobile Data and Hotspot (Strict IPv4)</string>
<key>PayloadDisplayName</key>
<string>Public Mobile APN (IPv4)</string>
<key>PayloadIdentifier</key>
<string>com.publicmobile.apn.ipv4</string>
<key>PayloadType</key>
<string>com.apple.cellular</string>
<key>PayloadUUID</key>
<string>8f2e91bb-a4bf-4725-8ee3-ce11ce11ce11</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Public Mobile IPv4 + Quad9 DNS</string>
<key>PayloadIdentifier</key>
<string>com.publicmobile.quad9.profile</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>8f2e91bb-a4bf-4725-8ee3-999119991100</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<!-- Configures the initial network connection APN -->
<key>AttachAPN</key>
<dict>
<key>Name</key>
<string>sp.mb.com</string>
<!-- Use IPv4 only (value 1) -->
<key>AllowedProtocolMask</key>
<integer>1</integer>
</dict>
<!-- Overrides specific settings for Data and Hotspot APNs -->
<key>APNs</key>
<array>
<!-- Mobile Data settings -->
<dict>
<key>Name</key>
<string>sp.mb.com</string>
<!-- Ensure IPv4 is used for data and roaming -->
<key>AllowedProtocolMask</key>
<integer>1</integer>
<key>AllowedProtocolMaskInRoaming</key>
<integer>1</integer>
<key>AllowedProtocolMaskInDomesticRoaming</key>
<integer>1</integer>
</dict>
<!-- Personal Hotspot settings -->
<dict>
<key>Name</key>
<string>isp.mb.com</string>
<!-- Ensure IPv4 is used for tethering to improve compatibility -->
<key>AllowedProtocolMask</key>
<integer>1</integer>
<key>AllowedProtocolMaskInRoaming</key>
<integer>1</integer>
<key>AllowedProtocolMaskInDomesticRoaming</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDescription</key>
<string>Configures Public Mobile Data and Hotspot (Strict IPv4)</string>
<key>PayloadDisplayName</key>
<string>Public Mobile APN (IPv4)</string>
<key>PayloadIdentifier</key>
<string>com.publicmobile.apn.config</string>
<key>PayloadType</key>
<string>com.apple.cellular</string>
<key>PayloadUUID</key>
<string>8f2e91bb-a4bf-4725-8ee3-2a6d5ce69f1c</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Public Mobile Settings (IPv4 Only)</string>
<key>PayloadIdentifier</key>
<string>com.publicmobile.profile</string>
<!-- Allows the user to remove this profile -->
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>8f2e91bb-a4bf-4725-8ee3-bed564d3e425</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment