Dnsmasq+ipset+iptables基于域名的流量管理

iptables只能根据ip地址进行转发,不能识别域名,而dnsmasq-full不仅可以实现域名-IP的映射,还可以把这个映射关系存储再ipset中,所以使用dnsmasq+ipset就可以实现iptables对域名的转发,可以实现很多功能,比如:禁止浏览某些网站,对国内和国外的流量进行分流等。本文主要介绍了dnsmasq+ipset+iptables的配置
摘要由CSDN通过智能技术生成

iptables只能根据ip地址进行转发,不能识别域名,而dnsmasq-full不仅可以实现域名-IP的映射,还可以把这个映射关系存储在ipset中,所以使用dnsmasq+ipset就可以实现iptables对域名的转发,可以实现很多功能,比如:

禁止浏览某些网站,如taobao.com

对国内和国外的流量进行不同路径的转发或者代理,可以应用在ss或者SSH这样的代理中,加速某些网站访问速度。

原理很简单,就是Dnsmasq接收到一个DNS查询请求,首先匹配配置文件中的域名列表,如果匹配成功某域名,就把IP的查询结果存储在一个或几个ipset集合中,然后使用iptables对这个ipset中的全部ip进行匹配并做相应的处理,如DROP或者REDIRECT。

下面来看一下Dnsmasq+ipset的工作过程

首先Ubuntu16.04自带dnsmasq-full,Openwrt 15.05等较新的版本的dnsmasq也支持ipset,并将本机的dns服务器设置为dnsmasq(/etc/resolv.conf中将域名服务器设置为127.0.0.1遍指向了本地的dnsmasq服务)。

其中ipset默认没有被安装,Ubuntu和Openwrt均可使用自带的软件包安装源进行安装,具体步骤这里就不细说了,就像安装普通的包一样。

我们可以通过dnsmasq -v来查看当前主机的dnsmasq是否添加了ipset支持

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值