Соединение слишком медленное при использовании RPi 4 и Wireguard

Вопрос или проблема

Я настроил локальный домашний VPN на Raspberry Pi 4 Model B 2019 Quad Core (4 ГБ ОЗУ), работающем на Ubuntu 20.04, подключенном к моему домашнему маршрутизатору через Ethernet. Я использовал PiVPN с Pihole для настройки. Я настроил клиент на своем iPhone и Mac, и он подключается, но скорость соединения очень низкая по сравнению с моей домашней скоростью. Мой тарифный план от интернет-провайдера AT&T Fiber с гигабитной скоростью, поэтому скорость загрузки/выгрузки на моем RPi4 довольно близка к следующей:
speedtest cli

        ISP: AT&T U-verse
    Latency:     3.32 ms   (0.83 ms jitter)
   Download:   913.95 Mbps (data used: 887.2 MB )                               
     Upload:   921.47 Mbps (data used: 1.1 GB )                               
Packet Loss:     0.0%

Для своих клиентов (iPhone и Mac, оба подключены через Wifi) я использовал speedtest.net для получения их скоростей без VPN (просто подключены напрямую к домашней сети)

Mac: 397mbps/486mbps (download/upload)
iPhone: 377mbps (download)

После подключения к VPN соединения были значительно ниже (с использованием того же теста):

Mac: 15.65mbps/15.11mbps (download/upload)
iPhone: 8.45mbps (download)

Я начал искать другие темы, где люди сталкивались с такой же проблемой, и попробовал следующее:

  1. Изменил порт по умолчанию (51820) на другие порты (пробовал 51821, 81, 443), чтобы выяснить, не ограничивает ли мой интернет-провайдер (AT&T) какие-либо из этих портов. Безуспешно.
  2. Переустановил PiVPN без интеграции с PiHole (вдруг это как-то мешает). Безуспешно.
  3. Изменил MTU сервера и клиента на разные значения (по умолчанию это 1420): 1400, 1300, 1200. Безуспешно. (Я сделал ifconfig, и кажется, что мой сетевой mtu составляет 1500, поэтому значение по умолчанию было бы в порядке)
  4. Провел тест iperf3 с использованием моего Mac, чтобы увидеть, смогу ли я что-то найти с этим тестом:

Тест iperf без vpn

iperf3 -c 192.168.1.93
 Подключение к хосту 192.168.1.93, порт 5201
[ 5] local 192.168.1.64 port 57206 connected to 192.168.1.93 port 5201
[ ID] Интервал  Передача  Скорость
[ 5]  0.00-1.00  сек 76.2 MBytes  639 Mbits/sec  
[ 5]  1.00-2.01  сек 72.2 MBytes  598 Mbits/sec  
[ 5]  2.01-3.00  сек 62.8 MBytes  533 Mbits/sec  
[ 5]  3.00-4.00  сек 55.2 MBytes  465 Mbits/sec  
[ 5]  4.00-5.00  сек 72.9 MBytes  612 Mbits/sec  
[ 5]  5.00-6.00  сек 72.4 MBytes  608 Mbits/sec  
[ 5]  6.00-7.00  сек 68.0 MBytes  569 Mbits/sec  
[ 5]  7.00-8.00  сек 61.4 MBytes  516 Mbits/sec  
[ 5]  8.00-9.00  сек 70.4 MBytes  591 Mbits/sec  
[ 5]  9.00-10.00 сек 70.6 MBytes  592 Mbits/sec  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Интервал  Передача  Скорость
[ 5]  0.00-10.00 сек  682 MBytes  572 Mbits/sec sender
[ 5]  0.00-10.01 сек  681 MBytes  571 Mbits/sec receiver

Тест iperf с vpn

