<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Troubleshooting on GreyWind</title><link>https://fuwx295.github.io/tags/troubleshooting/</link><description>Recent content in Troubleshooting on GreyWind</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><copyright>GreyWind</copyright><lastBuildDate>Sat, 07 Nov 2026 20:00:00 +0800</lastBuildDate><atom:link href="https://fuwx295.github.io/tags/troubleshooting/index.xml" rel="self" type="application/rss+xml"/><item><title>The Extra Cable That Broke My Home Network</title><link>https://fuwx295.github.io/p/two-devices-one-gateway-ip/</link><pubDate>Sat, 07 Nov 2026 20:00:00 +0800</pubDate><guid>https://fuwx295.github.io/p/two-devices-one-gateway-ip/</guid><description>&lt;img src="https://fuwx295.github.io/p/two-devices-one-gateway-ip/extra-cable-cover.jpg" alt="Featured image of post The Extra Cable That Broke My Home Network" /&gt;&lt;p&gt;My home internet had been annoying me for a while. Some websites loaded fine; others just sat there. I plugged in an Ethernet cable, hoping for a more reliable connection. Windows promptly told me the network was unavailable.&lt;/p&gt;&#10;&lt;p&gt;After some troubleshooting, I found a strange workaround: connect to Wi-Fi &lt;strong&gt;first&lt;/strong&gt;, then plug in Ethernet. Things seemed to work in that order. Apparently, getting online now involved a small ceremony.&lt;/p&gt;&#10;&lt;p&gt;The eventual fix was much less impressive: unplug one extra cable. An old ISP box was still on the LAN, using the same IP address as my router. Here&amp;rsquo;s how I finally caught it.&lt;/p&gt;&#10;&lt;h2 id="tldr"&gt;TL;DR&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt; some sites failed, wired IPv4 was unreachable, and connecting to Wi-Fi first seemed to help. Wired IPv6 still worked.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Useful clue:&lt;/strong&gt; both adapters listed &lt;code&gt;192.168.1.1&lt;/code&gt; as the gateway, but their neighbor entries pointed to different MAC addresses.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Root cause:&lt;/strong&gt; my active ZTE router and an old optical network terminal (ONT) both used &lt;code&gt;192.168.1.1&lt;/code&gt;. Ethernet had learned the old ONT&amp;rsquo;s MAC; that box had no working IPv4 uplink.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Fix:&lt;/strong&gt; disconnect the old ONT&amp;rsquo;s blue Ethernet cable, then let the wired neighbor entry refresh. The PC&amp;rsquo;s own cable stayed connected.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Result:&lt;/strong&gt; wired IPv4 recovered, Steam sign-in and the store worked again, and I could leave Wi-Fi off.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="the-setup"&gt;The setup&#10;&lt;/h2&gt;&lt;p&gt;This was one home LAN, with a Windows PC connected over both Ethernet and Wi-Fi:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;PC interface&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;IPv4 address&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default gateway&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Link&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ethernet&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.6&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.1&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1 Gbps&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wi-Fi&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.7&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.1&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Weak signal, about 57.8 Mbps&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;The active router was a ZTE F673AV9a. Clash Verge was also running, with the system proxy at &lt;code&gt;127.0.0.1:7897&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;Steam added to the confusion: downloads could keep going over Ethernet while signing in or opening the store failed. Between that and the Wi-Fi-first workaround, I had plenty of ways to convince myself the wired connection was mostly fine.&lt;/p&gt;&#10;&lt;h2 id="follow-the-packet"&gt;Follow the packet&#10;&lt;/h2&gt;&lt;p&gt;For an external IPv4 destination, the intended path was simple:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Windows PC&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → look up the MAC address for gateway 192.168.1.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → send the frame to the ZTE router&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → internet&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;The middle step matters. A route can name the correct gateway IP while the neighbor cache supplies the wrong device&amp;rsquo;s MAC address. &lt;a class="link" href="https://www.rfc-editor.org/rfc/rfc826" target="_blank" rel="noopener"&#10; &gt;ARP&lt;/a&gt; handles that IPv4-to-MAC lookup; it doesn&amp;rsquo;t check whether the device answering has a usable internet connection.&lt;/p&gt;&#10;&lt;p&gt;So there were two things to verify: could the wired connection carry traffic, and which device was receiving the IPv4 traffic meant for the gateway?&lt;/p&gt;&#10;&lt;h2 id="the-evidence-trail"&gt;The evidence trail&#10;&lt;/h2&gt;&lt;p&gt;These are the useful checks from the investigation, with PowerShell commands for repeating them. The tables summarize the findings rather than reproduce a full terminal log.&lt;/p&gt;&#10;&lt;h3 id="1-check-ipv4-separately-from-the-ethernet-link"&gt;1. Check IPv4 separately from the Ethernet link&#10;&lt;/h3&gt;&lt;p&gt;For a direct wired test, temporarily disconnect Wi-Fi and pause any VPN or TUN tunnel. Then check the adapter and try a numeric IPv4 destination:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Get-NetAdapter&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;Format-Table&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LinkSpeed&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Get-NetIPConfiguration&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ping&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="mf"&gt;-4&lt;/span&gt; &lt;span class="mf"&gt;223.5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;5&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;The Ethernet link was up at 1 Gbps, but the IPv4 probe returned &lt;code&gt;Destination net unreachable&lt;/code&gt;. Comparing the available paths gave me this picture:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Path&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;During the fault&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ethernet, IPv4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unreachable&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ethernet, IPv6&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Working&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wi-Fi, IPv4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Working, but slow&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Working IPv6 made a completely dead adapter or disconnected cable a poor fit. The numeric IPv4 test also failed without needing a DNS lookup. That narrowed the search to the wired IPv4 path; the error alone didn&amp;rsquo;t yet explain why it was broken.&lt;/p&gt;&#10;&lt;h3 id="2-check-who-owns-the-gateway-address"&gt;2. Check who owns the gateway address&#10;&lt;/h3&gt;&lt;p&gt;Both interfaces had the expected gateway IP. The neighbor entries were where things stopped agreeing:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Get-NetNeighbor&lt;/span&gt; &lt;span class="n"&gt;-AddressFamily&lt;/span&gt; &lt;span class="n"&gt;IPv4&lt;/span&gt; &lt;span class="n"&gt;-IPAddress&lt;/span&gt; &lt;span class="mf"&gt;192.168&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;Format-Table&lt;/span&gt; &lt;span class="n"&gt;InterfaceAlias&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IPAddress&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LinkLayerAddress&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;State&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;During the fault, the recorded mappings were:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Interface&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Gateway IP&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Cached MAC&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ethernet&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.1&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;f4:b5:aa:a4:04:98&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wi-Fi&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.1&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;d0:59:19:bb:2b:12&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;code&gt;arp -a&lt;/code&gt; can show this too. Keep the interface headings when reading it, or the important difference gets lost.&lt;/p&gt;&#10;&lt;p&gt;Different MACs gave me something concrete to investigate. I still needed to identify the devices behind them.&lt;/p&gt;&#10;&lt;h3 id="3-identify-the-box-at-the-other-end"&gt;3. Identify the box at the other end&#10;&lt;/h3&gt;&lt;p&gt;The gateway&amp;rsquo;s management page settled it. The working Wi-Fi path reached the ZTE router; the failing wired path reached the old ISP ONT.&lt;/p&gt;&#10;&lt;p&gt;To check the wired gateway directly, using my Ethernet address:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;curl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="mf"&gt;-4&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-noproxy&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-interface&lt;/span&gt; &lt;span class="mf"&gt;192.168&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;6&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-connect-timeout&lt;/span&gt; &lt;span class="mf"&gt;5&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="p"&gt;//&lt;/span&gt;&lt;span class="mf"&gt;192.168&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Wi-Fi and any TUN tunnel should be out of the way for this check. &lt;code&gt;--noproxy&lt;/code&gt; bypasses curl&amp;rsquo;s configured proxy; a system-wide tunnel needs to be paused separately.&lt;/p&gt;&#10;&lt;p&gt;Now the MAC addresses had names:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Device&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;LAN IP&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;MAC&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;IPv4 internet access&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ZTE router&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.1&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;d0:59:19:bb:2b:12&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Working&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Old ONT&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;192.168.1.1&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;f4:b5:aa:a4:04:98&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;No working uplink&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;The old ONT was still attached to the LAN by a blue Ethernet cable. Both boxes claimed the gateway address, and the wired interface had cached the old box&amp;rsquo;s MAC.&lt;/p&gt;&#10;&lt;p&gt;That tied the failure to a specific path:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PC → gateway 192.168.1.1 → old ONT&amp;#39;s MAC → no IPv4 uplink&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;I had the right gateway address and the wrong gateway device.&lt;/p&gt;&#10;&lt;h2 id="the-fix-one-less-cable"&gt;The fix: one less cable&#10;&lt;/h2&gt;&lt;p&gt;I unplugged the blue cable connecting the old ONT to the LAN. &lt;strong&gt;The PC&amp;rsquo;s Ethernet cable stayed plugged in.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Once the wired neighbor entry refreshed, &lt;code&gt;192.168.1.1&lt;/code&gt; resolved to the ZTE&amp;rsquo;s MAC, &lt;code&gt;d0:59:19:bb:2b:12&lt;/code&gt;, and IPv4 started working.&lt;/p&gt;&#10;&lt;p&gt;Removing that one device changed both the gateway mapping and the failed connectivity test. That was a much better explanation than my Wi-Fi connection ritual.&lt;/p&gt;&#10;&lt;h2 id="clear-the-old-entry-if-it-lingers"&gt;Clear the old entry if it lingers&#10;&lt;/h2&gt;&lt;p&gt;After removing the conflicting device, Windows may still have its old MAC cached. If needed, clear just that entry from an elevated PowerShell session:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Remove-NetNeighbor&lt;/span&gt; &lt;span class="n"&gt;-InterfaceAlias&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Ethernet&amp;#34;&lt;/span&gt; &lt;span class="n"&gt;-IPAddress&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;192.168.1.1&amp;#34;&lt;/span&gt; &lt;span class="n"&gt;-Confirm:&lt;/span&gt;&lt;span class="vm"&gt;$false&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Then test again, with Wi-Fi disconnected:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ping&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="mf"&gt;-4&lt;/span&gt; &lt;span class="mf"&gt;223.5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;5&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;5&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Get-NetNeighbor&lt;/span&gt; &lt;span class="n"&gt;-InterfaceAlias&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Ethernet&amp;#34;&lt;/span&gt; &lt;span class="n"&gt;-IPAddress&lt;/span&gt; &lt;span class="mf"&gt;192.168&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;For my network, the expected MAC was &lt;code&gt;D0-59-19-BB-2B-12&lt;/code&gt;. Use your own adapter name if it isn&amp;rsquo;t &lt;code&gt;Ethernet&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;The order matters: remove the duplicate first, then refresh the stale entry. Clearing the cache while both boxes remain connected leaves the conflict in place.&lt;/p&gt;&#10;&lt;h2 id="why-the-symptoms-were-so-misleading"&gt;Why the symptoms were so misleading&#10;&lt;/h2&gt;&lt;p&gt;IPv6 kept working over Ethernet because its path through the ZTE was separate from the broken IPv4 mapping. It uses &lt;a class="link" href="https://www.rfc-editor.org/rfc/rfc4861" target="_blank" rel="noopener"&#10; &gt;Neighbor Discovery&lt;/a&gt;, rather than ARP.&lt;/p&gt;&#10;&lt;p&gt;That made Steam a particularly unhelpful health check. Downloads, sign-in, and store pages involve different connections. A successful download told me one connection worked. I let it reassure me about the whole adapter.&lt;/p&gt;&#10;&lt;p&gt;The healthy IPv6 path fits the symptoms, but I didn&amp;rsquo;t capture every Steam connection to establish which protocol each used. The direct IPv4 test was the firmer evidence.&lt;/p&gt;&#10;&lt;p&gt;Wi-Fi was misleading in a similar way. Its cached gateway mapping pointed to the ZTE at the time, so leaving it connected could hide the wired failure. I hadn&amp;rsquo;t captured the competing ARP messages, so I couldn&amp;rsquo;t prove exactly why connection order appeared to help. I could prove that it hadn&amp;rsquo;t repaired wired IPv4.&lt;/p&gt;&#10;&lt;p&gt;Clash Verge still needed a working outbound path too. A local proxy couldn&amp;rsquo;t get those IPv4 packets past the wrong gateway.&lt;/p&gt;&#10;&lt;h2 id="after-the-fix"&gt;After the fix&#10;&lt;/h2&gt;&lt;p&gt;With Wi-Fi disconnected, the original failures were gone:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Check&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Result&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wired gateway MAC&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ZTE, &lt;code&gt;d0:59:19:bb:2b:12&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wired IPv4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Working; recorded ping latency about 5 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wired IPv6&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Still working&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Steam sign-in and store&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Working over Ethernet&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;A short download comparison came out at &lt;strong&gt;52.4 MB/s over Ethernet versus 4.1 MB/s over Wi-Fi&lt;/strong&gt;. Both transfers used the same 16 MiB range from a USTC Ubuntu mirror, bound to their respective source IPs. It was a quick check, but it reminded me why I&amp;rsquo;d wanted Ethernet working in the first place.&lt;/p&gt;&#10;&lt;h2 id="retrospective"&gt;Retrospective&#10;&lt;/h2&gt;&lt;p&gt;My main mistake was accepting “some traffic works” as evidence that the wired connection was healthy. Steam could download, and the Wi-Fi-first routine got me online, so I kept giving Ethernet more credit than it deserved.&lt;/p&gt;&#10;&lt;p&gt;Checking the gateway IP was another half-finished job. &lt;code&gt;192.168.1.1&lt;/code&gt; looked familiar, so I moved on. The MAC address and management page would have told me much more.&lt;/p&gt;&#10;&lt;p&gt;Next time, I&amp;rsquo;d take a shorter route through the problem:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Test one adapter at a time, with IPv4 and IPv6 checked separately.&lt;/li&gt;&#10;&lt;li&gt;Follow the failing path as far as the next hop, including its MAC and device identity.&lt;/li&gt;&#10;&lt;li&gt;After a change, repeat the original failed checks with the working fallback disconnected.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;If I reuse the old ONT, I&amp;rsquo;ll configure it in isolation first: give it a unique LAN address and check its DHCP settings before reconnecting it. Disabling DHCP alone wouldn&amp;rsquo;t remove its duplicate gateway address.&lt;/p&gt;&#10;&lt;p&gt;And I&amp;rsquo;ll look at the cables earlier. After all that troubleshooting, the fix was one unplug. Slightly embarrassing, very satisfying.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Command references: &lt;a class="link" href="https://learn.microsoft.com/en-us/powershell/module/nettcpip/get-netneighbor" target="_blank" rel="noopener"&#10; &gt;Get-NetNeighbor&lt;/a&gt;, &lt;a class="link" href="https://learn.microsoft.com/en-us/powershell/module/nettcpip/remove-netneighbor" target="_blank" rel="noopener"&#10; &gt;Remove-NetNeighbor&lt;/a&gt;, and &lt;a class="link" href="https://curl.se/docs/manpage.html" target="_blank" rel="noopener"&#10; &gt;curl&amp;rsquo;s command-line reference&lt;/a&gt;.&lt;/p&gt;&#10;</description></item></channel></rss>