Skip to main content
Scraper API

How to Check Proxy Settings in Chrome: Complete 2026 Guide

7 min read

How to Check Proxy Settings in Chrome: The Definitive Guide

Google Chrome handles proxy settings differently than many users expect. As a senior proxy expert, I often see users frustrated because they look for a "Proxy Settings" tab inside the Chrome menu that doesn't exist. Chrome does not maintain its own independent proxy settings; it inherits them from the underlying operating system (Windows, macOS, Linux) or via extensions.

This guide will walk you through how to check, verify, and debug these settings across different environments, from simple GUI checks to advanced command-line diagnostics used in web scraping.

---

Understanding Chrome's Proxy Architecture

Before diving into the "how," it is crucial to understand the "why." Chrome is built on the Chromium engine. By default, it uses the system proxy service. This means if you set a proxy in Windows Settings, Chrome respects it. However, Chrome supports specific overrides via:

1. System Settings: The global configuration for the OS. 2. Environment Variables: Specifically HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (common in Linux). 3. Command Line Flags: Launch arguments like --proxy-server. 4. Extensions: Browser extensions that modify chrome.proxy.settings.

The Difference between "Checking" and "Setting"

  • Checking: Determining what Chrome is *actually* using right now to route traffic.
  • Setting: Configuring where Chrome looks for connection details.
  • ---

    Method 1: The Native Browser Way (All OS)

    The most accurate way to check the *effective* proxy settings currently loaded by the browser is using Chrome's internal debugging pages. This works regardless of your operating system.

    Step 1: Access the Proxy Internals

    Open a new tab and type the following URL into your Omnibar (address bar):

    chrome://net-internals/#proxy
    

    Step 2: Analyze the Output

    You will see a text log showing the "Proxy Settings" in effect. This page tells you exactly what Chrome "sees." It reveals:

  • System Settings: What the OS reports.
  • Effective Settings: The combination of OS and any manual command-line overrides.
  • Bypass List: Which domains (if any) are being excluded from the proxy (e.g., localhost, 127.0.0.1).
  • Alternative: The Connection Tab

    You can also use the older, less detailed internal page: chrome://settings/system (or click the three dots > Settings > System > Open your computer's proxy settings).

    This acts as a shortcut. Clicking "Open proxy settings" will immediately launch the specific network configuration window for your OS (Windows Settings, macOS System Preferences, or KDE/Gnome settings on Linux).

    ---

    Method 2: Operating System Specific Checks

    Since Chrome relies on the OS, you must verify the OS-level configuration to ensure Chrome picks up the right IP.

    Windows 10 / 11

    1. Press Windows Key + I to open Settings. 2. Navigate to Network & Internet. 3. Select Proxy from the left sidebar. 4. Look for the "Manual proxy setup" section. 5. Verify the IP Address, Port, and ensure the Use a proxy server toggle is correct.

    *Note for Developers: If "Automatically detect settings" is on, Windows uses WPAD (Web Proxy Auto-Discovery Protocol). This often causes issues in scraping as the script can switch proxies without warning.*

    macOS (Monterey, Ventura, Sonoma, Sequoia)

    1. Click the Apple Menu > System Settings. 2. Go to Network. 3. Select your active connection (Wi-Fi or Ethernet) and click Details. 4. Click the Proxies tab. 5. Here you can view configurations for HTTP, HTTPS, SOCKS, and FTP proxies. Ensure the checkboxes match your intended setup.

    Linux (Ubuntu/Debian/CentOS)

    On Linux, Chrome often respects the environment variables set in your ~/.bashrc or /etc/environment. To check these:

    Open a terminal and type:

    echo $HTTP_PROXY
    

    echo $HTTPS_PROXY

    If these return an IP (e.g., 192.168.1.50:8080), Chrome is using them.

    ---

    Method 3: Checking via Command Line (Advanced)

    If you are launching Chrome via Selenium, Puppeteer, or scripts for web scraping, you often pass proxy settings via command-line arguments. You need to verify if the process *received* these flags.

    1. Inspect Running Processes

    On Linux/macOS:

    ps aux | grep chrome
    

    On Windows (PowerShell):

    Get-Process chrome | Select-Object Path, Id
    

    *(Note: Seeing the full command line in Windows requires administrative privileges and tools like Process Explorer, as Get-Process truncates arguments.)*

    Look for the flag: --proxy-server="ip:port"

    2. Launch Chrome with Config Check

    You can force Chrome to display the configuration it detected at startup using the --show-proxy-config flag (note: availability depends on the specific build version, but chrome://net-internals is more reliable for checking).

    ---

    Method 4: Verification via Python (For Scrapers)

    As an expert in proxy management, I never assume the browser is using the proxy just because I set it. I verify the egress IP.

    Scenario A: Using Selenium with Chrome

    If you are automating Chrome with Selenium, you must pass the proxy capabilities to the ChromeOptions class. Here is how to set it and verify it:

    from selenium import webdriver
    

    from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.proxy import Proxy, ProxyType

    1. Setup Proxy Configuration

    prox = Proxy() prox.proxy_type = ProxyType.MANUAL prox.http_proxy = "ip_address:port" prox.ssl_proxy = "ip_address:port"

    2. Apply to Chrome Options

    capabilities = webdriver.DesiredCapabilities.CHROME capabilities['proxy'] = { "httpProxy": "ip_address:port", "ftpProxy": "ip_address:port", "sslProxy": "ip_address:port", "proxyType": "MANUAL", }

    options = Options()

    options.add_argument('--headless') # Uncomment for scraping

    3. Initialize Driver

    driver = webdriver.Chrome(options=options, desired_capabilities=capabilities)

    4. CHECK THE SETTINGS (The Verification Step)

    driver.get("https://api.ipify.org?format=json")

    import json ip_data = json.loads(driver.find_element("tag name", "pre").text) print(f"Chrome is effectively using IP: {ip_data['ip']}")

    If this IP matches your proxy, your settings are correct.

    driver.quit()

    Scenario B: Verifying System Proxy via Python Requests

    Sometimes you want to check if your *OS* settings (which Chrome uses) are correct for a standard HTTP request.

    import requests
    

    import os

    Check environment variables

    print(f"System HTTP Proxy: {os.environ.get('HTTP_PROXY', 'Not Set')}")

    Try a request (implicitly trusts system env vars if using sessions)

    response = requests.get('https://api.ipify.org?format=json') print(f"Current Egress IP: {response.json()['ip']}")

    ---

    Troubleshooting Common Proxy Issues in Chrome

    Issue 1: "The proxy server isn't responding"

    This is the most common error (Code: ERR_PROXY_CONNECTION_FAILED).

  • Check: Is the proxy IP actually online?
  • Fix: If you are using a paid proxy service, verify the IP hasn't changed (common with rotating residential proxies). If using a datacenter proxy, ping the IP from your terminal first.
  • Issue 2: Chrome ignores the Proxy

    If you set the proxy in the OS but Chrome goes direct: 1. Check extensions. Some "VPN" or "Privacy" extensions force chrome.proxy.settings to "Direct" mode. Disable all extensions and re-check. 2. Check Command Line flags. Did you start Chrome with --no-proxy-server?

    Issue 3: Localhost / 127.0.0.1 Loop

    Developers often set up a local proxy (like Squid or ProxyBroker) on localhost:8080.

  • *Problem:* Chrome might route your internal tools through the external proxy, causing loops.
  • *Fix:* Add localhost, 127.0.0.1 to your "Bypass list" in the OS settings.

Summary Table: Proxy Configuration Locations

| Platform | Where to Check GUI | Config File / Registry Location | | :--- | :--- | :--- | | Windows | Settings > Network & Internet > Proxy | Registry: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings | | macOS | System Settings > Network > Details > Proxies | System Preferences (stored in preferences.plist) | | Linux | System Settings > Network > Proxy | Environment vars: /etc/environment or ~/.bashrc | | Chrome | chrome://net-internals/#proxy | Local State file (JSON) in User Profile directory |

By systematically checking these layers—starting with chrome://net-internals and moving down to the OS level—you can diagnose exactly how your traffic is being routed in 2025.

Share: