Я не загружаю ничего противозаконного с Vuze (клиент bittorrent) и не нуждаюсь в том, чтобы использовать мой VPN (который настроен на моем частном VPS, используя OpenVPN на сервере и клиенте). Как заставить vuze не использовать мой VPN? У меня только 500 ГБ пропускной способности от моего хоста в месяц.
2 ответа
Я предполагаю, что вы используете Linux, где это можно сделать. Вам нужно будет:
- Создайте новый виртуальный интерфейс Ethernet (VIF);
- настройка маршрутизации на основе политик;
- Загрузите небольшое приложение, которое заставляет vuze привязываться к определенному IP-адресу.
Для простоты предположим, что вы находитесь в локальной сети 192.168.1.0/24, ваш маршрутизатор - 192.168.1.1, и вам нужен новый адрес 192.168.1.247.
Вы можете продолжить так:
# ip link add link eth0 name eth0.1 type vlan id 1
# ip addr add 192.168.1.247/24 dev eth0.1
# ip link set dev eth0.1 up
Это создает виртуальный интерфейс с именем eth0.1 с IP-адресом (192.168.1.247), который вы должны выбрать среди тех, которые разрешены вашей локальной сетью, и подходящую маску.
Теперь мы настроили политику маршрутизации: давайте создадим еще одну таблицу маршрутизации,
# echo 200 NAME >> /etc/iproute2/rt_tables
где вы захотите выбрать имя, значимое для вас, а не NAME. Затем мы настраиваем его маршрутизацию,
# ip route add 192.168.1.0/24 dev eth0.1 src 192.168.1.247 table NAME
Затем мы добавляем шлюз по умолчанию,
# ip route add default via 192.168.1.1 table <NAME>
Осторожно, здесь 192.168.1.1 - это адрес вашего роутера, когда вы не подключены к VPN. Наконец, мы вводим правило:
# ip rule add from 192.168.1.247 table NAME
который указывает, когда применять новую таблицу маршрутизации. Мы сделали с маршрутизацией.
Теперь вы скачиваете программу bind.c с этого сайта, компилируете и устанавливаете ее следующим образом:
# gcc -nostartfiles -fpic -shared bind.c -o bind.so -ldl -D_GNU_SOURCE
# strip bind.so
# cp -i bind.so /usr/lib/
и теперь мы готовы: эта команда
# BIND_ADDR="192.168.1.247" LD_PRELOAD=/usr/lib/bind.so vuze
позволит вам связать vuze с указанным IP-адресом, который маршрутизируется через недавно установленную таблицу маршрутизации, без какой-либо ссылки на (и, следовательно, вне) VPN.
Есть старый инструмент ForceBindIP для Windows, который, вероятно, может делать то, что вам нужно.
По этому адресу он еще жив: http://old.r1ch.net/stuff/forcebindip/
Это оболочка консольного приложения, которая выполняет некоторые хитрости в сети, чтобы гарантировать, что процесс может использовать только трафик от одного интерфейса.
Обычно вы хотите использовать это, чтобы заставить ваш торрент-клиент (или что-то еще) строго использовать вашу VPN и останавливать весь трафик, если VPN не работает. Я не понимаю, почему вы не можете сделать обратное - привязать ваше приложение к основному сетевому адаптеру (вместо адаптера VPN). Тогда весь трафик должен проходить через ваше не-VPN-соединение.
Запустите команду примерно так:
forcebindip.exe 1.2.3.4 "C:\Program Files\Vuze\Azureus.exe"
Где 1.2.3.4 - ваш IPv4-адрес в вашей сети. Вы можете найти это, набрав ipconfig /all из командной строки. Или, если вы ненадолго отключите свой VPN, просто введите "my ip" в Google, и он сообщит вам вверху.