Использовать OpenVPN соединение для выполнения одной программы

В Debian возможно ли запустить соединение OpenVPN таким образом, чтобы оно использовалось только для выполнения одной программы? Другими словами:

  • Другие программы используют сеть как обычно
  • Только одна программа, которая выполняется, запускает свои соединения через OpenVPN
  • Программа только устанавливает исходящие TCP соединения

Программа, для которой я хотел бы туннелировать все свои соединения через VPN, получает данные с сервера, доступного через эту VPN. В противном случае, VPN не нужен и его не нужно поддерживать для каких-либо других целей.

1 ответ

Насколько мне известно, сетевой стек Linux нельзя разделить, чтобы использовать VPN только для одной программы. OpenVPN устанавливает отдельный сетевой интерфейс (устройство Tun или Tap), затем вы можете добавить маршрут через этот интерфейс. Это может быть сделано только для определенного адреса или для диапазона адресов (даже для всего трафика вашей IP-сети).

Я нашел этот вопрос на суперпользователя: как использовать разные сетевые интерфейсы для разных процессов?

Но, может быть, вам не нужны эти более сложные решения - если вы хотите получить доступ к определенному сетевому адресу, который доступен только через VPN, вы также можете просто установить соединение OpenVPN в обычном режиме, а затем обеспечить сетевую маршрутизацию, которая просто запросы на этот адрес (а) направляются через VPN, а другие нет (это означает, что маршрут (ы) до 0.0.0.0 / :: или по умолчанию не обрабатываются VPN).

Если вы используете программное обеспечение с графической конфигурацией для VPN, такое как Network Manager, вы должны настроить его так, чтобы "Использовать это соединение только для ресурсов в своей сети" или подобное было активным.

Если у вас есть набор конфигурационных скриптов, убедитесь, что некоторые route add default ... не выполняется для маршрутизации по умолчанию через VPN-устройство или шлюз.

Другие вопросы по тегам