Transmission - плохо раздаёт.

Модератор: Модераторы разделов

Ответить
vlad001
Сообщения: 55

Transmission - плохо раздаёт.

Сообщение vlad001 »

Приветствую! Есть маршрутизатор на Archlinux. К нему (кроме прочего) подключен nas с Ubuntu Server 20.04 с transmission на борту. В transmission примерно 2 тыс раздач. Проблема в том что через этот маршрутизатор, nas "вяло" раздаёт, выражается в малом количестве активных раздач 8-15 и скорость раздач достигает не более 50% от возможного (100 мБит). Проблема точно в Archlinux, т.к. до него на маршрутизаторе был тоже Ubuntu Server, активных раздач было до 60 штук, соответственно канал занимался на > 95%. Железо в обоих случаях одинаковое. В Archlinux использую те же конфиги тех же программ, т.е. просто сменил ОС, конфигурацию nas не менял. Во всём остальном работает так же.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Transmission - плохо раздаёт.

Сообщение Bizdelnick »

Пробросьте порт, используемый transmission, или поднимите miniupnpd. При условии, что у маршрутизатора белый IP, конечно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

Всё это сделано, miniupnpd установлен, ip белый, в том то и дело.
Спасибо сказали:
Kopilov
Сообщения: 947
ОС: [K]Ubuntu, Debian

Re: Transmission - плохо раздаёт.

Сообщение Kopilov »

А что вообще этот miniupnpd такое, как он заменяет проброс порта?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Transmission - плохо раздаёт.

Сообщение Bizdelnick »

Kopilov писал:
17.06.2022 19:35
А что вообще этот miniupnpd такое, как он заменяет проброс порта?
Это реализация сервера википедия://UPnP. Он не заменяет проброс порта, а позволяет клиентам самим его запрашивать, без ручной настройки.
Добавлено (21:14):
vlad001 писал(а):
17.06.2022 18:51
Всё это сделано, miniupnpd установлен, ip белый, в том то и дело.
Тогда надо логи его смотреть, наверное. И настройки файрвола: возможно, он что-то режет, что не надо.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

Я извиняюсь, но проблема действительно была в miniupnpd. Не совсем те правила прописывались.
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

miniupnpd вставляет такое правило:

Код: Выделить всё

...
*nat
...
-A MINIUPNPD -p tcp -m tcp --dport 8096 -j DNAT [unsupported revision]
Что это значит?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Transmission - плохо раздаёт.

Сообщение Bizdelnick »

vlad001 писал(а):
19.06.2022 10:34
Что это значит?
Что в таблицу MINIUPNPD добавляется правило, передающее обработку входящих пакетов TCP на порт 8096 в таблицу DNAT.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

А оно точно работает? [unsupported revision] так и должно быть?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Transmission - плохо раздаёт.

Сообщение Bizdelnick »

vlad001 писал(а):
19.06.2022 21:26
[unsupported revision] так и должно быть?
Для начала хорошо бы знать, что именно Вы показали. Это вывод какой-то команды? Какой?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

Это сокращённый вывод iptables-save. Такое правило добавляет miniupnpd.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Transmission - плохо раздаёт.

Сообщение Bizdelnick »

Пишут, что такое может быть из-за старой версии iptables. У Вас Arch обновлён?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

Код: Выделить всё

[root@home-router]# pacman -Qi iptables
Название             : iptables
Версия               : 1:1.8.8-1
Описание             : Linux kernel packet control tool (using legacy interface)
Архитектура          : x86_64
URL                  : https://www.netfilter.org/projects/iptables/index.html
Лицензии             : GPL2
Группы               : Нет
Предоставляет        : Нет
Зависит от           : libnftnl  libpcap  libnfnetlink  libnetfilter_conntrack  bash
Доп. зависимости     : Нет
Требуется            : fail2ban  iproute2  miniupnpd  systemd
Опционально для      : Нет
Конфликтует с        : Нет
Заменяет             : Нет
Установленный размер : 2,39 MiB
Сборщик              : Antonio Rojas <arojas@archlinux.org>
Дата сборки          : Сб 14 мая 2022 12:46:35
Дата установки       : Сб 11 июн 2022 20:34:13
Причина установки    : Установлен как зависимость другого пакета
Установочный скрипт  : No
Проверен             : Подпись
Если добавить подобное правило руками, то после -j DNAT --to-destination нормально прописывается ip и порт, т.е. как указано, вот фрагмент iptables-save:

Код: Выделить всё

-A PREROUTING -i ppp0 -p tcp -m tcp --dport 32400 -m comment --comment home-32400 -j DNAT --to-destination 192.168.2.115:32400
-A POSTROUTING -o ppp0 -j MINIUPNPD-POSTROUTING
-A POSTROUTING -o ppp0 -j MASQUERADE
-A MINIUPNPD -p udp -m udp --dport 51413 -j DNAT [unsupported revision]
-A MINIUPNPD -p tcp -m tcp --dport 51413 -j DNAT [unsupported revision]
-A MINIUPNPD-POSTROUTING -s 192.168.2.115/32 -p udp -m udp --sport 51413 -j MASQUERADE --to-ports 51413
-A MINIUPNPD-POSTROUTING -s 192.168.2.115/32 -p tcp -m tcp --sport 51413 -j MASQUERADE --to-ports 51413
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

