Openvpn windows нет скорости

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Почему тормозит OpenVPN? Размер буферов приема и отправки

Почему тормозит OpenVPN? Размер буферов приема и отправки

Производительность OpenVPN является для многих администраторов больной темой. Очень часто скорость внутри туннеля в разы отличается от скорости канала в меньшую сторону. К сожалению многие сетевые ресурсы дают по этому поводу неверные или вообще вредные советы, либо заявляют, что это «нормально», мол шифрование, работа в userspace, накладные расходы и т.д., и т.п. Мало кто пытается разобраться в реальных механизмах, влияющих на производительность OpenVPN, другая же часть просто дает готовые рекомендации, не поясняя откуда они получены и почему надо делать именно так.

Для примера возьмем один реальный случай. К нам обратился один знакомый системный администратор и пожаловался на низкую скорость через OpenVPN в двух новых торговых точках организации, в то время как в остальных местах проблем с производительностью канала не было.

Стали разбираться вместе и обнаружили, что при реальной скорости канала около 15 Мбит/с OpenVPN не разгоняется свыше 3-4 Мбит/с, да и это, по словам нашего коллеги, еще «хорошая» скорость.

Перед тем, как обратиться за помощью наш знакомый перепробовал массу рекомендаций из сети, но ни одна из них не принесла успеха. При этом выяснилось, что доступ к двум новым точкам осуществляется по радиоканалу и пинг, в зависимости от погодных условий, находится в пределах 100-200 мс, в то время как к остальным филиалам он гораздо ниже, около 50 мс.

А теперь самое время вспомнить о таком параметре, как размер буферов приема и отправки. Если не вдаваться в подробности работы сетевых протоколов, то размер буфера определяет максимальный объем данных, которые могут быть переданы за единицу времени. Наиболее чувствительный к размеру буфера протокол TCP, так как размер окна TCP, т.е. количества одновременно отправляемых пакетов не может превышать размер буфера. Протокол UDP работает иначе, но и его производительность также ограничена размерами буферов.

Проведем простую аналогию. Нам нужно перевезти некий груз из пункта A в пункты Б и В, в пункт Б ведет хорошая автомагистраль со средней скоростью 90 км/ч, а в пункт B грунтовка, разогнаться на которой можно до 45 км/ч. Понятно, что, используя один и тот-же транспорт за одно и тоже время в пункт Б удастся доставить в два раза больше груза, чем в пункт В.

В сетях все происходит аналогично. Исторически сложилось так, что размер буфера OpenVPN составляет 64 КБ, в Linux системах это значение устанавливается принудительно, в Windows вроде бы как отдается на откуп ОС, но по факту чаще всего мы имеем все те же 64 КБ. В этом несложно убедиться заглянув в лог:

Теперь вооружимся калькулятором и посчитаем. Объем данных отправляемых или принимаемых за одну передачу не может превышать объем буфера, а количество отправок в единицу времени ограничено скоростью прохождения пакетов (пингом). Таким образом при пинге в 50 мс мы можем осуществить 20 передач в секунду, а при 200 мс только пять. Отправить за один раз мы можем 64 КБ, считаем, при 50 мс это будет 1280 КБ/сек (1,25 МБ/с) или 10 Мбит/с. Результат довольно неплохой и при общей скорости канала филиалов в 15-20 Мбит/с данное ограничение легко списать на служебный трафик, шифрование и т.п.

Читайте также:  Как располовинить жесткий диск windows 10

При пинге в 200 мс все гораздо более печально, мы упремся в потолок 320 КБ/с или 2,5 Мбит/с. Таким образом, путем несложных математических вычислений мы ответили на главный вопрос: «Почему тормозит OpenVPN». Как видим, ни шифрование, ни «накладные расходы» тут не причем, проблема в физических ограничениях канала.

Что же делать? Ответ прост — увеличивать размер буферов. Сделать это просто, откройте конфигурационный файл сервера и добавьте туда строки:

Это установит объем буферов в размере 512 КБ и позволит достичь скоростей при 50 мс — 80 Мбит/с, а при 200 мс — 20 Мбит/с.

В большинстве руководств советуют добавить такие же строки и в конфигурационный файл клиента, но как выяснилось на практике, со стороны клиента данные опции не работают, поэтому следует передать размеры буферов со стороны сервера, поэтому в конфигурацию сервера добавим еще две строки:

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

Также в ряде источников выражается мнение, что данная проблема (размеров буфера) актуальна только для Linux систем, а в Windows все должно работать быстро, однако уже у другого клиента мы обнаружили что в одном из филиалов, при проводном подключении, Windows Server 2008 R2 устанавливал размеры буферов в 8 КБ:

А это даже при хорошем пинге в 50 мс не более 1,25 МБит/с, при скорости канала в десятки раз превышающем это значение.

В нашем же случае увеличение буфера до 512 КБ позволило достичь скоростей 11-12 Мбит/с, что вполне соответствует реальной скорости канала.

Поэтому мы советуем не полагаться на значения по умолчанию, а взять управление в свои руки, и реально оценив условия доступа рассчитать и установить необходимые значения буферов приема и отправки, что позволит полностью утилизировать канал и более не задаваться вопросом: «Почему OpenVPN тормозит?».

Дополнительные материалы:

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Ускоряем OpenVPN или немного о размере буфера.

Чуть-чуть теории. Несколько слов о том, как можно повысить скорость OpenVPN соединения увеличив размер буферов в конфиге. Далее по заметке делюсь тем, что делал сам.

Итак, если кратко, размер буфера — это величина обозначающая максимальный объём данных, который будет передан за единицу времени. Так уж сложилось, что в OpenVPN этот параметр составляет 64КБ. При этом, количество отправленных пакетов на единицу времени ограничивается скоростью прохождения этих самых пакетов. Соответственно, чем ниже у нас будет скорость прохождения пакетов (чем больше будет пинг), тем ниже скорость работы OpenVPN мы получим.

Что делать в данной ситуации? Попробовать увеличить объём данных, который будет передаваться за единицу времени. В OpenVPN для этого предусмотрены параметры sndbuf и rcvbuf. Для того, что бы размер буфера задавался настройками ОС, в конфиг можно просто задать этим параметрам 0:

Если возможности изменить конфиг клиента нет, то значения буфера нужно ему передать с помощью push. При этом, передавать мы будем сразу же большое знчение:

При этом, мы можем обозначить и размер буфера в конфиге сервера, сделать вот так, например:

Кроме того, размер буферов мы можем изменить и в настройках самой системы (далее речь о Linux). Если мы используем UDP в OpenVPN, то увеличить буферы можно передав значения для параметров net.core.rmem_default и net.core.wmem_default, при этом, передаваемые им значения мы делим на два. При использовании TCP, размер буферов увеличивается параметрами net.ipv4.tcp_rmem и net.ipv4.tcp_wmem.

В моём случае (после которого и появился этот разбор), на сервере использовался UDP, так что параметры были вот такими:

При этом, не стоит забывать что в системе существуют параметры net.core.rmem_max и net.core.wmem_max, значения которых, возможно, так же (в моём случае потребовалось) потребуется увеличить. Параметры отвечают за максимальный размер буфера для приёма и передачи данных.

Читайте также:  Рейтинг календарей для windows

По тестам на попугаях имею примерно следующее — слева результат до настройки буфера, а справа уже после тюнинга.

Что ограничивает скорость OpenVPN? Нужна помощь.

О хорошем: На сервер установил L2TP-IPSec-VPN. Подключаюсь через L2TP соединение. Скорость отличная — 50мегабит туда-сюда.

О грустном: На сервер установил OpenVPN. Подключаюсь через OpenVPN соединение. Скорость низкая — 8мегабит сюда 2мегабита туда. Конфиги пробовал все которые мог нагуглить.

