Skip to main content
Troubleshooting

How to Check Proxy and Firewall Settings on Windows 10 (2026 Guide)

7 min read

Comprehensive Guide to Auditing Proxy and Firewall Configurations on Windows 10

Understanding your network configuration is a critical skill for troubleshooting connectivity issues, ensuring privacy, and optimizing web scraping operations. Whether you are diagnosing a 'Connection Refused' error or setting up a rotating residential proxy for data aggregation, knowing exactly how to inspect your Proxy and Firewall settings on Windows 10 is essential.

In this guide, we will cover everything from basic GUI checks to advanced command-line auditing and Python automation.

---

Part 1: Understanding the Distinction

Before diving into the 'how', it is vital to understand the 'what'.

  • The Proxy: A proxy server acts as an intermediary. When you type a URL into your browser, the request goes to the proxy server first. The proxy forwards the request to the target website, receives the response, and sends it back to you. This hides your IP address and can bypass geo-restrictions.
  • The Firewall: A firewall is a security guard. It monitors incoming and outgoing network traffic based on predetermined security rules. It decides whether to allow or block specific data packets.
  • ---

    Part 2: How to Check Proxy Settings on Windows 10

    There are three layers to proxy settings on Windows: the Browser level (Chrome/Edge), the System level (OS Settings), and the WinHTTP level (used by underlying services).

    Method A: Checking System Proxy (Windows Settings)

    This is the most common location users check. It affects almost all modern browsers (Chrome, Edge, Firefox) unless they are configured otherwise.

    1. Press Windows Key + I to open Settings. 2. Navigate to Network & Internet. 3. Click on Proxy in the left-hand sidebar. 4. Inspect 'Automatic proxy setup': If 'Automatically detect settings' is on, Windows uses WPAD (Web Proxy Auto-Discovery Protocol) to find a configuration script. 5. Inspect 'Manual proxy setup': If 'Use a proxy server' is enabled, the IP Address and Port fields below will be active. This is your current proxy endpoint.

    Method B: Checking Proxy via Command Line (CMD)

    For experts and automation, the GUI is too slow. We use the Terminal.

    Checking WinHTTP Proxy (System Level): Many Python scraping libraries (like requests) ignore browser settings and look at the WinHTTP layer.

    netsh winhttp show proxy
    

    *Output Interpretation:*

  • Direct access (no proxy server): You are not using a system-wide proxy.
  • Proxy Server(s) : proxy.example.com:8080: Your system is routing traffic through this endpoint.

Resetting Proxy via CMD: If a malicious program has set a proxy and you cannot remove it via the GUI, run:

netsh winhttp reset proxy

Method C: Checking Browser-Specific Proxies (Chrome)

Sometimes the OS says 'No Proxy', but Chrome is using one via extensions or flags.

1. In Chrome, type chrome://net-internals/#proxy in the address bar. 2. Look at the 'Effective settings' section. It will show the exact source of the proxy configuration (e.g., 'System settings', 'Fixed servers', or 'PAC script').

---

Part 3: How to Check Firewall Settings on Windows 10

The Windows Defender Firewall can block your scraping bot or internet connection silently. You need to verify if the rule exists and if it is enabled.

Method A: Checking Firewall Status (GUI)

1. Press Windows Key + R, type firewall.cpl, and hit Enter. 2. The main screen shows whether the firewall is On or Off for Domain, Private, and Public networks. 3. To allow an app (e.g., Python or your scraper), click Allow an app or feature through Windows Defender Firewall. 4. Locate the application in the list and ensure the checkboxes for Private and Public are ticked.

Method B: Advanced Firewall Auditing (Command Line)

To see exactly which rules are blocking traffic, PowerShell is superior to the GUI.

Check Firewall State:

Get-NetFirewallProfile | Select-Object Name, Enabled

Find Blocking Rules: If you cannot connect to a specific port (e.g., port 8080), check for rules that specifically block it:

Get-NetFirewallRule | Where-Object {$_.Enabled -eq 'True' -and $_.Direction -eq 'Inbound'} | Format-Table DisplayName, Action, Enabled

Enable a Rule via CMD: If you need to allow Python through the firewall instantly:

netsh advfirewall firewall add rule name="Python Allow" dir=in action=allow program="C:\Python39\python.exe" enable=yes

---

Part 4: Practical Use Case - The "Dead Proxy" Scenario

The Scenario

You are scraping a target site using Python requests. The script hangs and times out. You suspect your corporate firewall is killing the connection or the proxy is down.

The Troubleshooting Logic

1. Verify OS Proxy: Run netsh winhttp show proxy. If it returns a proxy IP, your code might need to ignore it if you are using a direct connection. 2. Verify Firewall: Check the Windows Firewall logs (located in C:\Windows\System32\logfiles\Firewall\pfirewall.log). Look for 'DROP' entries corresponding to your Python executable's PID. 3. The Fix: You often need to explicitly tell Python to ignore the system proxy if you want a direct connection, or vice-versa.

Python Code Snippet: Proxy & Firewall Audit

Below is a Python script that automates the check of your external IP (to verify if a proxy is active) and tests connectivity.

import requests

import os import subprocess

def check_proxy_settings(): # Check System Environment Variables for Proxy http_proxy = os.environ.get('HTTP_PROXY') or os.environ.get('http_proxy') https_proxy = os.environ.get('HTTPS_PROXY') or os.environ.get('https_proxy')

if http_proxy: print(f"[ALERT] System HTTP Proxy detected: {http_proxy}") else: print("[INFO] No System HTTP Proxy detected in Environment Variables.")

def check_connectivity(test_url="http://www.google.com"): try: # Setting a timeout to prevent hanging if Firewall blocks response = requests.get(test_url, timeout=5) if response.status_code == 200: print(f"[SUCCESS] Connection established to {test_url}") print(f"Your Public IP is: {response.json()['origin']}" if 'json' in test_url else "") else: print(f"[WARNING] Received status code: {response.status_code}") except requests.exceptions.Timeout: print("[ERROR] Request Timed Out. Likely blocked by Firewall or Proxy is unreachable.") except requests.exceptions.ConnectionError: print("[ERROR] Connection Error. Check network or Firewall rules.")

if __name__ == "__main__": print("--- Windows 10 Proxy & Firewall Audit Script ---") check_proxy_settings() check_connectivity()

---

Part 5: Comparison Table - Proxy vs. Firewall Logs

When debugging, knowing where to look is half the battle.

| Feature | Proxy Logs (Server Side) | Firewall Logs (Client Side) | | :--- | :--- | :--- | | Location | On the Proxy Server device or service | C:\Windows\System32\logfiles\Firewall\ | | Visibility | Shows full HTTP URLs requested | Shows IP Addresses and Ports (TCP/UDP) | | Primary Use | Content Filtering & Caching | Intrusion Prevention & Access Control | | Failure Mode | Returns 407 Proxy Authentication Required | Drops packet (No response) or RST |

---

Part 6: Summary and Best Practices

Managing network configurations on Windows 10 requires a dual approach:

1. Use the GUI (Settings) for quick changes, like toggling a proxy on/off for browsing. 2. Use the CLI (netsh/PowerShell) for scripting, auditing, and troubleshooting scraping bots.

Pro Tip for Scrapers: If you are using rotating proxies on Windows 10, always verify your 'Public IP' after setting the proxy. You can do this quickly with curl ifconfig.me. If the returned IP matches your datacenter proxy, your system proxy settings are working correctly. If it matches your home IP, your browser or script is bypassing the proxy settings.

Share: