Низкая скорость загрузки через NPM

Всем, привет!

Никак не могу победить низкую скорость загрузки файлов через Reverse Proxy. NPM установлен в docker на VPS, через FRP подключаюсь к домашнему серверу. Скачивание идет с нормальной скоростью (25-30 МБ), а именно загрузка хромает, с настройками по умолчанию скорость не более 10МБ, будто ограничение в 100 мегабит. С использованием доп. настроек удалось разогнать до 15МБ, но это все равно мало, у меня канал интернета в 500 мегабит, на VPS - 2 гигабита. Тестировал и через свой домашний интернет и через другого провайдера. VPS - с избытком 4CPU, 4GB RAM

Помимо FRP пробовал Tailscale, но результат такой же. Iperf3 через Tailscale показывает скорость около 300 мегабит в обе стороны. Также пробовал использовать Caddy, но скорость загрузки так победить не удалось.

Я использую FileBrowser установленный на домашнем сервере для загрузки больших видео файлов на домашний NAS. В домашней сети загрузка через FileBrowser ограничена скоростью самой сети

Помогите решить задачку)

Custom Nginx Configuration:

client_max_body_size 0;
client_body_buffer_size 2m;
proxy_request_buffering off;
proxy_buffering off;

HTTP/2 Support - отключен

  1. Можно попробовать потюнить nginx, например
sendfile on;
tcp_nopush on;
tcp_nodelay on;
proxy_http_version 1.1;
proxy_set_header Connection "";

proxy_buffering on;
proxy_buffers 64 16k;
proxy_busy_buffers_size 512k;
proxy_max_temp_file_size 0;
  1. Есть ли на VPN поддержка aes? (lscpu| grep aes)
    Попробуйте отключить SSL и проверьте скорость по http
    Возможно, проблема с терминацией https трафика
    • С такими настройками скорость опустилась до 11 МБ
    • Поддержка AES имеется
      По http скорость такая же

Я бы начал с
iperf3 -s дома
iperf3 -c <домашний_IP_через_туннель> -R на впс

В FileBrowser upload_chunk_size может быть ограничен

Но скорее всего проблема в оверхедах от докер-бриджа + туннеля и бонусом ловишь фрагментацию, надо пробовать чистый WG, в нем слоев поменьше.

HTTP/2 в таком случае будет плюсом, тк мультиплексирование поддерживает, тоже стоит постестить.

Я тестировал дома на скоростях 2.5Г и не заметил существенной разницы

Тут GPT предлагал такое с MTU
Проверь MTU на VPS и доме:

ip link show dev eth0
ping -M do -s 1472 google.com

Но почему только в одну сторону?

Вот @mzimer пишет

Сомнительно, но я бы поставил OpenSpeedTest и на нем протестировал бы скорость, потом через reverse proxy

В теории да, на практике могут быть проблемы, например, у меня в traaefik http3 сильно снижал скорость

Я сталкивался с подобной проблемой, но с traefik и совместно с ChatGPT тоже тюнил, но сейчас не смог найти тот чат