Что «держит за я.ца» OpenVPN?

Основное ограничение — скорость шифрования, но т.к. там по умолчанию используется Бф-128, то скорость в 2 Мбит/с выглядит весьма подозрительно.

конфиги добавил в шапку

конфиги добавил в шапку

проблема на стороне клиента исключена, так как с этим конфигом-клиента с другими серварами все ок, скорость высокая. (специально брал тестовый доступ на hideme)

1.) попробуйте udp вместо tcp
2.) попробуйте уменьшить mtu

пробовал. конфиг клиента, который представлен выше — работает идеально с другими серверами, поэтому в нем менять ничего не нужно — udp и mtu отпадают автоматически.

tap (L2) ограничивает, используй tun.

tap заменил на tun в обоих конфигах. перезапустил. сюда 8мегабит — туда 2

ifconfig показывает: ppp0 MTU:1200 tap0 MTU:1500

как в debian изменить, чтобы было так: tap0 MTU:1200 ?

проблем локально на клиенте нет, так как через TAP-Win32 Adapter подключаюсь к другим серверам и скорость высокая.

в конфиге сервера:

пробовал ) 8.6 мбит

не буду, так как конфиг клиента работает нормально с другими серверам, и менять в нем ничего не нужно. я так думаю.

Чтобы устранить проблему нужно понять её причины — что именно тормозит, поэтому пробуйте то, что вам советуют — переключать режимы работы и т.п.

Пинг до сервера большой? Больше, чем до тех, до которых хорошо работает?

Вообще, основная проблема openvpn в том, что весь трафик уходит в userspace, в отличии от всяких l2tp. Но что-то не очень похоже, что ваша проблема именно в этом.

Огромное спасибо за ответы! Буду юзать L2TP-IPSec-VPN — скорость отличная!

Для openvpn надо приоретизировать собственный трафик, т.к. происходит двойная инкапсуляция данных.

если вам не сложно, объясните как это сделать. спасибо.

1 Вариант (OpenVPN)

Ставлю чистый образ Debian 7.0 x64.

Устанавливаю OpenVPN apt-get install openvpn.

Конфиги (см. первом посте)

2 Вариант (xl2tpd)

Ставлю чистый образ Debian 7.0 x64.

Устанавливаю apt-get install openswan xl2tpd

Скорость 50 мегабит туда-обратно.

Как проверяю: Подключаюсь (xl2tpd)

50 мегабит туда-обратно (от моего сервера до ближайшего)

отключаюсь от (xl2tpd)

8-2 мегабит туда-обратно (от моего сервера до того же сервера)

Что и где настроить, чтобы по (OpenVPN) подключению была такая же скорость как по (xl2tpd)? спасибо.

DES медленнее BlowFish

На моем 9450 кварде результаты

Сталкивался с подобной проблемой

Мне помогло добавление в конфиги клиента и сервера параметра fast-io

