How to Add a Proxy in Chrome: Complete Configuration Guide [2026]
How to Add a Proxy in Chrome: Advanced Configuration & Automation
Configuring Google Chrome to use a proxy server is a fundamental skill for web scraping, privacy protection, and accessing geo-restricted content. Unlike Firefox, which allows you to set a proxy directly within the browser's connection settings, Google Chrome is architected to share the proxy settings of the host operating system. This design choice simplifies management for average users but requires specific workarounds for developers and power users who require browser-specific proxies.
This guide covers the manual configuration via OS settings, browser-agnostic solutions using extensions, and advanced programmatic control using Python and Selenium for scraping tasks.
---
Method 1: Configuring via Operating System Settings (The Standard Way)
This is the most common method. When you configure the proxy here, Chrome, Edge, and other system browsers will adhere to these rules.
On Windows 10 and 11
1. Access Settings: In Chrome, type chrome://settings/system in the address bar and press Enter. 2. Open Proxy Settings: Click the button labeled "Open your computer's proxy settings". This will launch the Windows Settings app. 3. Manual Setup: Scroll down to the "Manual proxy setup" section. 4. Toggle On: Flip the switch for "Use a proxy server". 5. Input Details: * Address/IP: Enter the proxy server IP (e.g., 192.168.1.10). * Port: Enter the port number (e.g., 8080). 6. Save: Click Save.
*Note: Windows does not support username/password authentication for HTTP proxies natively in this menu. If your proxy requires authentication, you will receive a popup prompt from Chrome when you first navigate to a website.
On macOS
1. Access System Settings: In Chrome, go to Settings > System > Open your computer's proxy settings. 2. Network Selection: Ensure you are connected to the network (Wi-Fi or Ethernet), then click Details or Advanced. 3. Proxies Tab: Click the Proxies tab. 4. Select Protocol: Check the box for the protocol your proxy uses (e.g., HTTP, HTTPS, or SOCKS Proxy). 5. Configuration: Enter the proxy server and port. 6. Authentication: If required, click the lock icon to unlock settings, then input the username and password directly into the system prompt.
---
Method 2: Browser-Specific Proxies (Extensions & Flags)
If you do not want other applications (like Outlook or Spotify) routing through your proxy, you must use a Chrome Extension or a command-line flag.
Using Chrome Extensions (Recommended for Flexibility)
Extensions allow you to configure proxies that *only* affect Chrome traffic, or even specific websites within Chrome.
Top Choice: Proxy SwitchyOmega
1. Install: Add "Proxy SwitchyOmega" from the Chrome Web Store. 2. Setup Wizard: Open the extension and click the "New Profile" wizard. 3. Profile Type: Choose "Proxy Server". 4. Input: * Protocol: Select HTTP, HTTPS, or SOCKS5. * Server: proxy.example.com * Port: 1234 * Auth: Enter username/password if applicable (stored locally in Chrome). 5. Apply Settings: Click "Apply Options". You can now click the extension icon to toggle the proxy on or off.
Using Chrome Command-Line Flags (For Automation)
You can launch Chrome with a proxy pre-configured without saving it to the OS. This is ideal for temporary debugging.
Windows Command Prompt:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --proxy-server="192.168.1.10:8080"
macOS / Linux Terminal:
google-chrome --proxy-server="192.168.1.10:8080"
---
Method 3: Programmatic Proxy Configuration (Python & Selenium)
For web scraping professionals, hardcoding proxies into the browser is inefficient. We use Selenium to inject proxies dynamically.
Selenium Wire (Best for HTTP/HTTPS Auth)
The standard selenium library struggles with proxy authentication. We use selenium-wire to extend its functionality.
Installation:
pip install selenium-wire
Code Snippet:
from seleniumwire import Chrome # Import from seleniumwire, not selenium
Define the proxy
capabilities = { 'proxy': { 'http': 'http://username:password@proxy-server-ip:8080', 'https': 'https://username:password@proxy-server-ip:8080', 'no_proxy': 'localhost,127.0.0.1' # Bypass these addresses } }
Initialize the browser with proxy config
driver = Chrome(options=webdriver.ChromeOptions()) driver.get('https://httpbin.org/ip')
Verify request headers
print(driver.requests[0].headers['User-Agent']) print(f"Proxy IP: {driver.requests[0].response.headers['X-Proxy-User-IP']}")
driver.quit()
Undetected Chrome (For Anti-Bot Evasion)
When scraping complex targets like Cloudflare-protected sites, you need to avoid detection.
import undetected_chromedriver as uc
from selenium.webdriver.common.proxy import Proxy, ProxyType
options = uc.ChromeOptions()
Configure proxy via capabilities
proxy = Proxy() proxy.proxy_type = ProxyType.MANUAL proxy.http_proxy = "ip_addr:port" proxy.ssl_proxy = "ip_addr:port"
Add to capabilities
options.add_argument('--proxy-server=http://ip_addr:port')
driver = uc.Chrome(options=options) driver.get('https://bot.sannysoft.com/')
---
Understanding Proxy Protocols: HTTP vs. SOCKS5
Not all proxies are created equal. Selecting the wrong protocol in Chrome will result in connection failures.
| Feature | HTTP Proxy | SOCKS5 Proxy | | :--- | :--- | :--- | | Traffic Type | Primarily HTTP/HTTPS web traffic. | Any traffic (TCP/UDP), including FTP, SMTP, etc. | | Data Inspection | Can interpret and filter headers. | Tunnels raw data packets; cannot inspect headers. | | Performance | Generally faster for web browsing. | Slightly higher latency due to lower overhead. | | Security | Supports "CONNECT" method for SSL tunneling. | Supports authentication and ensures integrity. | | Chrome Use Case | General web scraping, accessing geo-content. | P2P applications, gaming, or high-anonymity scraping. |
*Recommendation:* For 2025 scraping standards, prefer SOCKS5 or HTTPS Proxies. Standard HTTP proxies transmit your target URL in plain text, which is a major security risk.
---
Troubleshooting Common Proxy Errors in Chrome
1. ERR_NO_SUPPORTED_PROXIES
This occurs if you try to use an HTTP proxy for a WebSocket connection (WSS). Fix: Switch to a SOCKS5 proxy or ensure your HTTP proxy supports the CONNECT method for WebSockets.
2. ERR_PROXY_AUTH_REQUESTED
If Chrome does not prompt you for a password, or repeatedly fails authentication:
- Windows: Ensure Credential Manager is not storing an old password for the proxy.
- URL Encoding: If using a command-line flag, ensure special characters in your password (like
@or#) are URL encoded (e.g.,%40). - Fix: In your extension or proxy settings, look for the option "Proxy DNS when using SOCKS v5" and ensure it is enabled. This forces DNS queries through the proxy IP rather than your local ISP.
3. Leaking DNS Requests
By default, Chrome may bypass the proxy for DNS lookups if not configured correctly.
Advanced: PAC Files (Proxy Auto-Configuration)
For enterprise environments or advanced scrapers managing a pool of IPs, you can host a PAC file and tell Chrome to use it.
In Chrome Settings: Set "Automatic proxy setup URL" to: http://my-domain.com/proxy.pac
PAC File Logic (Example):
function FindProxyForURL(url, host) {
// Send traffic to specific domains through Proxy A if (shExpMatch(host, "*.google.com")) { return "PROXY 192.168.1.10:8080"; } // Send traffic to scraping targets through Proxy B if (shExpMatch(url, "*target-site.com*")) { return "PROXY 192.168.1.11:8080"; } // Direct connection for everything else return "DIRECT"; }
This method is highly scalable as it allows you to change routing rules centrally without touching every client machine.