iptables只能根据ip地址进行转发,不能识别域名,而dnsmasq-full不仅可以实现域名-IP的映射,还可以把这个映射关系存储在ipset中,所以使用dnsmasq+ipset就可以实现iptables对域名的转发,可以实现很多功能
原理很简单,就是Dnsmasq接收到一个DNS查询请求,首先匹配配置文件中的域名列表,如果匹配成功某域名,就把IP的查询结果存储在一个或几个ipset集合中,然后使用iptables对这个ipset中的全部ip进行匹配并做相应的处理,如DROP或者REDIRECT或者设置mark
Dnsmasq+ipset+iptables基于域名的流量管理:
https://blog.youkuaiyun.com/lvshaorong/article/details/52981169
iptables -t mangle -I PREROUTING -m set --match-set wechat dst -j DROP
iptables -t mangle -D PREROUTING -m set --match-set wechat dst -j DROP
iptables -t mangle -I PREROUTING -m set --match-set video dst -j DROP
iptables -t mangle -D PREROUTING -m set --match-set video dst -j DROP
zipset/Makefile
include $(TOPDIR)/rules.mk
PKG_NAME:=zipset
PKG_VERSION:=1.0
PKG_RELEASE:=2019.07.31
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=ZIHOME
CATEGORY:=ZIHOME
DEPENDS:=+dnsm

本文介绍如何使用dnsmasq和ipset配合iptables实现基于域名的流量管理和转发,通过将域名映射到IP并存储在ipset中,iptables能够对特定域名的流量进行拦截或重定向。
最低0.47元/天 解锁文章
1095

被折叠的 条评论
为什么被折叠?



