LINUX.ORG.RU

Ограничение скорости сети

 , ,


0

1

Предыстория: в связи с войной бобра с ослом по всему миру я внезапно обнаружил, что ютуб/youtube-dl перестал быть универсальным и надёжным источником видео. Большинство альтернативных ресурсов активно сопротивляются скачиванию, а веб-плееры работают как {много нецензурных выражений}... Короче плохо.

Но главная проблема для меня в том, что я вынужден экономить трафик, что невозможно при использовании веб-плеера потому что прежде чем я мог бы выбрать низкое качество или получить ссылку на видео для скачивания оно успевает выкачать пару сотен Мб, которые тут же будут отброшены. А некоторые особо упоротые плееры вообще игнорируют настройку качества и продолжают тянуть 1 Мб/с даже если указать 240р.

Предполагаемый костыль: занизить скорость сети до ~20-50Кбайт/с, сделать что нужно и снизить оверхед до 1-10Мб. Потом или выкачать видео или снять ограничение и спокойно досмотреть в браузере.

Проблема: найденные мной инструкции предполагают использование traffic controll и скриптов над ним, а оно отбрасывает входящие пакеты, что может и работает в большинстве случаев, но вот с веб-плеерами приводит к зависанию загрузки с вероятностью 90+% до получения работоспособной страницы. Схема сети: смартфон с симкой (кнопочник, андроид4) и режим модема через юсб или wifi.

Собственно вопрос: альтернативные способы ограничения скорости сети без отбрасывания пакетов и разрыва соединений из за этого?

★★★★★

Ответ на: комментарий от burato

С чем, с VK, яндекс-зеном и однокласниками? При невозможности получить прямую ссылку на видео?

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от burato

Ну ладно, а ссылку откуда брать? Яндекс не отдаёт, ВК тоже. С однокласниками в принципе и youtube-dl работает если ссылка есть, но там сжатие дерьмовое, 400К в 240р.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от firkax

На ВК это вообще не работает, а в случае всех сервисов яндекса практически ничто не может получить видео по юрл страницы. Собтвенно только для рутуба и ОК можно просто взять и загрузить видео по адресу страницы, но рутуб в ауте и я хз поднялся ли, а на ОК почти ничего нет, а что есть адски жрёт трафик с минимумом кпд.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от amd_amd

Ага, тот самый скрипт над tc, который отбрасывает входящие пакеты и вызывает зависание соединения.

kirill_rrr ★★★★★
() автор топика

Наверняка есть расширения для браузеров для выбора качества видео автомататически на различных популярных сайтах. Я бы в эту сторону подумал.

iljuase ★★★
()
Ответ на: комментарий от upcFrost

Для посёлка на окраине города всё очень даже хорошо. Пакетный тариф с ночной безлимиткой 100+ гигов торрентов в месяц, но вот на просмотр видео днём стало не хватать.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

H+ это несколько быстрее, особенно если вышка ненагружена. 1 Мбайт/с это тот поток, которые некоторые упоротые плееры непонятной принадлежности умудряются выкачивать воспроизводя видео в 240-360p. Я сам офигел когда увидел 450М на счётчике после 2-3 роликов. Зато сразу стало понятно почему в последние 2 месяца не уложился в пакет.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от kirill_rrr

Я сам офигел когда увидел 450М на счётчике после 2-3 роликов

Чёт не верю. Сними трафик с интерфейса, мне кажется у тебя поток куда-то ещё идёт. Ну не может ютуб на 240р столько жрать, он бы у 90% людей не работал тогда. Тут половина Франции на adsl сидит, оттуда полгига вытащить такое себе

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

Не ютуб. С ютубом всё просто идеально если не заблокирован ролик. А у меня речь идёт о тех ресурсах, которые попадают под веерные санкции и блокировки и выкладывают видео через всякие второсортные сайты со встраиванием левых плееров, вероятно клонов чего либо.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от upcFrost

Ну, собственно тема о том, как ограничить сеть до скоростей, на которых я подобную хню успею заметить и пресечь. А оно такое будет появляться, в инете будет нарастать тот ещё хаос, а в рунете так особенно.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от Novator

Я яндексил. И яндекс на первых 2 страницах предложил ровно 2 решения: шейпинг через tc и поднять локальный кеширующий прокси или что то в этом духе.

З.Ы. А если вы сами гуглили, то возможно заметили, что гугл предлагает ровно всё то же самое.

kirill_rrr ★★★★★
() автор топика
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

У меня гугл предлагает это:
IPtables как ограничить скорость
Ограничение скорости upload
Как ограничить скорость трафика с конкретным ip адресом?
https://www.securitylab.ru/forum/forum21/topic38658/
https://www.opennet.ru/openforum/vsluhforumID10/2128.html

Вот навскидку по источникам (я не проверял):

#!/bin/sh

#Но, как вариант, можно использовать грязный хак через iptables:

iptables -A INPUT -p tcp --sport 80:443 -m limit --limit 5/seconds -j ACCEPT
iptables -A INPUT -p tcp --sport 80:443 -j DROP

#Работает это через подсчет первых входящих пакетов каждую секунду (в данном случае 5). Вторая команда сбрасывает правило. Их количество можно поменять на другое нужное значение.

#---------

#Ну что ж проблему сам решил !!!
#в правилах прописал следующее:

/sbin/iptables -A INPUT -p TCP -i eth1 --sport 443 -m limit --limit 2/second --limit-burst 2 -j ACCEPT
/sbin/iptables -A INPUT -p TCP -i eth1 --sport 443  -j DROP

/sbin/iptables -A INPUT -p TCP -i eth1 --sport 443 -m limit --limit 2/second --limit-burst 2 -j ACCEPT
/sbin/iptables -A INPUT -p TCP -i eth1 --sport 443  -j DROP

#получилась скорость около 6 кБ/с определял экспериментально при закачке файла с сервера....
#для веб просмотра страниц скорость примерно получается около 900 Б/с
#ну вот, что и требовалось сделать, без всяких там заморочек!!!

Novator ★★★★★
()
Ответ на: комментарий от Novator

Насколько я понял, iptables -m limit это примерно тот же самый механизм отбрасывания входящих пакетов и работать должно примерно с тем же результатом. Я протестирую вечером, но есть 90% уверенность что будет тот же самый разрыв.

З.Ы. Вспомнил почему отбросил все статьи, где речь шла про iptables. Я ничего не путаю, от этого инструмента отказываются и сейчас это какой то костыль с симуляцией старого поведения поверх bpf?

kirill_rrr ★★★★★
() автор топика
Последнее исправление: kirill_rrr (всего исправлений: 2)
Ответ на: комментарий от kirill_rrr

youtube-dl с vk качает без каких-либо проблем. Через -F/-f можно явно выбирать качество

aedeph_ ★★
()

Собственно по итогу:

Рубить входящие пакеты через tc или iptables это принципиально неправильный подход и приводит только к обрывам соединений и неработоспособности.

Но, как написали на одном форуме, если ограничить исходящий трафик в районе очень малых значений (в идеале по числу пакетов, а не объёму), то ответы на входящие будут отправляться медленно, сервер поймёт что соединение медленное и не будет отправлять слишком много.

И это в целом работает! Разве что я не стал реализовывать правильное ограничение по числу исходящих пакетов, а просто покрутил лимит объёма через wondershaper и в районе 8-16 кбит (1-2 кбайт) получил требуемый эффект при вполне работоспособных веб-плеерах.

kirill_rrr ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.