iperf3 -c 10.6.0.1
Подключение к хосту 10.6.0.1, порт 5201
[ 5] local 10.6.0.2 port 59800 connected to 10.6.0.1 port 5201
[ ID] Интервал  Передача  Скорость
[ 5]  0.00-1.00  сек 3.16 MBytes 26.3 Mbits/sec  
[ 5]  1.00-2.00  сек 0.00 Bytes 0.00 bits/sec  
[ 5]  2.00-3.00  сек 0.00 Bytes 0.00 bits/sec  
[ 5]  3.00-4.00  сек 1.21 MBytes 10.2 Mbits/sec  
[ 5]  4.00-5.00  сек 1.72 MBytes 14.4 Mbits/sec  
[ 5]  5.00-6.00  сек 1.58 MBytes 13.2 Mbits/sec  
[ 5]  6.00-7.00  сек 1.91 MBytes 16.1 Mbits/sec  
[ 5]  7.00-8.00  сек 1.72 MBytes 14.4 Mbits/sec  
[ 5]  8.00-9.00  сек 0.00 Bytes 0.00 bits/sec  
[ 5]  9.00-10.00 сек 0.00 Bytes 0.00 bits/sec  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Интервал  Передача  Скорость
[ 5]  0.00-10.00 сек 11.3 MBytes 9.48 Mbits/sec sender
[ 5]  0.00-15.52 сек 11.3 MBytes 6.11 Mbits/sec receiver

Этот тест лишь подтвердил то, что я уже наблюдал по результатам speedtest.net.
У меня не осталось других вариантов, поэтому у меня есть несколько вопросов, если вы можете мне помочь:

  1. Ограничивает ли AT&T пакеты Wireguard? Может ли это быть причиной того, что я застрял на 10mbps?
  2. Нормально ли ожидать падения скорости с 400mbps до 10mbps при использовании Wireguard?
  3. Как мне исправить эту проблему? что вы рекомендуете для ускорения моего соединения?
    Несколько других вещей, которые стоит отметить:
  • Я использую маршрутизатор AT&T Pace 5268AC (пересылка портов, похоже, работает нормально)
  • Это мой текущий журнал отладки pivpn -d:
