dnsmasq & systemd-resolve

Ubuntu 20.04。试图继续搭建一个 WireGuard Hub,但是这次考虑到 DNS 转发的性能问题,决定在Hub上搭一个 dnsmasq ,这样 DNS 解析结果可以被缓存下来,能够提升访问性能。 不记得从哪个版本起,Ubuntu 不再默认安装 dnsmasq ,而靠 systemd-resolve 协调管理本机的 DNS 解析。我只用 Ubuntu 当 Server,所以一般直接读 VPS 或者云服务商的 DNS 列表,干掉 systemd-resolve,安装 dnsmasq 接管解析。 但是这次我不想管系统的设置,只希望 dnsmasq 纯转发 WireGuard 接口的 DNS 请求。于是遇到了一个奇怪的问题,当我启动 dnsmasq 时,本机 DNS 解析挂了。dnsmasq 配置如下 仔细观察,结果发现,默认的时候 resolve.conf 里 nameserver=127.0.0.53,而dnsmasq启动后变成了 127.0.0.1。但是我 dnsmasq 根本没有接管 127.0.0.1。 排查了 systemd-resolve 的设置,没有相关的选项。 回过头来看resolvconf,结果在 /etc/resolvconf/update.d/dnsmasq 里看到了更新 resolv.conf … Continue reading “dnsmasq & systemd-resolve”

EdgeRouter Policy Based Routing Using DNSMASQ IPSET

之前用SNIProxy按域名区分流量,着实麻烦。尤其是后期发现路由表莫名其妙出问题。 EdgeRouter的Policy Based Routing(PBR)使用的是自带配置语法的firewall modify功能。 官方有两篇教程: EdgeRouter – Policy-based routing for destination port EdgeRouter – Policy-based routing (source address based) 第二篇文章顺带提了network-group。之前在配置VPN时,使用过network-group,还比较过使用firewall modify + network-group 与配置一堆interface-route的区别。 而,这里的network-group的实现,使用了netfilter的ipset。Man pages可以看这里,命令在edgerouter上也附带了。 dnsmasq支持 ‘–ipset‘ 参数,把对配置域名解析的IP存入到指定的ipset。具体细节可以看dnsmasq的文档。 dnsmasq配置的语法比较简单。

domain 部分参考 address 的语法。例如:

配置好所有自己需要的域名,重启dnsmasq即可。 ipset本身支持timeout,但是edge os的network-group不支持,所以在配置dnsmasq之前,最好创建一个新的network-group。 假定新建的ipset名叫 MY_SET,edge router的主要相关配置如下:

其他诸如配置 static table, interface firewall 可以参考最前边的文档。 Incoming search terms:dnsmasq ipset edgeosedgemax … Continue reading “EdgeRouter Policy Based Routing Using DNSMASQ IPSET”

DNSMASQ Send Different DHCP Options by Hosts

I choose DNSMASQ as DHCP server, and I want to push different ‘router’ setting to clients. DNSMASQ supports tagging on hosts/ip ranges/subnets, I tag my mac address (with static ip-mac binding) as ‘prx’ and set ‘option:router’ to 192.168.1.20 if tag matches ‘prx’. Here is my configuration:

Incoming search terms:dnsmasq asus rt-ac68uLink to this post!

dnsmasq 劫持所有域名

dns劫持以前都是黑名单模式 有需要拦截的加server劫持整个域名解析

或者单个address劫持单记录

还可以通配模式

白名单模式先劫持所有域名

开放解析的时候只需要加server指向正常的DNS服务器就行

Incoming search terms:dnsmasq 劫持dnsmasq 白名单anythingyxccompany7w6dnsmasq jQuery 劫持dnsmasq 一个域名两个ipdnsmasq 域名白名单dnsmasq 黑白名单dnsmasq劫持ipdnsmasq域名劫持glad9uanearby8z8reviewav2服务器劫持所有域名Link to this post!

Hijack DnsPod HttpDNS

劫持DNS是个很简单的工作,家用路由器基本都自带dnsmasq,直接加解析就行。 之前某次尝试劫持某视频App的广告接口解析到一个空的本地服务器上,发现该App使用了DnsPod的HttpDNS服务,所以传统的DNS劫持方案不好用。而EdgeRouter的DPI功能也没有对外开放墙一般的高级接口,所以这次用NAT来实现。 Incoming search terms:awaycx8characteristic4qqdnspod httpdnsdroveq2jguardp5yhomebhrimageemaimportance8eqinstrumentdbkmajorglcolderencsuggesthw8Surge使用dnspod httpdnstillvj1totalh7xzebraolbLink to this post!