班门弄斧分享下几天下来的折腾成果,欢迎提出改进意见:
routeros 只支持设置 53 端口 DNS 服务器,不能直接添加 mosdns 作为上游,借助 nat 规则变通一下:
[admin@MikroTik] /ip/firewall/nat> print
Flags: X - disabled, I - invalid; D - dynamic
0 chain=srcnat action=masquerade src-address-list=lan out-interface=pppoe-out1 log=no log-prefix=""
1 chain=srcnat action=masquerade src-address-list=wireguard out-interface=pppoe-out1 log=no log-prefix=""
2 chain=dstnat action=dst-nat to-addresses=10.89.2.230 to-ports=5335 protocol=udp src-address=!10.89.2.230 dst-port=53 log=yes log-prefix="mosdns-query:"
3 chain=dstnat action=dst-nat to-addresses=10.89.2.230 to-ports=5335 protocol=tcp src-address=!10.89.2.230 dst-port=53 log=yes log-prefix="mosdns-query:"
4 chain=srcnat action=masquerade protocol=udp src-address=10.89.2.0/24 dst-address=10.89.2.230 dst-port=5335 log=no log-prefix="mosdns-reply:"
5 chain=srcnat action=masquerade protocol=tcp src-address=10.89.2.0/24 dst-address=10.89.2.230 dst-port=5335 log=no log-prefix="mosdns-reply:"
6 chain=srcnat action=masquerade protocol=udp src-address=192.168.20.0/24 dst-address=10.89.2.230 dst-port=5335 log=yes log-prefix="mosdns-reply:"
7 chain=srcnat action=masquerade protocol=tcp src-address=192.168.20.0/24 dst-address=10.89.2.230 dst-port=5335 log=yes log-prefix="mosdns-reply:"
上述规则将来自 lan ( 10.89.2.0/24 ) 和 wireguard ( 192.168.20.0/24 )的 DNS 查询全部劫持到了 10.89.2.230:5335 ,即 mosdns 实际地址和监听端口,参考自 Redirect outgoing DNS requets to internal DNS server 。
目前已按照该思路配置完成,运行起来倒是没问题,不过在性能和安全方面有无明显缺陷和提升空间?恳请 v 友指点一二~
1
hefish 170 天前
真复杂,我就本机挂 clashverge ,感觉速度还挺快的。
|
2
Naples 170 天前 4
N1 上部署 bird2 ,对 routeros 通过 bgp 或 ospf 宣告 CN 或者非 CN list 路由,这样就无需进行 mangle 、routing-mark 等操作了
|
3
xiaofami OP @Naples 按照指点找到一篇教程: [使用 RouterOS ,OSPF 和树莓派为国内外 IP 智能分流]( https://idndx.com/use-routeros-ospf-and-raspberry-pi-to-create-split-routing-for-different-ip-ranges/) ,准备试一试
|
4
laincat 170 天前
挺好的分享,可以参考
|
5
swordsmile 169 天前
@hefish clash verge 停止更新了吧
|
6
keyfunc 169 天前 1
我目前用这个方案,mangle fakeip 的网段到 clash 所在主机,clash 开 tun 。
mosdns 设置黑名单域名转发的 clash 的 dns 获取 fakeip ,也挺好用的。 |
7
bigfei 169 天前 via Android
routeros 自带 docker ,以上可以全部运行在一台 ros 上,省资源,降本增效
|
8
BanShe 169 天前
记录一下
|
9
hefish 169 天前
@swordsmile 也还能用的,没说不让用啊。
|
10
Richared 169 天前
直接 clash fakeip 。mosdns proxy 指定到 clash 的 dns 返回 fakeip 地址,routeros 只转发 fakeip 网段就行了
|
11
littlewing 169 天前
多谢,我一直想做到在 openclash 挂了之后,国内流量仍然正常的方案,这个看来可行
|