Форум русскоязычного сообщества Ubuntu


Автор Тема: Возможно ли и как лучше реализовать работу одного приложения в обход VPN?  (Прочитано 791 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlexDem

  • Автор темы
  • Активист
  • *
  • Сообщений: 467
    • Просмотр профиля
Ситуация: На десктопе стоит OpenVPN и работает он по умолчанию. Т.е. запускается автоматом, работает постоянно и весь трафик идет через него. Сервер во Франции.
Проблема: некоторые программы работают быстрее если работают напрямую, минуя VPN, например Transmission, когда скачивает что-то. В этом есть объективная причина, если скачка происходит с российских торрнетов, то трафик не идет через Европу, а идет напрямую.
Задача: можно ли как то пустить трафик отдельного приложения(Transmission к примеру) минуя OpenVPN, т.е. очевидно не через tun0, а через enp3s0?

~$ ifconfig
anbox0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.250.1  netmask 255.255.255.0  broadcast 0.0.0.0
        inet6 fe80::346e:a8ff:fe3a:7bb4  prefixlen 64  scopeid 0x20<link>
        ether 36:6e:a8:3a:7b:b4  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 431  bytes 67648 (67.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.5  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::3b3f:79a7:6fa1:3106  prefixlen 64  scopeid 0x20<link>
        ether 54:a0:50:50:99:f6  txqueuelen 1000  (Ethernet)
        RX packets 23469964  bytes 28512079645 (28.5 GB)
        RX errors 0  dropped 67  overruns 0  frame 0
        TX packets 26204090  bytes 24465483264 (24.4 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2557  bytes 226377 (226.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2557  bytes 226377 (226.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.100.0.6  netmask 255.255.255.255  destination 10.100.0.5
        inet6 fe80::4761:642a:4512:66c5  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 87  bytes 27671 (27.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 436  bytes 184618 (184.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1175
    • Просмотр профиля
m.habr.com/ru/post/358126/
Рекомендую Shadowsocks
Можно настроить для всей системы и исключать по одному приложения / сайты в браузере.
Debian Testing (Gnome), Ubuntu Server 18.04

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12090
  • Xubuntu 20.04
    • Просмотр профиля
    • Github
А может роутинг правильно настроить?

Вы же через VPN ходите на конкретные ресурсы - вот эти ресурсы (по IP) и надо роутить в VPN, а дефолтовый гейт должен смотреть в интернет.

У нас на работе админы конфиги готовые делают для VPN на работу, так там все четко у них прописано: только IP наших внутренних ресурсов ходят через VPN, а все остальное идет через мой домашний интернет.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн AlexDem

  • Автор темы
  • Активист
  • *
  • Сообщений: 467
    • Просмотр профиля
А может роутинг правильно настроить?

Вы же через VPN ходите на конкретные ресурсы - вот эти ресурсы (по IP) и надо роутить в VPN, а дефолтовый гейт должен смотреть в интернет.

У нас на работе админы конфиги готовые делают для VPN на работу, так там все четко у них прописано: только IP наших внутренних ресурсов ходят через VPN, а все остальное идет через мой домашний интернет.
Если бы все было так просто. Роутинг тут не поможет, потому что Transmission соединяется не с конкретным ресурсом, а с сотней разных ip, посмотри что такое связь P2P. Тут просто нечего настраивать, нет маршрутов.
Насчет внутренних ресурсов тоже не прокатит, VPN используется в том числе и для обхода блокировок, для повышения приватности и пр. Т.е. сама суть работы VPN в том, что весь трафик идет на европейский сервер, а уж оттуда туннелируется в десктоп. Но для отдельного приложения надо этого избежать.

Оффлайн valrust

  • Активист
  • *
  • Сообщений: 285
    • Просмотр профиля
В Linux можно создавать несколько отдельных сетевых пространств (network namespaces). В каждом таком пространстве можно определять свои собственные: маршруты, правилами сетевого экрана и сетевыми устройствами.

По умолчанию все процессы запускаются в сетевом пространстве - default network namespaces. Можно запустить приложение в своем network namespaces. Его дочерние процессы будут наследовать это сетевое пространство.

Управлять такими пространствами и запускать в них процессы можно командой: ip netns

Оффлайн articc

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
А можно маркировать трафик с исходящего порта (трансмисии) и по маркеру отправлять в нужный гейт.
Что-то типа
ip rule add fwmark 2 table 100
ip route add default via ваш_шлюз table 100
iptables -I OUTPUT 1 -p udp --sport 51413 (порт из настроек программы) -t mangle -j MARK --set-mark 2
iptables -I OUTPUT 1 -p tcp --sport 51413 -t mangle -j MARK --set-mark 2

Оффлайн AlexDem

  • Автор темы
  • Активист
  • *
  • Сообщений: 467
    • Просмотр профиля
А можно маркировать трафик с исходящего порта (трансмисии) и по маркеру отправлять в нужный гейт.
Надо будет попробовать.
« Последнее редактирование: 20 Январь 2021, 10:52:30 от AlexDem »

 

Страница сгенерирована за 0.076 секунд. Запросов: 26.