How to Fix Chrome Cannot Access Internal IPs (ERR_ADDRESS_UNREACHABLE) When Safari Works
Content
## Background
In daily development or network management, we often need to access internal devices like routers, NAS, or local test servers via a browser (e.g., `192.168.1.1` or `192.168.1.2`). However, a strange phenomenon sometimes occurs: **On the same device, Safari can access the internal IP normally, but Google Chrome fails to connect.**
The specific error message usually looks like this:
```plaintext
This site can’t be reached
http://192.168.1.2/ is unreachable.
ERR_ADDRESS_UNREACHABLE
```
`ERR_ADDRESS_UNREACHABLE` is a very specific error. It means Chrome believes the IP address is non-routable in the current network environment (i.e., it cannot find a path to the target host). Since Safari works fine, the physical network link and the device itself are functioning correctly. The issue lies within Chrome's own network stack routing or proxy configurations.
---
## Root Cause and Ultimate Solution
According to the practical debugging experience from DP@lib00, the most common reason for this "Chrome fails, but others work" scenario—and the exact cause in this case—is **local proxy configuration conflicts**.
### Ultimate Fix: Check and Start the Local Proxy Program
Many developers run local proxy clients (like Clash, V2Ray, etc.) and configure the system or browser proxy to point to a local port (e.g., `127.0.0.1:7890`).
* **The Cause**: When the local proxy program is **not running** or accidentally closed, Chrome still attempts to send network requests (including those for internal IPs) to that proxy port. Because the proxy server is down, the request is dropped, resulting in `ERR_ADDRESS_UNREACHABLE`.
* **The Fix**:
1. **Start the Proxy App**: Reopen your usual local proxy software to restore the proxy service. Refresh the page, and the internal IP should load normally.
2. **Disable Proxy Settings**: If you don't need the proxy, go to `chrome://settings/system`, click "Open your computer's proxy settings," and completely disable the system proxy.
---
## Comprehensive Chrome Internal Network Troubleshooting Guide
If your issue is not caused by a closed proxy program, you can follow this standard debugging workflow compiled by wiki.lib00 to isolate the problem step-by-step:
### 1. Check macOS "Local Network" Permissions (Most Common OS-Level Cause)
If you are using macOS, system-level privacy isolation can cause this.
* **Action**: Open **System Settings** -> **Privacy & Security** -> **Local Network**.
* **Verify**: Find **Google Chrome** in the list and ensure the toggle is **ON**. If it's already on, try toggling it off and on again.
### 2. Rule Out Forced HTTPS (HSTS) Interference
Chrome enables "Always use secure connections" by default. If your internal device only supports HTTP, Chrome will force an HTTPS redirect, causing the connection to fail.
* **Action**: Explicitly type `http://192.168.1.2` in the address bar.
* **Clear HSTS**:
1. Visit `chrome://net-internals/#hsts`.
2. Under **Delete domain security policies**, enter the internal IP and click Delete.
### 3. Check Chrome's Internal Proxy Cache
Even if the system proxy is off, Chrome might retain residual configurations.
* **Action**: Visit `chrome://net-internals/#proxy`.
* **Verify**: Check the `Effective settings` section. If it shows anything other than `direct`, Chrome is trying to route the IP through a proxy.
### 4. Disable "Secure DNS" (DoH)
Chrome's Secure DNS might attempt to resolve internal IPs using public DNS servers, leading to failure.
* **Action**: Visit `chrome://settings/security`.
* **Fix**: Change **Use secure DNS** to **Off**, or set it to "With your current service provider." Restart Chrome.
### 5. Advanced Network Path Diagnostics (NetLog)
If all else fails, you can capture Chrome's network logs to analyze the underlying requests. For more advanced tips, visit wiki.lib00.com.
* **Action**:
1. Visit `chrome://net-export/` and click **Start Logging to Disk**.
2. Try to access the unreachable IP in a new tab.
3. Go back and click **Stop Logging**.
4. Open the generated JSON file using the [NetLog Viewer](https://netlog-viewer.appspot.com/). Search for the target IP and check the `SOCKET_POOL` phase to see where Chrome is actually trying to route the traffic.
**Summary**: When facing internal network access issues, prioritize using **Incognito Mode** to rule out extensions, then check your **proxy software status** and **system network permissions**. This resolves 99% of such problems.
Related Contents
Master cURL Timeouts: A Definitive Guide to Fixing "Operation timed out" Errors
Duration: 00:00 | DP | 2025-11-23 19:03:46PHP `json_decode` Failing on Strings with '$'? Master Debugging with This Simple Fix
Duration: 00:00 | DP | 2025-12-28 09:59:10The Ultimate Guide to Fixing the "Expected parameter of type..." Mismatch Error in PhpStorm
Duration: 00:00 | DP | 2025-11-26 23:47:49From Phantom Conflicts to Docker Permissions: A Deep Dive into Debugging an Infinite Loop in a Git Hook for an AI Assistant
Duration: 00:00 | DP | 2025-11-09 16:39:00The Ultimate Guide: Why Does PHP json_decode Fail with a "Control Character Error"?
Duration: 00:00 | DP | 2025-11-30 21:35:00PHP Stuck on Loading After Enabling Xdebug? Don't Panic, It Might Be Working Perfectly!
Duration: 00:00 | DP | 2025-11-15 07:03:00Step-by-Step Guide to Fixing `net::ERR_SSL_PROTOCOL_ERROR` in Chrome for Local Nginx HTTPS Setup
Duration: 00:00 | DP | 2025-11-15 15:27:00Master Your PHP CLI: 3 Quick Ways to Check for pdo_pgsql Installation
Duration: 00:00 | DP | 2026-02-17 14:29:30The Ultimate Docker & Xdebug Guide: Solving the 'Address Already in Use' Error for Port 9003 with PhpStorm
Duration: 00:00 | DP | 2026-02-18 14:50:37Ultimate Guide: Fixing the PostgreSQL `could not find driver` Error in a Docker PHP Environment
Duration: 00:00 | DP | 2026-03-05 20:07:14PhpStorm Breakpoints Not Working? Your `xdebug.mode` Might Be the Culprit!
Duration: 00:00 | DP | 2026-03-07 20:49:27The Ultimate Guide: Fixing the `navigator.clipboard` is undefined Error in Local JavaScript Development
Duration: 00:00 | DP | 2026-03-08 21:10:34Recommended
How to Add an Email Alias to Your Hotmail or Outlook Account
00:00 | 23A comprehensive guide on adding an alias to your H...
Master cURL Timeouts: A Definitive Guide to Fixing "Operation timed out" Errors
00:00 | 142Frequently encountering "cURL Error: Operation tim...
VS Code PHP Guide: How to Trace Function Definitions Like PHPStorm
00:00 | 10Developers switching from PHPStorm to VS Code ofte...
PHP Best Practices: Why You Should Never Call a Static Method on an Instance
00:00 | 133In PHP, it's technically possible to call a static...