Upstream Proxy

September 15, 2026 · View on GitHub

Upstream Proxy lets Rockxy chain outbound requests through another proxy server after Rockxy has captured, decrypted, and applied rules to the traffic. This is useful when a team network, test lab, VPN-adjacent workflow, or debugging setup requires outbound traffic to leave through a fixed proxy endpoint or a network-provided PAC file.

Upstream proxy bypass list

Entry Points

ActionHow to Access
Toggle Upstream ProxyTools > Proxy Settings > Use External Proxy
Configure Upstream ProxyTools > Proxy Settings > External Proxy Settings...
Review SOCKS5 settingsTools > Proxy Settings > SOCKS Proxy Settings...
Test connectionExternal Proxy Settings > Test Connection

Supported Modes

ModeCommunity SupportNotes
Automatic Proxy Configuration (PAC)SupportedEvaluates an HTTP/HTTPS PAC URL per target and follows the first supported route.
HTTP proxySupportedSends plain http:// targets in absolute form (GET http://host/path) on the proxy connection and uses HTTP CONNECT only for TLS targets, matching the policy of Squid-style gateways that refuse CONNECT to port 80.
HTTPS proxySupportedConnects to the proxy over TLS and verifies the proxy hostname certificate; the same absolute-form/CONNECT split applies.
SOCKS5 proxyCapped by app policyThe core connector supports SOCKS5, but the Community policy keeps it unavailable.
Proxy authenticationCapped by app policyCredentials are held in memory and passwords are stored only in Keychain when the policy allows authentication.

When Upstream Proxy is disabled, Rockxy uses the same direct outbound connection path as before. The connector is designed so disabled and bypassed traffic remains byte-for-byte equivalent to direct forwarding.

Automatic Proxy Configuration

Automatic Proxy Configuration is a core Rockxy workflow for environments that publish a .pac file. Rockxy uses the PAC URL you enter in External Proxy Settings, evaluates it for each target host, and then routes the request through the selected path.

PAC ResultBehavior
DIRECTConnects directly from Rockxy to the target server.
PROXY host:portUses the existing HTTP upstream proxy path.
HTTPS host:portUses the existing HTTPS upstream proxy path.
SOCKS host:port or SOCKS5 host:portUses SOCKS5 only when the current app policy allows SOCKS5.

PAC support is free/core because it is standard network compatibility, especially for corporate, school, and VPN-adjacent environments. It does not bypass other policy gates: if a PAC file selects SOCKS5 or a proxy requires credentials, those capabilities still follow Rockxy's existing app policy.

Bypass Rules

The Community policy allows up to 3 upstream bypass entries. Bypassed hosts connect directly from Rockxy to the target server instead of going through the upstream proxy.

PatternMatches
api.example.comOnly that exact host
*.example.comSubdomains such as staging.example.com
?ost.localSingle-character wildcard matches such as host.local
127.0.0.1, localhost, ::1Localhost targets

Localhost bypass is enabled by default so local development servers, device setup probes, and loopback validation flows do not accidentally leave the machine.

Test Connection

The test action opens a short-lived outbound connection through the current upstream configuration and reports:

  • whether the proxy handshake succeeded
  • which proxy type was negotiated
  • which PAC route was selected when Automatic Proxy Configuration is active
  • how long the connection and handshake took
  • the categorized failure when the proxy rejects or times out

The default test target is example.com:80.

Community UI Behavior

The External Proxy Settings window shows the same protocol choices as the underlying connector, but locked controls remain backed by app policy:

  • HTTP and HTTPS proxy configuration can be saved.
  • Automatic Proxy Configuration can be saved with an HTTP or HTTPS PAC URL.
  • SOCKS5 is visible but unavailable under the default policy.
  • Authentication is visible but unavailable under the default policy.
  • The bypass list displays the 3-entry Community cap.

The UI only reflects store predicates. Store and service boundaries still enforce every policy decision.

Security Notes

  • HTTPS upstream proxy connections use normal certificate-chain validation against the proxy hostname.
  • PAC URLs must use http or https.
  • Upstream proxy passwords are not stored in UserDefaults.
  • Credentials are never included in surfaced error text.
  • Proxy handshake reads are bounded to avoid untrusted oversized responses.

Limitations

  • WPAD auto-discovery is not supported; enter the PAC URL manually.
  • Per-host upstream routing is not supported; configuration is global.
  • SOCKS5 and authentication are present in the reusable connector but unavailable under the Community app policy.