Проблему как бы решил... в каталоге с конфигом есть скрипты, которые в том числе могут правила iptables добавлять/удалять. Вот эти скрипты я заменил из другого пакета... с Ubuntu. Но так и осталось [unsupported revision] и правила masquerade, последнего раньше (в Ubuntu) точно не было. С родными скриптами не строятся цепочки в forward кажется. Вот так выглядит итоговый результат:

Код: Выделить всё

[root@router vlad]# iptables-save | grep 51413
-A MINIUPNPD -p udp -m udp --dport 51413 -j DNAT [unsupported revision]
-A MINIUPNPD -p tcp -m tcp --dport 51413 -j DNAT [unsupported revision]
-A MINIUPNPD-POSTROUTING -s 192.168.2.115/32 -p udp -m udp --sport 51413 -j MASQUERADE --to-ports 51413
-A MINIUPNPD-POSTROUTING -s 192.168.2.115/32 -p tcp -m tcp --sport 51413 -j MASQUERADE --to-ports 51413
-A MINIUPNPD -d 192.168.2.115/32 -p udp -m udp --dport 51413 -j ACCEPT
-A MINIUPNPD -d 192.168.2.115/32 -p tcp -m tcp --dport 51413 -j ACCEPT
Спасибо сказали:
vlad001
Сообщения: 55

Re: Transmission - плохо раздаёт.

Сообщение vlad001 »

vlad001 писал(а):
10.07.2022 21:45
Проблему как бы решил... в каталоге с конфигом есть скрипты, которые в том числе могут правила iptables добавлять/удалять. Вот эти скрипты я заменил из другого пакета... с Ubuntu.
Это был плохой способ. То что правила "unsupported revision" это как бы не влияет на работу. Основная проблема у меня была такая (когда вернул все родные скрипты), что при запуске miniupnpd возникала ошибка:

Код: Выделить всё

янв 06 21:29:29 router iptables_init.sh[17095]: Try `iptables -h' or 'iptables --help' for more information.
янв 06 21:29:29 router iptables_init.sh[17074]: Mangle table clean..initializing...
янв 06 21:29:29 router iptables_init.sh[17097]: Bad argument `enp0s20u11'
янв 06 21:29:29 router iptables_init.sh[17097]: Try `iptables -h' or 'iptables --help' for more information.
янв 06 21:29:29 router iptables_init.sh[17074]: Filter table clean..initalizing..
янв 06 21:29:29 router iptables_init.sh[17099]: Bad argument `enp0s20u11'
янв 06 21:29:29 router iptables_init.sh[17099]: Try `iptables -h' or 'iptables --help' for more information.
янв 06 21:29:29 router iptables_init.sh[17074]: POSTROUTING NAT table clean..initalizing..
янв 06 21:29:29 router iptables_init.sh[17101]: Bad argument `enp0s20u11'
янв 06 21:29:29 router iptables_init.sh[17101]: Try `iptables -h' or 'iptables --help' for more information.
где enp0s20u11 является usb модемом. Вроде бы тут нет ничего плохого? Но ошибка находится в файле miniupnpd_functions.sh. Этот скрипт определяет внешний интерфейс в том числе. В строке 50 он ищется в виде переменной EXTIF. Эта строка выглядит так:

Код: Выделить всё

EXTIF=$(LC_ALL=C $IP route | grep 'default' | sed -e 's/.*dev[[:space:]]*//' -e 's/[[:space:]].*//') || {
В результате, эта переменная у меня имеет два значения ppp0 и вышеупомянутый интерфейс т.к. два derfault маршрута. В данном случае нужно что-то одно, а конкретно ppp0. Поэтому выполнил небольшое изменение этой строки, теперь она такая (решил продолжить с sed):

Код: Выделить всё

EXTIF=$(LC_ALL=C $IP route | grep 'default' | sed -e 's/.*dev[[:space:]]*//' -e 's/[[:space:]].*//' -e 's/\(ppp[[:digit:]]\)/\1/;q') || {
После этого переменная имеет только одно значение. Видимо скрипт нуждается в переделке, чтоб устранить неоднозначность.

Можно по другому сделать. В /etc/systemd/system/ создать каталог miniupnpd.service.d с файлом miniupnpd.conf. Этот файл привести к следующему виду:

Код: Выделить всё

[Service]
EnvironmentFile=/etc/miniupnpd/miniupnpd.conf
ExecStartPre=
ExecStartPre=/etc/miniupnpd/iptables_init.sh -i $ext_ifname
ExecStopPost=
ExecStopPost=/etc/miniupnpd/iptables_removeall.sh -i $ext_ifname
Переменная $ext_ifname будет находится в конфиге. Теперь не нужно редактировать скрипты из пакета. Что-то похожее было в ubuntu, почему тут убрали, неизвестно.
Спасибо сказали:
Ответить