最奇怪的網際網路問題:有些網站可以執行,有些則不能

您的網際網路正在執行。你可以用谷歌搜尋東西。 YouTube 載入。 Reddit 執行良好。但您的銀行網站無法載入。您的工作 VPN 已連線,但隨後沒有任何效果。 Gmail 可以,但您無法訪問某些網站。

速度測試顯示速度良好。平有效。你們絕對是有聯絡的。但特定網站只是超時或永遠掛起。

這種奇怪的症狀模式讓人尖叫 MTU問題 (最大傳輸單元)。您的網路正在傳送太大的資料包,變得碎片或丟失,並破壞特定網站,而其他網站卻正常工作。

MTU到底是什麼(簡單版)

MTU 是網路允許的最大資料包大小。可以將其視為運輸的最大箱子尺寸:

  • 標準MTU: 1500 位元組(在任何地方都適用)
  • 您的網路 MTU: 也許設定為 1500
  • 但在路徑中的某個地方: 一個裝置只能處理 1400 位元組
  • 結果: 大資料包被丟棄,小資料包正常工作

為什麼有些網站可以工作,有些則不行:

  • Google 主頁:小資料包,負載良好
  • 安全性高的銀行網站:大資料包容易被丟棄
  • 普通電子郵件:小包,有效
  • 帶附件的電子郵件:大資料包,失敗

如何知道 MTU 是否是您的問題

經典MTU問題症狀:

  1. VPN 連線但沒有任何效果

- VPN 連線成功 - 但網頁瀏覽、應用程式全部超時 - 這是 #1 MTU 症狀

  1. 有些網站可以載入,有些則不能

- 簡單站點:工作正常 - 具有 HTTPS/安全性的複雜站點:失敗 - 模式一致(相同站點總是失敗)

  1. 可以 ping 通但無法瀏覽某些網站

- 小 ping 資料包:工作 - 大型 Web 資料包:失敗

  1. 適用於移動資料,但不適用於 WiFi(反之亦然)

- 不同的網路有不同的 MTU 限制 - 問題僅出現在一個網路上

  1. SSH/遠端桌面連線但在使用過程中掛起

- 初始連線:小資料包,有效 - 資料傳輸:大資料包,失敗

快速 MTU 測試 (Windows)

測試您的 MTU 是否導致問題:

命令
ping google.com -f -l 1472

這是做什麼的: 傳送無法分片的1472位元組資料包

好結果:

命令
Reply from 142.250.80.46: bytes=1472 time=15ms

MTU 就可以了。

不好的結果:

命令
Packet needs to be fragmented but DF set

MTU 問題已確認。

如果失敗,請測試較小的尺寸:

命令
ping google.com -f -l 1464
ping google.com -f -l 1400
ping google.com -f -l 1352

找到最合適的尺寸。這是您的實際 MTU 限制(數字加 28)。

快速 MTU 測試 (Mac/Linux)

命令
ping -D -s 1472 google.com

Mac 替代方案:

命令
ping -D -s 1464 google.com

相同的邏輯:找到不會被丟棄的最大資料包大小。

如何修復 MTU 問題

修復 1:降低網路介面卡上的 MTU (Windows)

步驟一: 以管理員身份開啟命令提示符

步驟 2: 找到您的網路介面名稱:

命令
netsh interface ipv4 show subinterfaces

步驟 3: 將 MTU 設定為 1400(安全值):

命令
netsh interface ipv4 set subinterface "Wi-Fi" mtu=1400 store=persistent

(將“Wi-Fi”替換為您的介面名稱)

步驟 4: 測試網站現在是否正常工作

如果1400有效,你可以嘗試增加:

  • 嘗試1450,測試
  • 嘗試1480,測試
  • 找到一切正常的最佳位置

修復 2:降低 Mac 上的 MTU

步驟一: 找到您的網路介面:

命令
networksetup -listallhardwareports

步驟 2: 設定MTU:

命令
sudo networksetup -setMTU Wi-Fi 1400

步驟 3: 驗證:

命令
networksetup -getMTU Wi-Fi

修復 3:降低 Linux 上的 MTU

臨時(直到重新啟動):

命令
sudo ip link set dev eth0 mtu 1400

永久(新增到 /etc/network/interfaces):

命令
iface eth0 inet dhcp
    mtu 1400

修復 4:路由器 MTU 設定(影響所有裝置)

更好的解決方案: 在路由器級別修復它,以便所有裝置受益。

  1. 登入路由器(192.168.1.1 或類似)
  2. 找到“MTU”設定(通常在WAN或高階設定中)
  3. 從 1500 更改為 1400 或 1450
  4. 儲存並重啟路由器

常見地點:

  • TP-Link: 網路 > WAN > MTU 大小
  • 網件: 高階 > 設定 > WAN 設定 > MTU 大小
  • 華碩: WAN > 網際網路連線 > MTU
  • 連結系統: 連線 > 網際網路設定 > MTU

VPN 特定的 MTU 修復

如果 VPN 連線但不起作用:

大多數 VPN 軟體都有 MTU 設定。

OpenVPN: 新增到配置檔案:

命令
mssfix 1400
tun-mtu 1400

WireGuard: 在介面配置中設定 MTU:

命令
MTU = 1400

商業 VPN 應用程式:

  • 在高階設定中查詢“MTU”
  • 嘗試值:1400、1420、1450
  • 測試直至有效

為什麼會出現 MTU 問題

常見原因:

  1. PPPoE 連線 (DSL 網際網路)

- PPPoE 增加了 8 位元組開銷 - 標準 1500 MTU 變為 1492 有效 - 某些裝置不能很好地處理這個問題

  1. VPN/隧道

- 加密會增加開銷 - 加密後 1500 MTU 資料包變得太大 - VPN 流量需要較低的 MTU

  1. ISP網路裝置

- 某些 ISP 在內部使用 MTU < 1500 - 不要向客戶宣傳這一點 - 導致神秘故障

  1. 多層隧道

- VPN through VPN - VPN over PPPoE - 每層都會增加開銷

如何找到最佳 MTU

公式: 最佳 MTU =(最大工作 ping 資料包大小)+ 28

示例:

  • ping -f -l 1464 有效
  • ping -f -l 1472 失敗
  • 最佳 MTU = 1464 + 28 = 1492

常用安全MTU值:

  • 1500: 標準,適用於大多數地方
  • 1492: PPPoE 連線
  • 1450: 對於大多數 VPN 來說都是安全的
  • 1400: 非常保守,幾乎在任何地方都適用
  • 1280: IPv6 的最小值,總是有效但效率低下

底線

如果某些網站可以工作,但其他網站卻不能,或者 VPN 連線但流量不流動,則可能存在 MTU 問題。

快速診斷:

命令
ping google.com -f -l 1472

如果失敗,則 MTU 就是您的問題。

快速修復: 將網路介面卡或路由器上的 MTU 降低至 1400。測試問題是否消失。

最佳修復: 測試不同的 MTU 值(1400、1450、1480)以找到可靠工作的最高值。用那個。

設定位置:

  • 路由器:影響所有裝置(最佳選擇)
  • 網路介面卡:僅影響一臺裝置
  • VPN 軟體:僅影響 VPN 流量

大多數人從未遇到過 MTU 問題。但當你這樣做時,症狀會非常奇怪,你會浪費幾個小時先排除其他所有問題。現在您知道要檢查什麼了。