在本文中,我們將討論如何在 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 設置。

By Maxwell Gaven

我在 IT 行業工作了 7 年。 觀察 IT 行業的不斷變化很有趣。 IT 是我的工作、愛好和生活。