为什么无论请求的域名是什么,我都会在选择的任何接口作为代理上运行网站?

为什么无论请求的域名是什么,我都会在选择的任何接口作为代理上运行网站?
Linux Kernel: 4.9.163-lxpup-32-pae (i686)
Kernel Version: #1 SMP Thu Mar 14 15:41:19 GMT 2019
Build GCC: 8.3.0
Distro: BionicPup32 19.03
busybox: 1.30.1
dhcpcd: 6.7.1
Firewall: Off (ip_tables not active)
Network Interface:  virtualLAN

modprobe 虚拟接口名为virtualLAN(192.168.1.100)virtualWAN(192.168.2.100)。resolv.conf 或 host.conf 中没有任何内容;空白。全部,并且唯一的 DNS 配置位于 dnsmasq.d 目录中的 dnsmasq 和 dnsmasq2.conf 中。

dnsmasq.conf
interface=virtualLAN
listen-address=192.168.1.100
address=/lanwebsite/192.168.1.100

dnsmasq2.conf is in /etc/dnsmasq.d
interface=virtualWAN
listen-address=192.168.2.100
address=/wanwebsite/192.168.2.100

在两个配置文件中,#bind-interfaces 和 #localise-queries 均被注释掉,因此处于关闭状态。LAN 和 WAN 两个接口之间没有互联网连接共享或转发规则。

根据 puppyLinux ipInfo,virtualLAN 是活动接口,Dnsmasq 守护进程正在运行,并且没有防火墙。

2 个网站正在运行。192.168.1.100(虚拟 LAN 接口)上的 Lanwebsite 和 192.168.2.100(虚拟 WAN 接口)上的 wanwebsite

现在,浏览器配置为通过 WAN 代理,192.168.2.100期望请求

“局域网网站”

通过在当前配置的浏览器中输入域名,应该可以正确获取 lansite。但我得到的是

“wanwebsite”

IP 地址 (192.168.2.100)。但如果我不使用代理或使用代理重复上述操作virtualLAN,则会得到正确的 IP 地址。

如果我通过 LAN 代理并请求“wanwebsite”,则 V/versa 为真。我获得了 LAN 网站。

我让网站在选择的任何代理接口上运行。如果代理是 .2.100,则请求

局域网网站

给出 IP

wan网站

(.2.100),如果代理是 1.100,则请求

wan网站

给出 IP

局域网网站

(1.100)

但如果我要求

gI*7bb3rishSit3

例如,我正确地得到了一个错误。无论使用代理还是不使用代理,无论使用哪种代理。

*疑似问题:*绑定接口/本地化 DNS 查询,*DNS 缓存(尝试在重新加载时清除 dnsmasq 缓存)浏览器缓存。全部试过了,结果相同。或者虚拟接口的问题不完全是接口本身。虚拟接口与 tun/tap 有什么关系?我打算同时尝试一下。同时,帮忙吗?

答案1

这是因为主机通过接口路由到所有接口lo并监听所有接口。因此,当我在同一台主机上运行多个 DNS 服务器,并且请求通过接口路由时lo,端口 53 监听器会做出响应。

  • 解决方案: 使用 ip net 命名空间将接口分成不同的域,veth将它们合并在一起,然后在不同的命名空间中运行不同的 DNSMasq 实例。就这样。

相关内容