Я перехожу к этому файлу /etc/dhcp/dhclient.conf
и добавьте эти два строка перед строкой запроса
default interface-mtu 1200;
supercede interface-mtu 1200;
и после того, как я перезапускаю и начальная загрузка системы и работаю ifconfig
команда, это говорит мой MTU
размер является 1280, Почему?? Как я могу изменить его на точный 1200??
Обновление:
cat /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Mar 19 13:05 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
и resolv.conf файл
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2606:4700:4700::1111
nameserver 127.0.0.53
options edns0
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
и 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)
Для определения корректной установки MTU запустите со всех настроек MTU = 1500 и VPN = прочь. (VPN требует другого тестирования).
Примечание: сначала удалите свои модификации к /etc/dhcp/dhclient.conf
и перезагрузка.
В терминале:
ping [-c count] [-M do] [-s packet_size] [host]
Используемые опции:
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?
ссылка: Как определить надлежащий размер MTU с ping ICMP
Обновление № 1:
Я рекомендовал бы удалить 3 дополнительных сервера имен, к которым Вы добавили /etc/resolvconf/resolv.conf.d/head
и позвольте systemd-разрешенный, правильно справляются /etc/resolv.conf
. Это должно работать лучше с VPN.
Обновление № 2:
Можно также установить ДРУГОЙ проводной профиль / профиль беспроводного соединения, только для VPN, которая соединяет MTU=1200 проводами. В terminal
, ввести nm-connection-editor
и там можно настроить профиль только для VPN с автоподключением и MTU.
Можно автоматизировать установку mtu для порта VPN, когда VPN повышается, как предложено в сценарии /etc/NetworkManager/dispatcher.d/01-ifupdown
. Сценарии в dispatcher.d
папку называют с портом и событием как аргумент. Так, создайте сценарий в папке dispatcher.d
, со следующим содержанием (если Вы хотите mtu 1200),
#!/bin/sh
#info : pre-up and pre-down are not implemented in network-manager
if [ "$2" = "vpn-up" ]; then
/sbin/ifconfig "$1" mtu 1200
fi
Название сценария не имеет значения, делает это исполняемым файлом с chmod +x
.
Вы могли использовать tracepath
(от iputils-tracepath
пакет) для определения Пути MTU:
walt@bat:~(0)$ dpkg -S $(type -p tracepath)
iputils-tracepath: /usr/bin/tracepath
walt@bat:~(0)$ tracepath primus.ip4.torontointernetxchange.net
1?: [LOCALHOST] pmtu 1500
1: spark3y 0.525ms
1: spark3y 0.497ms
2: spark3y 0.465ms pmtu 1492
2: dsl-xxx-xxx-xxx-xxx.tor.primus.ca 32.701ms
3: 10.201.117.2 34.726ms asymm 5
4: bb1.tor.primus.ca 39.238ms
5: primus.ip4.torontointernetxchange.net 33.295ms reached
Resume: pmtu 1492 hops 5 back 4
Для тех, кто работает с Ubuntu под WSL, я обнаружил, что изменения MTU при присоединении к VPN не распространяются на интерфейс WSL vEthernet
# In windows command prompt
C:\Users\timothy.vanheest>netsh interface ipv4 show subinterface
MTU MediaSenseState Bytes In Bytes Out Interface
------ --------------- --------- --------- -------------
4294967295 1 0 111928 Loopback Pseudo-Interface 1
1500 1 57917164385 17028233076 Wi-Fi
1500 5 0 0 Ethernet
1500 5 0 0 Local Area Connection* 1
1500 5 0 0 Bluetooth Network Connection
1500 5 0 0 Local Area Connection* 2
1350 1 791851055 63176967 Ethernet 3
1500 5 0 0 Ethernet 4
1500 1 5268640 18986381 vEthernet (WSL)
Выполнение этой команды (от имени администратора) исправило ее таким образом, что пережил перезапуски.
# See: https://github.com/microsoft/WSL/issues/3957#issuecomment-479343268
C:\Users\timothy.vanheest> netsh interface ipv4 set subinterface "vEthernet (WSL)" mtu=1350 store=persistent
Не самый лучший, поскольку это означает, что я использую жестко заданный MTU вместо оптимального для текущей сети, но он стабилен.