не помогает ( 8/2mbit

Покажите рабочие конфигами, на которых пропускная способность реально более 30-40 мбит.

—fast-io This option can only be used on non-Windows systems, when —proto udp is specified, and when —shaper is NOT specified.

На винде, признаться не тестил. В линуксе выходит внутри канала

80 мбит/сек Мой рабочий конфиг сервера. Клиентский почти аналогичен — разберешься.

зря время теряю и ваше отнимаю.

остаюсь на L2TP-IPSec.

буду надеяться, что кто-нибудь даст 100% решение по низкой скорости в OpenVPN.

А результат какой? чего iperf отдает

Покажи сначала результат тестирования канала через iperf.
Потом посмотри загрузку процессом впна процессора, на сервере и клиенте.

Почему такой низкий результат ? 2.89 Mbits/sec

Увеличиваем скорость Интернета с VPN на Windows

При использовании VPN соединения иногда можно заметить снижение скорости загрузки страниц, особенно это заметно при загрузке тяжеловесных сайтов и медиа-ресурсов. В таких ситуациях просмотр видео онлайн становится просто невыносимым, а отключать VPN не всегда удобно, а в некоторых случаях и недопустимо. Как использовать VPN без потери скорости мы рассмотрим в данной статье.

Читайте также:  Что такое windows очумелые ручки

Определяем скорость VPN

Низкая скорость VPN соединения, в первую очередь, может быть связана с медленным открытым соединением. Чтобы проверить скорость соединения используйте любой сервис определения скорости интернета, например, с помощью сервиса. Проверьте скорость соединения с выключенным и включенным VPN, чтобы определить, что именно VPN тормозит ваше соединение.

Что делать, если VPN снижает скорость незначительно?

Если при проверке скорость через VPN отличается незначительно, значит проблема в вашем интернет-соединении. Перезагрузите свой маршрутизатор, произведите настройки антивирусного программного обеспечения, чтобы он не проверял VPN-трафик, уточните свой тарифный план у интернет-провайдера. Также рекомендуем использовать проводное соединение, так как Wi-Fi нередко тормозит.

Что делать, если VPN тормозит?

Итак, вы определили, что при использовании VPN скорость интернета гораздо ниже, чем без него. Давайте разбираться, что с этим можно сделать.

Выбор быстрого сервера VPN

Ускорить медленный VPN можно выбрав сервер VPN, который работает быстрее. Чтобы определить, какой из серверов будет работать быстрее, подключитесь к каждому из них и определите скорость соединения с помощью специального сервиса. Выберите тот сервер VPN, для которого скорость максимальна. Это позволит заметно увеличить скорость VPN.

Настройка брандмауэра Windows

Замедлять скорость VPN может брандмауэр Windows. Создайте исключение для VPN соединения, и проблема будет решена. Для этого в строке поиска введите брандмауэр и выберите разрешение взаимодействия с приложением через брандмауэр.

В открывшемся окне нажмите кнопку «Изменить параметры», после этого станет активна кнопка «Разрешить другое приложение». Нажмите на нее, нажмите кнопку «Обзор» и выберите расположение исполняемого файла VPN, например, C:\Program Files (x86)\Наименование VPN.

После выбора файла, нажмите кнопку «Добавить» и отметьте галочками частную и публичную сеть. После окончания настройки нажмите кнопку «ОК».

Изменения вступают в силу сразу. Проверьте скорость соединения, если брандмауэр замедлял работу VPN, вы увидите увеличение скорости.

Выбираем приемлемый уровень шифрования

Еще одной причиной медленного VPN может быть выбранный протокол шифрования. Различают следующие типы VPN: IPSec, OpenVPN, PPTP, L2TP и другие. Как правило, чем выше безопасность используемого протокола, тем больший трафик передается между узлами. Если есть возможность выбора, попробуйте разные варианты и выберите подходящий. Например, совершенно нет смысла использовать VPN с высоким уровнем безопасности, если вы используете ее для просмотра видео или скачивания торрентов. По соотношению уровень безопасности – скорость соединения предпочтительней использовать OpenVPN. Этот протокол обеспечивает высокую скорость обмена при высоком уровне безопасности.

Используем VPN на одном устройстве

Если вы используете VPN соединение на нескольких устройствах, например, при использовании VPN на Wi-Fi роутере, ширина канала автоматически делится между ними. Таким образом, чем больше устройств одновременно использует одну VPN, тем ниже скорость соединения на каждом из них. Попробуйте использовать VPN соединение только на одном устройстве.

Выбор поставщика VPN

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

Хотите использовать VPN без потери скорости? Мr.Whoer всегда готов прийти на помощь. Наши сервера VPN расположены в 16 странах мира, и вы всегда сможете выбрать тот, который идеально подходит под ваши цели.

Статья была полезна для вас? Делитесь информацией в социальных сетях.

Оцените статью