限制用户只能访问特定的域名,域名白名单

目前最好的方案:

使用路由的 DNSmasq 解析设置白名单

此方案对安卓无效(安卓设置了dns,在解析失败后估计还会尝试内部默认dns)

此方案需要在pc端设置dns,并且使用非管理员帐号登录(非管理员帐号没有权限修改网络连接配置)

(1)DNSmasq 是很多智能路由器自带的dns服务器,DNSmasq缓存dns查询结果,并返回向上级dns请求的结果给局域网用户.

(2)小米路由器修改DNSmasq配置需要root权限

(3)我的小米r2d 的配置路径在 /var/etc/dnsmasq.conf

修改配置后需要执行 /etc/init.d/dnsmasq restart 重启服务

(4)相关配置说明

dns分流

server=/cn/114.114.114.114 指定*.cn域名使用114dns解析

server=/taobao.com/114.114.114.114 指定*.taobao.com使用114dns解析

address=/ad.youku.com/127.0.0.1 解析ad.youku.com到127(相当于hosts)

address=/.weibo.com``/10.1.1.222 解析*.weibo.com到10.

address=/``#/10.1.1.1 劫持所有域名(解析所有域名)到10.1.1.1

(5)具体方案

address=/``#/10.1.1.1

server=/taobao.com/114.114.114.114 设置白名单域名到本地dns服务器

查看小米路由器启动命令

/etc/init.d/dnsmasq

找到其中一个配置目录

/etc/dnsmasq.d/

在这个目录随便新建一个文件(例如 aaa.conf)

写入

address=/#/10.1.1.1

server=/taobao.com/114.114.114.114 

保存

运行 /etc/init.d/dnsmasq restart 重启dns

本地运行 nslookup taobao.com测试

尝试过的方案(缺点比较多):

1.使用windows自带的ip防火墙

windows 限制用户只能访问特定的域名-CSDN博客

缺点:

(1).如果域名指向的ip变化 需要手动更新

(2).不支持通配符(需要一个一个的设置)

2.使用智能路由器自带的iptables屏蔽dns查询

iptables 实现域名过滤_iptables 域名-CSDN博客

上面的方案要改一下:

先放过白名单域名,然后添加一条屏蔽所有的dns查询.

缺点:

(1)测试对某个域名无效(设置白名单后仍然屏蔽 不知道原因)

(2)屏蔽后的域名相当于服务器堵塞,当某个白名单域名(例如 www.baidu.com)页面中有 非白名单域名的资源(例如 www.baidu.com 引用了 www.hao123.com图片),网页会因为dns查询一直没有返回,卡死很久

相关推荐
逸丶时光8 个月前
微信小程序真机无法下载文件
微信小程序·防盗链·域名白名单·uni下载·downloadfile