在本文中,我們將討論如何在 Mac、Linux 和 Windows 上更改 mtu 大小。人們習慣於只需插入路由器並立即連接到 Internet。這可行,但您可能無法充分利用 Internet 連接或速度。
可通過網絡發送的數據包的最大大小為 MTU 大小。如果您的網絡速度變慢、滯後,甚至完全掉線,您應該找到最佳 MTU 大小並在可能的情況下進行更改。 MTU 代表最大傳輸單元。
一般來說,較大的 MTU 大小會使網絡連接更有效率,因為每個數據包可以攜帶更多數據。但是,默認的 MTU 大小(通常為 1500)可能會導致某些網絡出現問題,需要進行更改。在 Mac 上,您可以通過命令行和系統偏好設置面板更改 MTU 大小。
如何在 Linux 上更改 MTU 大小
讀取當前 MTU
要在 Linux 中顯示網絡接口的當前 MTU,可以使用以下命令。 (這必須在外殼/終端中輸入。):ifconfig| grep mtu 結果,您應該獲得接口列表及其 MTU 值。行首是各自的標識,行尾是 MTU 值。如果該命令不起作用,請嘗試以下創建類似列表的命令:ip ad | grep mtu 大多數 Linux 發行版也有一個圖形界面,可以在其中找到 MTU。這是為那些寧願點擊對話框而不是在控制台中鍵入命令的人準備的。例如,在 Kubuntu 中,您還可以使用連接編輯器找出 MTU,如下面的屏幕截圖所示。其他發行版中也有類似的路徑和對話。
設置MTU值
在Linux中可以使用GUI對話或shell命令來設置MTU。如果要通過圖形用戶界面設置 MTU,可以使用我們在兩段之前閱讀 MTU 時使用的相同對話。
在 Debian 和 Ubuntu 系統上,可以使用網絡接口配置文件來設置來自 shell 的 MTU。 (其他發行版可能需要不同的配置步驟。) nano/etc/network/interfaces 各個接口配置位於文件中。在每個接口配置的末尾,您可以附加 mtu {mtu} 以設置固定的 MTU 值。值“mtu”需要更改為您想要的 MTU 值。保存並關閉配置文件後,應再次啟動接口。/etc/init.d/networking restart
確定最佳 MTU
ping 命令在 Linux 中工作,就像在 Windows 和 OSX 中一樣,以找到最佳 MTU 值。但在 Linux 下,參數有點不同。要發送的 ping 數由“c”參數設置。值為“do”的“M”參數表示包在任何情況下都不應被打散,“s”參數表示包的大小。 ping-c 2-M do-s 1550 www.google.de 同樣,您從一個明顯太大的數據包開始,並不斷降低它直到 ping 正常。如果數據包仍然太大,則會顯示“ping: local error: Message too long”之類的錯誤消息。要獲得 MTU 值,請將 28 個字節添加到理想的數據包大小(TCP 標頭為 20 個字節,ICMP (Ping) 標頭為 8 個字節)。
如何在 Windows 上更改 mtu 大小
確定 Windows 中的最佳 MTU
在 Windows 中,我們使用控制台中的 ping 命令來查找最佳 MTU。使用“l”參數,我們設置數據包的大小,目前應該大於預期的 MTU。 “f”參數表示不應分解包。 ping-f-l 1550 www.google.de 現在,我們再次調用,每次,緩衝區大小(在本例中為 1550)都會變小。如果我們可以運行 ping 並且它沒有說“數據包需要分解但 DF 設置”,我們就差不多完成了。我們添加 28 個字節以獲得 MTU 大小(標頭信息)。
在 Windows 中讀取當前 MTU
要通過控制台顯示當前 MTU,請使用以下命令,該命令必須輸入 CMD(Win + R 鍵,“CMD”,“Ok”按鈕):netsh interface ipv4 show interfaces 接口的 MTU 集顯示在“MTU”列中。此外,“Idx”列很有趣,因為我們需要此列中的 Id 稍後設置新的 MTU 值。netsh interface ipv4 show interfaces
設置 MTU 值
要更改網絡接口的 MTU,我們需要所需的 MTU 值和網絡接口的 ID。您可以從本文“在 Windows 中讀取當前 MTU”部分的接口列表中獲取 Id。在最後一句話中,我們找到了 MTU。有了這兩個數字,我們就可以在CMD中使用下面的命令來設置MTU了。 netsh interface ipv4 set subinterface {id} mtu={mtu} store=persistent “id”和“mtu”的值必須分別代替“id”和“mtu”。如果該命令不起作用,請右鍵單擊“以管理員身份運行”,然後單擊“重新啟動”。
如何在 Mac 上更改 mtu 大小
設置 MTU 值
要在 OSX 中設置 MTU,可以使用網絡設置中的硬件對話框(請參閱“讀取 OSX 中的當前 MTU”段落)或者可以使用終端中的命令。 networksetup-setMTU {iface} {mtu} 值 {iface} 必須替換為接口名稱,值 {mtu} 必須替換為 MTU 值。如有必要,必須通過“sudo”執行該命令。
確定最佳 MTU
對於 Windows 和 Linux,ping 命令用於確定最佳 MTU。為此,必須設置“D”和“s”參數。 “D”參數,意思是“不要碎片”,表示包不應該被分解成碎片。數據包的大小由“s”參數設置。起初,這必須設置得有點高。 ping-D-s 1550 example.com 現在一遍又一遍地運行命令,直到 ping 正常。每次運行代碼時,都必須減小“s”參數。如果 ping 有效,則將 28 添加到“s”參數的值並將此總數用作 MTU。
讀取當前 MTU
在 OSX 中,您可以使用網絡設置對話框或短終端命令來查看當前 MTU 是多少。如果您想通過設置對話框找到 MTU,請轉到“系統設置 > 網絡 > 其他選項 > 硬件”。在硬件選項卡上將配置設置為“手動”,將 MTU 設置為“自定義”。然後可以讀取 MTU。 (重要提示:如果您希望系統設置 MTU,則必須使用“取消”關閉硬件對話。)
如果要通過終端讀取 MTU,可以通過以下 shell 命令完成: networksetup-getMTU {iface} 要讀取的接口名稱必須放在“iface”的位置。使用 ifconfig 命令,您可以看到所有接口及其名稱的列表。
FAQ
如何在 Mac 終端中更改 MTU 大小?
打開系統偏好設置,點擊網絡,然後輸入管理員名稱和密碼解鎖掛鎖。單擊“高級”,然後單擊“硬件”,然後單擊“配置”,然後從下拉菜單中選擇“手動”。再次單擊 MTU 旁邊的下拉箭頭並選擇標準 1500 或自定義。
Linux 的 MTU 大小是多少?
標準值默認設置為 1500 字節.但是您可以更改數據包有效負載的大小,這樣您就可以發送更多數據並加快數據傳輸速度。您可以通過將 MTU 設置為 9000 來使該值更大。這將使您可以使用巨型幀。
如何設置正確的 MTU?
添加 28(IP/ICMP 標頭) 到該數字以獲得最佳 MTU 設置。例如,如果 ping 測試顯示最大數據包大小為 1462 字節,則將 1462 加 28 得到 1490,這是最佳 MTU 設置。