Используя очень информативный и подробный ответ на эту тему, « Направляя трафик через определенный интерфейс для процесса в Linux», я смог выборочно выбрать, запускать ли процесс через стороннюю VPN или нет. Единственная проблема, с которой я столкнулся, заключается в том, что все процессы будут по-прежнему использовать DNS-серверы VPN сторонних производителей, поскольку /etc/resolv.conf обновляется при установке VPN-подключения. Как получить трафик, направленный через шлюз VPN, с использованием его DNS-сервера, а трафик, направленный через шлюз моей локальной сети, использовать его или серверы имен Google в качестве DNS-сервера?
1 ответ
0
Пока вы используете одну программу, не будет никакого способа достичь этого.
Однако вы можете запустить два отдельных экземпляра программы DNS, скажем, dnsmasq
, указав для каждой программы другой интерфейс прослушивания. Например, n /etc/dnsmasq.conf1
,
interface=eth0
и в /etc/dnsmasq2.conf
interface=tun0
Убедитесь, что вы запускаете вторую копию dnsmasq
только при активации VPN.