Используя очень информативный и подробный ответ на эту тему, « Направляя трафик через определенный интерфейс для процесса в Linux», я смог выборочно выбрать, запускать ли процесс через стороннюю VPN или нет. Единственная проблема, с которой я столкнулся, заключается в том, что все процессы будут по-прежнему использовать DNS-серверы VPN сторонних производителей, поскольку /etc/resolv.conf обновляется при установке VPN-подключения. Как получить трафик, направленный через шлюз VPN, с использованием его DNS-сервера, а трафик, направленный через шлюз моей локальной сети, использовать его или серверы имен Google в качестве DNS-сервера?

1 ответ1

0

Пока вы используете одну программу, не будет никакого способа достичь этого.

Однако вы можете запустить два отдельных экземпляра программы DNS, скажем, dnsmasq , указав для каждой программы другой интерфейс прослушивания. Например, n /etc/dnsmasq.conf1 ,

interface=eth0

и в /etc/dnsmasq2.conf

interface=tun0

Убедитесь, что вы запускаете вторую копию dnsmasq только при активации VPN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .