MTU(代表最大傳輸單元)是指從一個(gè)網(wǎng)絡(luò)接口可以傳輸?shù)臄?shù)據(jù)包的最大尺寸。所有參與通信的設(shè)備,包括服務(wù)器和交換機(jī)/路由器都應(yīng)該有相同的MTU大小。大的MTU大小有較少的開銷,而小的MTU有較少的延遲。
大多數(shù)以太網(wǎng)網(wǎng)絡(luò)的默認(rèn)MTU大小是1500字節(jié)。然而,你可以根據(jù)需要改變它。在本教程中,我們將介紹如何在Linux服務(wù)器中改變MTU大小。
前提條件
Ubuntu 20.04系統(tǒng)
有sudo權(quán)限的用戶
注意:本文討論的命令已經(jīng)在Ubuntu 20.04 LTS (Focal Fossa)上測試過。同樣的命令也適用于Debian發(fā)行版。
查看當(dāng)前MTU大小
為了查看當(dāng)前以太網(wǎng)接口的MTU大小,使用ifconfig命令如下。
$ ifconfig | grep mtu
輸出顯示,當(dāng)前接口ens33的MTU大小為1500。
另外,你也可以使用 “ip a “命令來查看當(dāng)前的MTU大小。
$ ip a | grep mtu
我們可以使用ifconfig命令來改變系統(tǒng)網(wǎng)絡(luò)接口的MTU大小。但是,請記住,這種改變會在重啟后失效,返回到默認(rèn)值,即1500。
要改變MTU大小,請使用以下語法。
$ ifconfig
例如,要將一個(gè)名為ens33的接口的MTU大小改變?yōu)?000字節(jié),命令是。
$ ifconfig ens33 mtu 1000 up
運(yùn)行上述命令后,MTU大小馬上發(fā)生變化,甚至不需要重新啟動服務(wù)。
您可以通過在終端運(yùn)行以下命令來驗(yàn)證新的MTU大小。
$ ifconfig | grep mtu
從上面的輸出中,你可以驗(yàn)證MTU大小現(xiàn)在已經(jīng)改變?yōu)?000字節(jié)。然而,如前所述,這一變化將無法在重啟后繼續(xù)存在。重啟后,MTU大小將恢復(fù)到默認(rèn)值1500。
永久改變MTU大小
ifconfig命令可以臨時(shí)改變MTU的大小,但是這種改變在系統(tǒng)重啟后是無法繼續(xù)生效的。在下面的章節(jié)中,我們將看到如何永久改變MTU大小。
在動態(tài)IP尋址中,MTU大小是由DHCP設(shè)置的。所以將需要配置位于/etc/dhcp/dhclient.conf的DHCP配置文件。對于靜態(tài)IP地址,我們將在位于/etc/network/interfaces的網(wǎng)絡(luò)接口配置文件中進(jìn)行修改。
①使用/etc/dhcp/dhclient.conf文件
如果DHCP服務(wù)器運(yùn)行在你的系統(tǒng)上,并且網(wǎng)絡(luò)接口被配置為從它那里接收IP地址,那么使用/etc/dhcp/dhclient.conf文件來改變MTU大小。
使用以下命令編輯nano /etc/dhcp/dhclient.conf。
$ sudo nano /etc/dhcp/dhclient.conf
然后在send host-name = gethostname();行下面添加以下幾行。
default interface-mtu
supersede interface-mtu
例如,要將MTU大小設(shè)置為1400,我們將添加。
default interface-mtu 1400;
supersede interface-mtu 1400;
如果你有多個(gè)接口,而你只想改變一個(gè)接口的MTU大小,那么就把它括在括號里,如下所示。
interface “interface_name” {
default interface-mtu
supersede interface-mtu
}
配置好文件后,保存并關(guān)閉它。
現(xiàn)在在終端中使用以下命令重新啟動網(wǎng)絡(luò)服務(wù)。
$ sudo service networking restart
$ sudo ifup
確保將
在我們的示例中,它應(yīng)該是
$ sudo ifup ens33
現(xiàn)在在終端中發(fā)出以下命令來驗(yàn)證MTU大小是否已經(jīng)成功改變。
$ sudo ifconfig | grep mtu
從輸出中可以看到MTU大小已經(jīng)改為1400。
②使用/etc/network/interfaces文件。
如果你的網(wǎng)絡(luò)接口被配置為獲取靜態(tài)IP地址,那么你可以通過配置/etc/network/interfaces文件來改變MTU大小。
在終端中使用以下命令編輯/etc/network/interfaces文件。
$ sudo nano /etc/network/interfaces
在文件中添加以下一行。
post-up /sbin/ifconfig
確保用實(shí)際的接口名稱代替
例如,如果要將名為 ens33 的接口的 MTU 大小改為 1300 字節(jié),命令如下。
post-up /sbin/ifconfig ens33 mtu 1300 up
配置好文件后,保存并關(guān)閉它。
現(xiàn)在在終端中使用以下命令重新啟動網(wǎng)絡(luò)服務(wù)。
$ sudo service networking restart
$ sudo ifup
確保將
在我們的情況下,應(yīng)該是
$ sudo ifup ens33
現(xiàn)在在終端中發(fā)出以下命令來驗(yàn)證MTU大小是否已經(jīng)成功改變。
$ ip a | grep mtu
從輸出中可以看到,MTU大小已經(jīng)改為1300。這個(gè)變化將保持持久性,即使重啟后也不會受到影響。
以上就是全部內(nèi)容了! 通過以上步驟,你可以臨時(shí)或永久地改變Linux系統(tǒng)中網(wǎng)絡(luò)接口的MTU大小,希望對大家有所幫助。