最奇怪的網際網路問題:有些網站可以執行,有些則不能
您的網際網路正在執行。你可以用谷歌搜尋東西。 YouTube 載入。 Reddit 執行良好。但您的銀行網站無法載入。您的工作 VPN 已連線,但隨後沒有任何效果。 Gmail 可以,但您無法訪問某些網站。
速度測試顯示速度良好。平有效。你們絕對是有聯絡的。但特定網站只是超時或永遠掛起。
這種奇怪的症狀模式讓人尖叫 MTU問題 (最大傳輸單元)。您的網路正在傳送太大的資料包,變得碎片或丟失,並破壞特定網站,而其他網站卻正常工作。
MTU到底是什麼(簡單版)
MTU 是網路允許的最大資料包大小。可以將其視為運輸的最大箱子尺寸:
- 標準MTU: 1500 位元組(在任何地方都適用)
- 您的網路 MTU: 也許設定為 1500
- 但在路徑中的某個地方: 一個裝置只能處理 1400 位元組
- 結果: 大資料包被丟棄,小資料包正常工作
為什麼有些網站可以工作,有些則不行:
- Google 主頁:小資料包,負載良好
- 安全性高的銀行網站:大資料包容易被丟棄
- 普通電子郵件:小包,有效
- 帶附件的電子郵件:大資料包,失敗
如何知道 MTU 是否是您的問題
經典MTU問題症狀:
- VPN 連線但沒有任何效果
- VPN 連線成功 - 但網頁瀏覽、應用程式全部超時 - 這是 #1 MTU 症狀
- 有些網站可以載入,有些則不能
- 簡單站點:工作正常 - 具有 HTTPS/安全性的複雜站點:失敗 - 模式一致(相同站點總是失敗)
- 可以 ping 通但無法瀏覽某些網站
- 小 ping 資料包:工作 - 大型 Web 資料包:失敗
- 適用於移動資料,但不適用於 WiFi(反之亦然)
- 不同的網路有不同的 MTU 限制 - 問題僅出現在一個網路上
- 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 設定(影響所有裝置)
更好的解決方案: 在路由器級別修復它,以便所有裝置受益。
- 登入路由器(192.168.1.1 或類似)
- 找到“MTU”設定(通常在WAN或高階設定中)
- 從 1500 更改為 1400 或 1450
- 儲存並重啟路由器
常見地點:
- 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 問題
常見原因:
- PPPoE 連線 (DSL 網際網路)
- PPPoE 增加了 8 位元組開銷 - 標準 1500 MTU 變為 1492 有效 - 某些裝置不能很好地處理這個問題
- VPN/隧道
- 加密會增加開銷 - 加密後 1500 MTU 資料包變得太大 - VPN 流量需要較低的 MTU
- ISP網路裝置
- 某些 ISP 在內部使用 MTU < 1500 - 不要向客戶宣傳這一點 - 導致神秘故障
- 多層隧道
- 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 問題。但當你這樣做時,症狀會非常奇怪,你會浪費幾個小時先排除其他所有問題。現在您知道要檢查什麼了。