=============================================
::::  Последний коммит   ::::
Ветка: master
Коммит: f80b0a7962d91862132c0a4abd65c1e67bd37bd7
Автор: 4s3ti
Дата: Пт Дек 3 21:41:13 2021 +0100
Резюме: Обновление журнала изменений
=============================================
::::  Настройки установки    ::::
PLAT=Ubuntu
OSCN=focal
USING_UFW=1
IPv4dev=eth0
install_user=ubuntu
install_home=/home/ubuntu
VPN=wireguard
pivpnPORT=443
pivpnDNS1=1.1.1.1
pivpnDNS2=1.0.0.1
pivpnHOST=REDACTED
pivpnPROTO=udp
pivpnMTU=1420
pivpnDEV=wg0
pivpnNET=10.6.0.0
subnetClass=24
ALLOWED_IPS="0.0.0.0/0, ::0/0"
UNATTUPG=0
INSTALLED_PACKAGES=()
=============================================
:::: Конфигурация сервера показана ниже  ::::
[Interface]
PrivateKey = server_priv
Address = 10.6.0.1/24
MTU = 1420
ListenPort = 443
### begin user ###
[Peer]
PublicKey = user_pub
PresharedKey = user_psk
AllowedIPs = 10.6.0.2/32
### end user ###
### begin Phone ###
[Peer]
PublicKey = Phone_pub
PresharedKey = Phone_psk
AllowedIPs = 10.6.0.3/32
### end Phone ###
=============================================
:::: Конфигурация клиента показана ниже  ::::
[Interface]
PrivateKey = user_priv
Address = 10.6.0.2/24
DNS = 1.1.1.1, 1.0.0.1
[Peer]
PublicKey = server_pub
PresharedKey = user_psk
Endpoint = REDACTED:443
AllowedIPs = 0.0.0.0/0, ::0/0
=============================================
::::  Рекурсивный список файлов в  ::::
:::: [4m/etc/wireguard показан ниже  ::::
/etc/wireguard:
configs
keys
wg0.conf
/etc/wireguard/configs:
Phone.conf
clients.txt
user.conf
/etc/wireguard/keys:
Phone_priv
Phone_psk
Phone_pub
user_priv
user_psk
user_pub
server_priv
server_pub
=============================================
::::  Самопроверка   ::::
:: [OK] IP переадресация включена
:: [OK] Ufw включена
:: [OK] Правило MASQUERADE iptables установлено
:: [OK] Установлено правило ввода Ufw
:: [OK] Установлено правило пересылки Ufw
:: [OK] WireGuard работает
:: [OK] WireGuard включен (он автоматически запустится при перезагрузке)
:: [OK] WireGuard слушает на порту 443/udp
=============================================
:::: Есть проблемы с подключением? Ознакомьтесь с часто задаваемыми вопросами:
:::: https://docs.pivpn.io/faq
=============================================
:::: ПРЕДУПРЕЖДЕНИЕ: Этот скрипт должен был автоматически скрыть конфиденциальные  ::::
:::: данные, однако все равно убедитесь, что PrivateKey, PublicKey ::::
:::: и PresharedKey скрыты перед тем, как сообщить о проблеме. Пример ключа ::::
:::: который вы не должны видеть в этом журнале выглядит следующим образом: ::::
:::: YIAoJVsdIeyvXfGGDDadHh6AxsMRymZTnnzZoAb9cxRe ::::
=============================================
::::  Отладка завершена   ::::
::: 
::: Вывод отладки завершен выше.
::: Копия сохранена в /tmp/debug.log

редактировать
вот как выглядит htop во время выполнения speedtest
введите описание изображения здесь

Я смог улучшить это, réduisant MTU до 1432 (MTU = 1432 в вашей конфигурации wireguard). Вот результаты до/после на моей локальной сети (wifi) между MBP и моим Raspi 4:

значение MTU по умолчанию:

$ iperf3 -c 172.16.42.1 -p 5201
Подключение к хосту 172.16.42.1, порт 5201
[  5] local 172.16.42.2 port 60457 connected to 172.16.42.1 port 5201
[ ID] Интервал           Передача    Скорость
[  5]   0.00-1.00   сек   148 KBytes  1.21 Mbits/sec
[  5]   1.00-2.00   сек  30.7 KBytes   251 Kbits/sec
[  5]   2.00-3.00   сек  54.5 KBytes   448 Kbits/sec
[  5]   3.00-4.00   сек  5.34 KBytes  43.8 Kbits/sec
[  5]   4.00-5.00   сек  33.4 KBytes   273 Kbits/sec
[  5]   5.00-6.00   сек  86.9 KBytes   712 Kbits/sec
[  5]   6.00-7.01   сек  28.1 KBytes   229 Kbits/sec
[  5]   7.01-8.00   сек  45.4 KBytes   374 Kbits/sec
[  5]   8.00-9.00   сек  33.4 KBytes   273 Kbits/sec
[  5]   9.00-10.00  сек  45.4 KBytes   372 Kbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Интервал           Передача    Скорость
[  5]   0.00-10.00  сек   511 KBytes   419 Kbits/sec                  sender
[  5]   0.00-10.69  сек   411 KBytes   315 Kbits/sec                  receiver

iperf Выполнено.

пониженное значение MTU:

$ iperf3 -c 172.16.42.1 -p 5201
Подключение к хосту 172.16.42.1, порт 5201
[  5] local 172.16.42.2 port 60683 connected to 172.16.42.1 port 5201
[ ID] Интервал           Передача    Скорость
[  5]   0.00-1.00   сек  12.9 MBytes   108 Mbits/sec
[  5]   1.00-2.00   сек  14.0 MBytes   117 Mbits/sec
[  5]   2.00-3.00   сек  13.7 MBytes   115 Mbits/sec
[  5]   3.00-4.00   сек  14.4 MBytes   121 Mbits/sec
[  5]   4.00-5.00   сек  15.2 MBytes   127 Mbits/sec
[  5]   5.00-6.00   сек  15.4 MBytes   129 Mbits/sec
[  5]   6.00-7.00   сек  15.4 MBytes   129 Mbits/sec
[  5]   7.00-8.00   сек  17.1 MBytes   143 Mbits/sec
[  5]   8.00-9.00   сек  16.0 MBytes   134 Mbits/sec
[  5]   9.00-10.00  сек  16.0 MBytes   134 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Интервал           Передача    Скорость
[  5]   0.00-10.00  сек   150 MBytes   126 Mbits/sec                  sender
[  5]   0.00-10.03  сек   149 MBytes   125 Mbits/sec                  receiver

iperf Выполнено.

Этот гист содержит дополнительную информацию о нахождении оптимального сочетания MTU для сервера/клиента в вашей сети: https://gist.github.com/nitred/f16850ca48c48c79bf422e90ee5b9d95

Ответ или решение

Вопрос о медленной скорости соединения с использованием Raspberry Pi 4 и WireGuard рассматриваем в этом ответе с учетом предоставленных деталей и с использованием формата FOREST.

Факт (Fact)

Вы настроили локальную VPN на Raspberry Pi 4 Model B (2019, 4 ГБ ОЗУ), работающем под управлением Ubuntu 20.04, используя PiVPN и Pi-hole. Все соединения, как на клиентских устройствах (iPhone и Mac), показывают значительно более низкие скорости при подключении к VPN (например, 15.65 Мбит/с на Mac и 8.45 Мбит/с на iPhone), чем при прямом подключении к сети (397 Мбит/с и 377 Мбит/с соответственно).

Возможности (Opportunity)

Ваши тесты производительности с использованием iperf3 показывают серьезное снижение скорости при работе с VPN (до 9.48 Мбит/с), что также подтверждает проблему. Это предоставляет возможность для оптимизации настроек и настройки сети, а также проведенной диагностики.

Рекомендации (Recommendation)

  1. Настройка MTU: Вы обнаружили, что снижение значения MTU до 1432 значительно улучшает скорость соединения. Рекомендуется продолжать тестирование с MTU в диапазоне от 1430 до 1450, чтобы найти оптимальное значение для вашей сети.

  2. Оптимизация маршрутизации: Убедитесь, что процесс маршрутизации на вашем Raspberry Pi и на клиентских устройствах настроен правильно, так как неправильно настроенные маршруты могут препятствовать достижению высоких скоростей.

  3. Проверка нагрузок на процессор: Используйте htop и другие утилиты для мониторинга нагрузки на CPU Raspberry Pi. Если процессор сильно загружен, это может привести к задержкам и снижению скорости.

  4. Изменение используемого протокола: В случае продолжительных проблем, рассмотрите возможность тестирования с использованием другого протокола, такого как IPSec, хотя WireGuard должен был бы предлагать лучшие характеристики производительности.

  5. Проверка программного обеспечения: Убедитесь, что программные компоненты, включая WireGuard и PiVPN, находятся в актуальном состоянии. Регулярные обновления могут включать оптимизации производительности и исправления ошибок.

  6. Настройка firewall: Убедитесь, что ваш фаервол (UFW) правильно настроен и не блокирует некоторые порты, или не вызывает задержек в обработке пакетов.

Эмоции (Emotion)

Проблемы с производительностью могут вызывать фрустрацию, особенно когда есть ожидания по высокой скорости от вашего ISP. Однако с правильной диагностикой и оптимизацией вы можете значительно улучшить качество своего VPN-соединения и вернуть свое спокойствие, наслаждаясь безопасным и быстрым интернет-доступом откуда угодно.

Груз ответственности (Satisfaction)

Поскольку вы уже предприняли многие шаги по решению этой проблемы, такие как изменение MTU и тесты с iperf, продолжайте мониторинг и оптимизацию всех упомянутых аспектов. Нахождение решения не только улучшит ваше опыт использования VPN, но и положительно скажется на вашей сети в целом. Успехов вам в оптимизации вашего VPN и получении высокоскоростного доступа!

Оцените материал
Добавить комментарий

Капча загружается...