LINUX.ORG.RU

KTorrent не позволяет жестко направить торрент-трафик через выбранный интерфейс

 , ,


0

1

Есть VPN, когда поднимается VPN-соединение, появляется интерфейс «tap0». Захотелось настроить KTorrent так, чтобы весь трафик шел только через «tap0», на случай, если VPN внезапно оборвется, чтобы торренты не качались/раздавались через обычный инет.

Зашел в KTorrent, выбрал Настройка - Сеть - Сетевой интерфейс. Заменил «Все интерфейсы» на «tap0». Нажал ОК, и спокойно пошел качать торренты дальше.

Но однажды VPN оборвался, а торренты продолжили качаться через «eth0»... KTorrent сломан?

Это интерфейс, на котором ktorrent слушает входящие подключения. А сам трафик ходит по дефолтному маршруту. Либо отрубаешь дефолтный маршрут у eth и при отсутствии vpn живёшь без интернета, либо режешь выход через eth средствами iptables для одного ktorrent.

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

Вот сколько раз мне говорили учи iptables чувак, но все руки никак не доходили. Полезная штука видать. Это типа файрвола? Можно простенький гайд, который помог бы мне быстро настроить этот iptables для KTorrent?

Либо отрубаешь дефолтный маршрут у eth и при отсутствии vpn живёшь без интернета

Тоже кстати годный совет, даже наверно еще лучше, чем то что я хотел (отдельно для торрента), ведь помимо торрента есть и закачки по http. Значит если оборвется VPN, то и обычная сеть не будет функционировать? А как тогда включить снова VPN? Ведь с неработающей сетью я не смогу подключиться к VPN? Придется обратно менять настройки туда-сюда?

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

Ведь с неработающей сетью я не смогу подключиться к VPN?

Без дефолтного маршрута != с неработающей сетью. ip ro add vpnip dev eth0 и вперёд

Можно простенький гайд, который помог бы мне быстро настроить этот iptables для KTorrent?

https://habrahabr.ru/post/82933/

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

либо поднимаешь network namespace с дефолтным муршрутом на vpn интерфейс, запускаешь торрент в этом неймспейсе и не страдаешь.

vvviperrr ★★★★★
()
Последнее исправление: vvviperrr (всего исправлений: 1)

Мимокродил: у transmission есть такая фича искаропки.

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

Это интерфейс, на котором ktorrent слушает входящие подключения. А сам трафик ходит по дефолтному маршруту.

Но справедливости ради, кто в теме и следит за разработкой KTorrent - они не хотят реализовать возможность пускать весь трафик через выбранный интерфейс? Это же такая логичная и нужная штука.

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

Трафик уходит по дефолтному маршруту, а не через интерфейс. Его нельзя пустить через интерфейс, а только по дефолтному маршруту.

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

Тогда о какий фиче говорит товарищ выше?

у transmission есть такая фича искаропки.

Какая фича? Остановка торрентов при падении заданного в опциях интерфейса (например, tap0)?

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

transmission не пользуюсь, так что хз

Deleted
()
Ответ на: комментарий от lineager

они не хотят реализовать возможность пускать весь трафик через выбранный интерфейс?

Это не доступно для юзерспейса, только в ядре. А ядро делать не будет, если у приложения нет прав. Предлагаешь давать root торрент-клиентам?

Это же такая логичная и нужная штука.

Настолько логичная и нужная штука, что ты первый мной встреченный, кому это надо.

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

bind-address-ipv4: String (default = «0.0.0.0») Where to listen for peer connections.
bind-address-ipv6: String (default = "::") Where to listen for peer connections.

Это на каком адресе ожидать входящие подключения. А трафик все равно пойдет по дефолтному маршруту.

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

lol, а с чего ты взял, что IP VPN пойдёт по дефолтному маршруту, а не через свой интерфейс? Ведь в таблице маршрутов у него есть своё правило.

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

lol, а с чего ты взял, что IP VPN пойдёт по дефолтному маршруту, а не через свой интерфейс?

Потому что пойдет именно по дефолтному маршруту, а не через VPN. Вне зависимости от того, какой именно локальный адрес используется для соединения.

Это можно обойти добавлением нескольких правил в ip rule и созданием доп. таблицы маршрутизации, но вряд ли впн провайдеры заморачиваются этим по дефолту.

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

Это можно обойти добавлением нескольких правил в ip rule и созданием доп. таблицы маршрутизации, но вряд ли впн провайдеры заморачиваются этим по дефолту.

Если vpn не спускает тебе маршруты, то это гавно, а не vpn. Я по умолчанию исхожу из того, что маршруты выставлены. И правила добавляются локально при соединении, а не на серваке.

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

Да фигу два ты угадал. Маршруты на мелкие сети (в таблице маршрутизации) имеют приоритет над дефолтным маршрутом. Это значит, что в дефолт попадет только то, что не будет обработано правилами. А если вообще весь трафик завернуть на VPN (настройки вменяемого клиента это легко позволяют сделать), то в дефолт вообще болт что попадет.

pahom
()
Ответ на: комментарий от UVV

Если vpn не спускает тебе маршруты, то это гавно, а не vpn. Я по умолчанию исхожу из того, что маршруты выставлены. И правила добавляются локально при соединении, а не на серваке.

Это не про то, спускаются маршруты или нет. Спускаемые маршруты добавляются в основную таблицу маршрутизации, и этого недостаточно, если по дефолту трафик пойдет мимо впн.

Если впн спускает дефолтный маршрут, то на время существования впн трафик пойдет через него. Но защиты от его пропажи нет. bind-address-ipv4 - это на каком адресе ожидать входящие подключения, а не какой адрес использовать для подключения к другим клиентам, судя по описанию этой опции.

Deleted
()
Ответ на: комментарий от pahom

Если весь трафик и так уходит через впн, то проблемы у ТСа нет, и этот топик вообще не нужен.

Маршруты на мелкие сети (в таблице маршрутизации) имеют приоритет над дефолтным маршрутом.

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

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

Если весь трафик и так уходит через впн, то проблемы у ТСа нет, и этот топик вообще не нужен.

Проблема как раз есть. Если vpn лёг, то дефолтный маршрут поменялся и всё пойдёт без vpn.

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

Если впн спускает дефолтный маршрут, то на время существования впн трафик пойдет через него. Но защиты от его пропажи нет. bind-address-ipv4 - это на каком адресе ожидать входящие подключения, а не какой адрес использовать для подключения к другим клиентам, судя по описанию этой опции.

Ты точно знаешь, что такое bind?

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

А ты точно знаешь, что такое listen и connect?

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

Ещё раз, мы исходим из того, что default gateway указывает на vpn.

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