使用针对该主题的非常翔实和详细的答案,在 Linux 中通过特定接口路由某个进程的流量,我能够选择性地选择是否通过第三方 VPN 运行进程。我唯一的问题是,所有进程仍将使用第三方 VPN 的 DNS 服务器,因为在建立 VPN 连接时会更新 /etc/resolv.conf。我如何让通过 VPN 网关定向的流量使用其 DNS 服务器,让通过我的 LAN 网关定向的流量使用它或 Google 的名称服务器作为 DNS 服务器?
答案1
只要你使用单一程序,就无法实现这一点。
但是,您可以运行两个单独的 DNS 程序实例,例如dnsmasq
,为每个程序指定不同的监听接口。例如,n /etc/dnsmasq.conf1
,
interface=eth0
并在 /etc/dnsmasq2.conf
interface=tun0
确保dnsmasq
仅在激活 VPN 时才启动第二份副本。