Skip to content
Article / 8 min read

Firefox SOCKS5 Configurator: Built-in Settings, about:config, and Per-Container Proxies

Firefox ships a genuine SOCKS5 client — no extension required. Here's how to configure it in Settings and about:config, force remote DNS, split traffic with FoxyProxy or Multi-Account Containers, and verify you're not leaking.

Firefox SOCKS5 Configurator: Built-in Settings, about:config, and Per-Container Proxies

Firefox is one of the few mainstream browsers that still ships a real SOCKS5 client setting — no extension required. That makes it a practical choice when you want to route browser traffic through a proxy without touching system-wide settings. This guide walks through the built-in configuration, the about:config preferences that control DNS behaviour, and the ways to split traffic per site or per container. We'll also cover verification so you can prove the proxy is doing what you think it is.

Why Firefox's SOCKS5 Support Matters

Chrome has no native SOCKS5 setting; it relies on the operating system or command-line flags. Firefox, by contrast, has a full manual proxy configuration that includes a SOCKS host, port, version selector, and a dedicated checkbox for remote DNS resolution. That combination makes Firefox the easiest browser to point at a local or remote SOCKS5 endpoint without installing extra software.

If you are behind a restrictive network, testing a proxy provider, or simply prefer per-app routing, Firefox's built-in support is often the fastest way to get started. It is not system-wide — only Firefox traffic uses it — which is exactly what you want when you don't want to disrupt other applications.

Configure SOCKS5 in Firefox Settings (GUI)

  1. Open Firefox Settings (or navigate to about:preferences).
  2. Scroll to the Network Settings section and click Settings….
  3. Select Manual proxy configuration.
  4. In the SOCKS Host field, enter the proxy IP address (e.g., 127.0.0.1 for a local tunnel).
  5. Enter the port (e.g., 1080).
  6. Select SOCKS v5.
  7. Ensure Proxy DNS when using SOCKS v5 is checked.
  8. Click OK.

The No proxy for field accepts a comma-separated list of hosts that should bypass the proxy — typically localhost, 127.0.0.1 to avoid loops with local services.

The about:config Preferences Behind the GUI

Everything the GUI sets is stored in about:config. These are the preferences that matter for SOCKS5:

Preference Purpose Typical value
network.proxy.type 1 = manual proxy configuration 1
network.proxy.socks SOCKS host address 127.0.0.1
network.proxy.socks_port SOCKS port 1080
network.proxy.socks_version 5 for SOCKS5 5
network.proxy.socks_remote_dns Resolve DNS at the proxy instead of locally true
network.proxy.no_proxies_on Bypass list localhost, 127.0.0.1

You can also set these via a user.js file in your Firefox profile folder, which is useful for provisioning a profile or automating a testing setup:

// user.js — Firefox SOCKS5 configuration
user_pref("network.proxy.type", 1);
user_pref("network.proxy.socks", "127.0.0.1");
user_pref("network.proxy.socks_port", 1080);
user_pref("network.proxy.socks_version", 5);
user_pref("network.proxy.socks_remote_dns", true);
user_pref("network.proxy.no_proxies_on", "localhost, 127.0.0.1");

Remote DNS: The Setting That Prevents Leaks

When you use a SOCKS5 proxy, DNS resolution can happen in two places: locally on your machine, or remotely at the proxy. The socks5 versus socks5h distinction in command-line tools exists for exactly this reason. In Firefox, the Proxy DNS when using SOCKS v5 checkbox controls network.proxy.socks_remote_dns.

If remote DNS is disabled, Firefox will resolve domain names using your local resolver before sending the connection to the proxy. That can leak the sites you visit to your ISP or local network. Enable remote DNS so the proxy resolves hostnames on your behalf. You can verify this by visiting a DNS leak test site and checking whether the resolver IP belongs to your proxy or your ISP.

Per-Site Routing with FoxyProxy

Firefox's built-in proxy settings apply to all traffic. If you need to send only certain sites through the proxy — and keep others direct — FoxyProxy Standard is the usual solution.

  1. Install the FoxyProxy Standard extension.
  2. Open its options and add a new proxy: select SOCKS5, enter the host and port.
  3. If the proxy requires authentication, enter the username and password. FoxyProxy stores these, unlike Firefox's built-in prompt which asks every session.
  4. Create a pattern that matches the sites you want proxied. Patterns can be wildcards (e.g., *.example.com/*) or regular expressions.
  5. Set the mode to Use proxies based on their pre-defined patterns and priorities.
  6. Test by visiting a site that echoes your IP — it should show the proxy's address for matched patterns and your real address for others.

FoxyProxy is particularly useful for split-tunnelling: route a specific web app through a geo-restricted proxy while leaving ordinary browsing untouched.

Per-Container Proxies and Isolated Profiles

Firefox Multi-Account Containers isolate cookies and storage, but they do not natively support different proxy settings per container. To assign proxies per container, you can use a third-party extension such as Container Proxy, which maps containers to proxy configurations. This is an advanced setup and the extension is not maintained by Mozilla, so test carefully.

A simpler, more robust alternative is to run separate Firefox profiles. Each profile has its own about:config, extensions, and proxy settings. You can launch a specific profile from the command line:

firefox -P "Work" -no-remote

Replace "Work" with your profile name. The -no-remote flag allows the new instance to run alongside an existing Firefox process. You can create profiles via the Firefox Profile Manager (firefox -ProfileManager), and then set a different SOCKS5 proxy in each one.

Local SOCKS5 via SSH Tunnel (No Provider Needed)

If you have a VPS or any SSH access, you can create a local SOCKS5 proxy without a commercial proxy service. The SSH dynamic forwarding feature (-D) turns your SSH connection into a SOCKS5 proxy on a local port:

ssh -D 1080 -N -C [email protected]
  • -D 1080 tells SSH to listen on local port 1080 as a SOCKS5 proxy.
  • -N prevents running a remote command — you only want the tunnel.
  • -C enables compression, which can help on slow links.

Then point Firefox to 127.0.0.1:1080 with SOCKS v5 and remote DNS enabled. Your traffic exits from the server's IP, and the SSH layer encrypts the connection between you and the server. This is a common pattern for testing or for temporary access to geo-restricted content.

Verify the Proxy Is Working (and Not Leaking)

After configuring Firefox, do not assume everything is correct. Run these checks:

  • IP check: Visit a service that echoes your public IP (e.g., ifconfig.me). The displayed IP should match the proxy's exit address, not your real one.
  • DNS leak test: Use a DNS leak test site. The resolver should be the proxy's resolver or a public DNS service, not your ISP's server. If you see your ISP's resolver, remote DNS is probably disabled.
  • WebRTC check: Some sites can discover your local IP via WebRTC even when a proxy is active. You can disable WebRTC in about:config by setting media.peerconnection.enabled to false, but this breaks video conferencing and some web apps. Use it only if you need to hide local IPs.
  • Command-line test: From a terminal, test the proxy directly with curl:
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me

The --socks5-hostname flag forces curl to resolve DNS remotely through the proxy, matching Firefox's remote DNS behaviour. If curl works but Firefox does not, the problem is likely in Firefox's configuration or an extension interfering.

Common Problems and Fixes

  • Proxy authentication prompts: Firefox's built-in proxy settings do not store credentials, so it will prompt on every new session. Use FoxyProxy or a similar extension to save them.
  • Proxy not working at all: Verify the host and port, ensure the proxy is reachable (test with curl first), and check that no firewall is blocking the port.
  • DNS leaks: Confirm network.proxy.socks_remote_dns is true. This is the single most common leak.
  • WebRTC leaks: Disable media.peerconnection.enabled if you need to prevent local IP exposure.
  • Bypass list issues: Make sure localhost and 127.0.0.1 are in network.proxy.no_proxies_on to avoid loops with local services.

When a Browser Proxy Is Not Enough

Firefox only proxies its own traffic. If you need system-wide routing, per-application control, or command-line tools to use the proxy, you will need a different layer. For per-app routing on Windows and macOS, see our guide on Proxifier + SOCKS5. For Linux, proxychains and redsocks are common approaches. If you need rotating proxies for scraping, browser configuration is not the right layer — use a Python library or a rotating gateway instead.

Takeaway

Firefox's built-in SOCKS5 support is one of the cleanest ways to route a browser through a proxy without system-wide changes. Set it in Settings or about:config, always enable remote DNS, and reach for FoxyProxy or separate profiles when you need per-site or per-container control. Verify with an IP check, a DNS leak test, and a curl command before you trust it with sensitive traffic.