1
chinni 2023-02-15 10:15:22 +08:00 via Android
1.用 forward 表 2.用 sni 匹配比 ip 颗粒度更加细
|
2
dsgdsfh 2023-02-15 10:58:39 +08:00
我是树莓派搭建 DNS ,然后 DHCP 设置树莓派 ip ,直接 DNS 写规则屏蔽
|
3
sylviaweissenba 2023-02-15 11:01:00 +08:00
vi /etc/hosts
|
4
ouqihang 2023-02-15 11:01:01 +08:00 via Android 1
官方提供了好几种方法,包括防火墙,代理服务器,layer7 都有。
https://wiki.mikrotik.com/wiki/Manual:IP/Proxy https://wiki.mikrotik.com/wiki/Manual:IP/Firewall/L7 |
5
ouqihang 2023-02-15 11:01:57 +08:00 via Android
用 input 应该不对,input 是从外网进内网。
|
6
ych8398527 2023-02-15 11:15:45 +08:00
ip->dns->static 把域名直接解析到 127.0.0.1
|
10
mac100 2023-02-15 11:43:06 +08:00
添加一个旁路由吧。ros 管 IP 分流 OP 管域名分流 。完美
|
11
Ruslan 2023-02-15 13:37:20 +08:00
配置 DNS 劫持,把 53 端口劫持到你自己内网的 DNS 服务器,在自己 DNS 服务器把域名解析到 127.0.0.1
|
12
wwbfred 2023-02-15 14:33:19 +08:00 via iPhone
家用需求该是上 OP 吧,ROS 不是这个场景的,有些家庭基础功能到 ROS 里变成了折腾功能。OP 里 dnsmasq 直接写 0.0.0.0 就行了。
|
13
qfdk 2023-02-15 14:55:52 +08:00 via iPhone
建议来个 aurgard home 然后 ip 设置成 3.7.2.1 想怎么玩儿就咋玩儿
|
14
datocp 2023-02-15 15:09:09 +08:00
这种对于 openwrt 就简单了
直接 dnsmasq address=/qq.com/127.0.01 #这个地址还是是比 0.0.0.0 更可靠,消亡时间更快。之前是解决 office2016 升级用。 其它的就是对电视进行分析它连哪些外部 ip 域名,然后用 nslookup 之类的取得 ip 。以目前 CDN 的存在这种方式误伤率相当高的。又是 dnsmasq 更灵活调用 ipset ,ipset=/qq.com/BdstIP 然后 iptables -p tcp -s 电视 ip -d 升级 ip -j -j REJECT --reject-with tcp-reset iptables -s 电视 ip -d 升级 ip-j REJECT --reject-with icmp-net-unreachable 哈哈,ros 真看不上。哪有原生 linux 好用。随便搞个优酷 yk1 也能跑满 100mbps 。没有 1000mbps 带宽,不知道 erx 能带多大的带宽。 |
15
datocp 2023-02-15 15:10:07 +08:00
iptables -p tcp -s 电视 ip -d 升级 ip -j REJECT --reject-with tcp-reset
iptables -s 电视 ip -d 升级 ip -j REJECT --reject-with icmp-net-unreachable |
18
3dxfood 2023-02-15 16:57:39 +08:00
可以用 ros 做 dns server ,dns static 里写黑洞 A 记录;或者 ros 里 DNS server 写旁路 op 地址,用 op 来做。
|
19
mrzx 2023-02-15 17:13:58 +08:00
@3dxfood 谢谢,大致理解了。
routeros 大概通过 3 种方式来解决这个 UP 的需求。 1.采用 DNS 劫持的方式,将不想访问的站点直接解析成错误的 IP ,让广告失效。DNS 劫持的工作可以由 routeros 的 dns 功能做,或者 openwrt 固件的路由器来做? 2.通过 layer7 识别方式来写,感觉这个难度最高,怎么写才能屏蔽广告,如果有对应的例子就能理解了,看了一下楼上提供的官网例子,没看懂。。。 3.通过你们说的 sni,我搜了半天才了解 sni 是什么,“在 HTTPS 中,先有 TLS 握手,然后才能开始 HTTP 对话。如果没有 SNI ,客户端将无法向服务器指示正在与之通信的主机名。” 然后利用 routeros 强大的 sni 匹配功能,将主机名匹配起来,在决定 drop 和放行. |
20
mrzx 2023-02-15 17:38:56 +08:00
layer7 语法搜了好久,大概理解了。
大致是先用 wireshark 抓包,抓取数据流用的 data 部分,比如 V2EX 在数据流的十六进制就是 76 32 65 78 ,在通过在 routeros 里新建 layer7 匹配策略,在 Regex 语句匹配这些十六进制,可能正则表达式跟 iptables 之类的稍有些区别。。 比如十六进制 76 在 routeros 下就写成\76 ^代表数据包的开头 $代表数据包的结尾 匹配 V2EX 的,layer7 语法应该写成“^\76.+ \78$” 哪天在家里屏蔽老妈上拼多多试试。。。。 |
21
mrzx 2023-02-15 17:41:05 +08:00
还有一点比较好奇的是,在 UP 主的 android 电视机上,用什么软件抓包? wireshark 肯定是没有的.tcpdump?那个需要 root 权限的。。。
|
24
linuxgo OP @3dxfood #18 我现在就是 ros 做 dns ,然后把国外的分流给 op 解析,我也看了 ros 的 dns static ,没看到如何添加 address-list ,一条条添加有点麻烦,因为总共有几十条地址要屏蔽
|
25
linuxgo OP 以前用 op 的 pw 的屏蔽网站功能很管用,但是 pw 的机场自动切换不好用,现在用的 openclash 又没地方加黑名单
|
28
linuxgo OP @3dxfood #26 你说的有道理,还是要用脚本更方便。我现在的 ip 分流是把 chinaip 做成一个 addresslist ,在 mangle 里把除了这些 ip 以外的 ip 都转发到 op 去解析和代理。
|
29
neroxps 2023-02-16 08:32:10 +08:00 via iPhone
ros 能直接把某个域名加到 address-list 他会自动解析 ip 。然后 forward 表 block 这个 address_list 即可。设置起来比 OpenWrt 更简单。
@datocp 虽然我也不喜欢 ros (概念落后)但网络特别是防火墙配置上我感觉他比 OpenWrt 清晰,而且人家有手机 app 。OpenWrt 的 web ui 一言难尽。 |
31
neroxps 2023-02-16 08:40:04 +08:00 via iPhone
@3dxfood
我的方案。 结合 op 做的。 ros 上游 dns 是 op 。脚本检查 op 的 dns 服务器工作不正常(例如进程 kill 掉了)那么就切回运营商 dns 。 自己写的脚本: https://github.com/neroxps/RouterOS-Script/blob/master/Clash_dns_check.rsc |
32
neroxps 2023-02-16 08:42:41 +08:00 via iPhone
@linuxgo 有一个专门针对 ros 读取 clash 规则的 dns 工具。能通过 ros api 写到 address_list 里面。基于 coredns 做的插件。但没文档,go 写要编译。
配置得看代码写了🤣 作者就是写着玩的,文档没写。 https://github.com/charleyzhu/coredns_wormhole_plugin |
34
linuxgo OP 我现在就是把要屏蔽的域名添加到 blockweb address list 里,然后在 filter 添加
chain=forward action=reject reject-with=icmp-host-unreachable dst-address-list=blockweb 但实际上完全没作用 |
35
neroxps 2023-02-16 13:35:11 +08:00
@linuxgo #33 要确保客户机拿到的 IP 和你规则配置的 IP 一致。另外你 forward 表的规则顺序得搞对,不然前面有个 accept 下面再搞什么 reject 都没用。
|
36
linuxgo OP 顺便问下 ros 里 mangle,NAT 和 filter 的规则执行是什么样一个顺序?哪个先哪个后呀
|
37
3dxfood 2023-02-17 20:44:14 +08:00
|
38
winbox 2023-02-21 03:29:57 +08:00
直接给长虹域名指定一个错误的 IP 地址
/ip/dns/static/add type=FWD match-subdomain=yes address-list=VPN forward-to=1.1.1.1 name=openwrt.org |
41
gam2046 2023-03-21 10:54:48 +08:00
ros 是否有办法将部分域名的 IPv6 给禁止掉。因为我发现国内有些厂商的域名,有 IPv6 的解析结果,但是却访问不了。导致浏览器需要挂起很久,才回落到 IPv4 访问。
|