如何永久更改 MTU 大小?

Afs*_*hin 5 networking

我去了这个文件/etc/dhcp/dhclient.conf并在请求行之前添加了这两行:

default interface-mtu 1200;

supercede interface-mtu 1200;
Run Code Online (Sandbox Code Playgroud)

重新启动系统启动后,我运行ifconfig它说我的MTU大小是1280。为什么??我怎样才能把它改成 1200?

更新

cat /etc/resolv.conf

lrwxrwxrwx 1 root root 29 Mar 19 13:05 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
Run Code Online (Sandbox Code Playgroud)

resolv.conf文件:

nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2606:4700:4700::1111
nameserver 127.0.0.53
options edns0
Run Code Online (Sandbox Code Playgroud)

resolvectl输出是:

Current DNS Server: 1.1.1.1
     DNS Servers: 1.1.1.1
                  8.8.8.8
                  2606:4700:4700::1111
      DNSSEC NTA: 10.in-addr.arpa
Run Code Online (Sandbox Code Playgroud)

dpkg -l *dnsmasq*输出是:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig- 
aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                   Version          Architecture     
Description
+++-======================-================-================- 
==================================================
un  dnsmasq                <none>           <none>           (no 
description available)
ii  dnsmasq-base           2.79-1           amd64            Small 
caching DNS proxy and DHCP/TFTP server
un  dnsmasq-base-lua       <none>           <none>           (no 
description available)
Run Code Online (Sandbox Code Playgroud)

hey*_*ema 6

要确定正确的 MTU 设置,请从所有 MTU 设置 = 1500 和 VPN = off 开始。(VPN 需要不同的测试)。

注意:首先删除您的模组/etc/dhcp/dhclient.conf并重新启动。

在终端:

ping [-c count] [-M do] [-s packet_size] [host]
Run Code Online (Sandbox Code Playgroud)

使用的选项是:

  • c count: ping 的次数
  • M hint: 选择路径 MTU 发现策略。可能是do(禁止分片,甚至是本地分片),want(做 PMTU 发现,当数据包大小很大时在本地分片),或dont(不设置 DF 标志)。
  • s packet_size:指定要发送的数据字节数。

您应该始终从 1472 开始,每次递减 10。收到回复后,再增加 1,直到收到碎片数据包。取该值(最后一个合适的值)并将 28 添加到该值以考虑各种 TCP/IP 标头。例如。假设 1452 是正确的数据包大小(您首先收到 ICMP 对 ping 的回复)。实际 MTU 大小为 1480,这是我们正在使用的网络的最佳值。

ping -c 4 -M do -s 1472 8.8.8.8 # this will probably show fragmentation

ping -c 4 -M do -s 1462 8.8.8.8 # may show fragmentation

ping -c 4 -M do -s 1452 8.8.8.8 # no fragmentation?

ping -c 4 -M do -s 1453 8.8.8.8 # still no fragmentation?
Run Code Online (Sandbox Code Playgroud)

参考:如何使用 ICMP ping 确定正确的 MTU 大小

更新 #1:

我建议您删除添加到的 3 个额外名称服务器,/etc/resolvconf/resolv.conf.d/head并让 systemd-resolved 正确管理/etc/resolv.conf. 这应该与 VPN 一起工作得更好。

更新#2:

您还可以设置不同的有线/无线连接配置文件,仅用于 VPN,将 MTU=1200 硬连线。在terminal中,键入nm-connection-editor并且有您可以自定义配置文件只是为VPN与自动连接MTU

在此处输入图片说明 在此处输入图片说明