pmkol / easymosdns Goto Github PK
View Code? Open in Web Editor NEW简化Mosdns基本功能使用的辅助脚本,仅需几分钟即可搭建一台支持ECS的无污染DNS服务器
简化Mosdns基本功能使用的辅助脚本,仅需几分钟即可搭建一台支持ECS的无污染DNS服务器
include.conf内redis dir我填写格式为redis_dir="redis://192.168.20.86:6379/12346" redis://ip:端口/密码
但我发现密码栏任意填写,shell都提示running和enable,可以加入连接验证嘛
我自己的配置里用了 gfw_ip_list.txt,看日志 edge.microsoft.com 的 IP 204.79.197.239 并没有被墙,但是会撞到规则。能否去除 204.79.197.0/24?
最新esaymosdns,部署完成以后,发现esc-off关闭选项没有了,请问现在在哪里关闭
您好,如果我同时想解析内网域名zxc.com
我该修改哪些配置?
大佬,你好,能否做一个全局ipv4优先切换脚本,主要是现在ipv6国内还是比较不健全,想国内查询也用ipv4结果优先。
或者我应该修改配置文件里那些位置,我添加了,似乎无效。
能否添加 Cloudflare CDN IP 地址 替换成自选IP?自己缝合了一下发现并没有生效。请大佬们指点一二,谢谢。
# EasyMosdns v3.0(Final Release)
# https://apad.pro/easymosdns
log:
file: "/tmp/mosdns.log"
level: warn
data_providers:
- tag: chinalist
file: ./rules/china_domain_list.txt
auto_reload: true
- tag: gfwlist
file: ./rules/gfw_domain_list.txt
auto_reload: true
- tag: cdncn
file: ./rules/cdn_domain_list.txt
auto_reload: true
- tag: chinaip
file: ./rules/china_ip_list.txt
auto_reload: true
- tag: gfwip
file: ./rules/gfw_ip_list.txt
auto_reload: true
- tag: cfip
file: ./rules/cf_ip_list.txt
auto_reload: true
- tag: adlist
file: ./rules/ad_domain_list.txt
auto_reload: true
- tag: ecscn
file: ./ecs_cn_domain.txt
auto_reload: true
- tag: ecsnoncn
file: ./ecs_noncn_domain.txt
auto_reload: true
- tag: hosts
file: ./hosts.txt
auto_reload: true
plugins:
# 缓存的插件
# [lan|wan]
- tag: cache_lan
type: cache
args:
size: 8192
#redis: "redis://127.0.0.1:6379/0"
lazy_cache_ttl: 86400
cache_everything: true
lazy_cache_reply_ttl: 1
- tag: cache_wan
type: cache
args:
size: 131072
compress_resp: true
#redis: "redis://127.0.0.1:6379/0"
lazy_cache_ttl: 86400
cache_everything: true
lazy_cache_reply_ttl: 5
# Hosts的插件
- tag: hosts
type: hosts
args:
hosts:
- "provider:hosts"
# 获取ECS的插件
- tag: ecs_auto
type: ecs
args:
auto: true
force_overwrite: false
# 指定ECS的插件
- tag: ecs_global
type: ecs
args:
auto: false
ipv4: "168.95.1.0"
ipv6: "2001:b000:168::"
force_overwrite: false
# 匹配ECS的插件
- tag: ecs_is_lan
type: query_matcher
args:
ecs:
- "0.0.0.0/8"
- "10.0.0.0/8"
- "100.64.0.0/10"
- "127.0.0.0/8"
- "169.254.0.0/16"
- "172.16.0.0/12"
- "192.0.0.0/24"
- "192.0.2.0/24"
- "198.18.0.0/15"
- "192.88.99.0/24"
- "192.168.0.0/16"
- "198.51.100.0/24"
- "203.0.113.0/24"
- "224.0.0.0/3"
- "::1/128"
- "fc00::/7"
- "fe80::/10"
- tag: ecs_is_cn
type: query_matcher
args:
ecs:
- "provider:chinaip"
# 调整TTL的插件
# [1m|5m|1h]
- tag: ttl_1m
type: ttl
args:
minimal_ttl: 60
maximum_ttl: 3600
- tag: ttl_5m
type: ttl
args:
minimal_ttl: 300
maximum_ttl: 86400
- tag: ttl_1h
type: ttl
args:
minimal_ttl: 3600
maximum_ttl: 86400
# 匹配TYPE12类型请求的插件
- tag: qtype12
type: query_matcher
args:
qtype: [12]
# 匹配TYPE65类型请求的插件
- tag: qtype65
type: query_matcher
args:
qtype: [65]
# 匹配TYPE255类型请求的插件
- tag: qtype255
type: query_matcher
args:
qtype: [255]
# 匹配RCODE2的插件
- tag: response_server_failed
type: response_matcher
args:
rcode: [2]
# 屏蔽请求的插件
- tag: black_hole
type: blackhole
args:
rcode: 0
ipv4: "0.0.0.0"
ipv6: "::"
# 匹配无效域名的插件
- tag: query_is_non_domain
type: query_matcher
args:
domain:
- "keyword::"
# 匹配本地域名的插件
- tag: query_is_local_domain
type: query_matcher
args:
domain:
- "provider:chinalist"
# 匹配污染域名的插件
- tag: query_is_non_local_domain
type: query_matcher
args:
domain:
- "provider:gfwlist"
# 匹配CDN域名的插件
- tag: query_is_cdn_cn_domain
type: query_matcher
args:
domain:
- "provider:cdncn"
# 匹配广告域名的插件
- tag: query_is_ad_domain
type: query_matcher
args:
domain:
- "provider:adlist"
# 匹配强制本地解析域名的插件
- tag: query_is_cn_domain
type: query_matcher
args:
domain:
- "provider:ecscn"
# 匹配强制非本地解析域名的插件
- tag: query_is_noncn_domain
type: query_matcher
args:
domain:
- "provider:ecsnoncn"
# 匹配本地IP的插件
- tag: response_has_local_ip
type: response_matcher
args:
ip:
- "provider:chinaip"
# 匹配污染IP的插件
- tag: response_has_gfw_ip
type: response_matcher
args:
ip:
- "provider:gfwip"
# 匹配CFIP的插件
- tag: response_has_cf_ip
type: response_matcher
args:
ip:
- "provider:cfip"
# 匹配最佳CFIP的插件
- tag: blackhole_bestcfip
type: blackhole
args:
ipv4: "162.159.39.121"
# 转发至本地服务器的插件
- tag: forward_local
type: fast_forward
args:
upstream:
- addr: "218.104.111.114"
- addr: "218.104.111.122"
# 转发至远程服务器的插件
- tag: forward_remote
type: fast_forward
args:
upstream:
- addr: "https://1.1.1.1/dns-query"
#socks5: "127.0.0.1:1080"
- addr: "https://1.0.0.1/dns-query"
#socks5: "127.0.0.1:1080"
# 转发至分流服务器的插件
- tag: forward_easymosdns
type: fast_forward
args:
upstream:
- addr: "https://doh.apad.pro/dns-query"
bootstrap: "119.29.29.29"
#dial_addr: "ip:port"
#enable_http3: true
# 主要的运行逻辑插件
# sequence 插件中调用的插件 tag 必须在 sequence 前定义
# 否则 sequence 找不到对应插件
- tag: main_sequence
type: sequence
args:
exec:
# 域名映射IP
- hosts
# 屏蔽TYPE65与无效类型请求
- if: "[qtype65] || (query_is_non_domain)"
exec:
- _new_nxdomain_response
- _return
# 优化PRT与ANY类型请求
- if: "[qtype12] || [qtype255]"
exec:
- _no_ecs
- forward_local
- ttl_1h
- _return
# 缓存ECS
- ecs_auto
- _edns0_filter_ecs_only
- if: ecs_is_lan
exec:
- cache_lan
- _no_ecs
else_exec:
- cache_wan
# 强制用本地服务器解析
- if: query_is_cn_domain
exec:
- forward_local
- ttl_5m
- _return
# 强制用非本地服务器解析
- if: query_is_noncn_domain
exec:
# 优先返回ipv4结果
- _prefer_ipv4
- ecs_global
- primary:
# 默认用分流服务器
- forward_easymosdns
secondary:
# 超时用远程服务器
- forward_remote
fast_fallback: 2500
always_standby: false
- ttl_5m
- _return
# 屏蔽广告域名
- if: query_is_ad_domain
exec:
- black_hole
- ttl_1h
- _return
# 已知的本地域名或CDN域名用本地服务器解析
- if: "(query_is_local_domain) || (query_is_cdn_cn_domain)"
exec:
- primary:
# 默认用本地服务器
- forward_local
- ttl_1m
secondary:
# 超时用分流服务器
- forward_easymosdns
- ttl_5m
fast_fallback: 25
always_standby: false
# 预防已知的本地域名临时污染
- if: "(! response_has_gfw_ip)"
exec:
- _return
# 已知的污染域名用分流服务器或远程服务器解析
- if: query_is_non_local_domain
exec:
# 优先返回ipv4结果
- _prefer_ipv4
- ecs_global
- primary:
# 默认用分流服务器
- forward_easymosdns
secondary:
# 超时用远程服务器
- forward_remote
fast_fallback: 2500
always_standby: false
- ttl_5m
- _return
# 剩下的未知域名用IP分流
# 优先返回ipv4结果
- _prefer_ipv4
- primary:
# 默认用分流服务器
- forward_easymosdns
- if: response_server_failed
exec:
- forward_local
- _return
- ecs_global
- if: "(! ecs_is_cn) && (! response_has_local_ip) && [_response_valid_answer]"
exec:
- forward_easymosdns
secondary:
# 超时用本地分流器
- forward_remote
- if: response_has_local_ip
exec:
- forward_local
- _return
- ecs_global
- if: "(! ecs_is_cn) && [_response_valid_answer]"
exec:
- forward_remote
fast_fallback: 2500
always_standby: false
- ttl_5m
# 重定向Cloudflare到自选最佳IP
- if: response_has_cf_ip
exec:
- blackhole_bestcfip
- ttl_1h
- _return
servers:
- exec: main_sequence
timeout: 6
listeners:
- protocol: udp
addr: "127.0.0.1:5553"
#- protocol: tcp
# addr: "0.0.0.0:53"
#- protocol: http
# addr: "127.0.0.1:9053"
# url_path: "/dns-query"
# get_user_ip_from_header: "X-Forwarded-For"
#- protocol: tls
# addr: "0.0.0.0:853"
# cert: "/etc/mosdns/yourdomain.cert" # TLS 所需证书文件。
# key: "/etc/mosdns/yourdomain.key" # TLS 所需密钥文件。
#api:
# http: "127.0.0.1:9080"
DDNS动态域名IP更换频繁,缓存时间长,如何指定一些域名不缓存呢
这个配置的逻辑很不错,值得学习。但本人道行不够,编译成V5的配置文件始终报错,还请大佬指点一二。
easymosdns/rules/gfw_domain_list.txt
Line 11522 in 7bc7e47
分流规则是否过时了,看是一年前更新的。能否配置自动更新规则?
能否提供docker版本
昨天尝试在本地局域网搭建了一下使用,感觉很不错,非常感谢.只不过用https://browserleaks.com/dns 检测还是存在dns泄露的问题.后来尝试把分流服务器改成其他上游dns服务器后泄露就不存在了.改回默认的分流服务器又发生泄露.但是单独使用分流服务器的doh也不会出现dns泄露,我是在centos8上搭的
对比了 felixonmars/dnsmasq-china-list,总体一致,但有多处增删。
请问是另有数据来源呢,还是经过了特定的方法验证处理?能否公开下这份数据的生成方式?
特此叩谢,望不吝指教。
局域网也有dns服务器,看说明是使用host进行配置,但是数量太多了
是否有转发器的方式,比如 x.test.com dns-server:10.10.10.10
尝试写这样,*.test.com 10.10.10.10 无法正常解析
非常感谢。
大佬,我又来打扰了,我有个疑问,远程dns查询携带的ecs信息是**或者日本,那么我就有一个疑问,我的代理服务在美西,这样理论上是不是就有点绕路了?
是不是让ecs信息是美西最佳?
如题,最开始发现有问题是因为https://www.423down.com/ ,alidns直接无解析,我使用在线dns检查工具以后发现网站能正常访问,所以在本地解析手动添加了其他dns后就能正常访问了
整个框架自身应该怎么更新呢?
谢谢您提供的mosdns应用,确实很方便。
想请教您一个问题,用于ssr plus或者passwall这类国内IP库的更新源,
您这个IP库与https://asn.bgp.space/
的区别?推荐哪些更新IP库
不然就鸡生蛋问题了,开始的时候还是要去查国内的dns服务器
可以在局域网内搭建一个吗
推荐你看下 https://github.com/sbwml/luci-app-mosdns
这个项目应该更适合软路由使用,可以用我的配置文件和规则库在这个项目的基础上做补充
谢谢大神的回复,我把您的配置还有规则导入,做了修改,可是mosdns没有运行,不知道哪里出了差错
Originally posted by @wenju88 in #6 (comment)
大神你好,我有个openwrt的X86软路由,请问如何安装?
arm系列的docker很需要
起因:国内vps陡然在9月7日至今跑了共100G流量,收到提示,平时一天最多500m,遂排查
问题描述:iftop 检查到 vps 的53端口不停朝复数个的国外 ip 的80端口 tx 数据,无 rx 返回,反正端口占用程序为 mosdns ,国内vps无反问国外网址能力
脚本设置:开启缓存,国内腾讯,国外google+open
已停用,只能查到这了,接下来不知道怎么查,待明天查看流量使用恢复没
推断:某种情况 vps 的 dns 服务被扫描到,然后作为节点在提供服务,但不停发送数据不知是触发了什么bug
能否像nextdns 的dot服务那样有前缀
不知道问题反馈至哪边,这边为脚本,那边为原程序T T,我俩边都发下哦
mosdns v2dat命令支持将v2ray data转换成txt文件,是否考虑可以通过更新geosite.dat和geoip.dat源文件,通过mosdns v2dat转换的txt文件来替换项目rule规则
大佬,我遇到一个现象,https://affyun.com 这个站,查看dns返回的结果跟运营商返回的结果是一样的。但确打不开页面。错误代码连接到 affyun.com 时发生错误。PR_END_OF_FILE_ERROR
但是我手动设置位运营商的dns,不用mosdns,站点打开就很正常。
这是什么问题?
openwrt 可以用吗?
请教一下“自动更新缓存” 功能指的是什么?
是类似 smartdns 的”域名预读取“,还是只是清理 Redis 中的数据?
只有ipv4怎么不见ipv6数据
能否增加远程上游Cloudflare DNS
TUNADNS和GeekDNS不太好用
麻烦大佬考虑一下
大佬能不能把这里的ipv4和ipv6分开呢,如果可以的话,帮忙生成ipv4和v6两个文件
没事,这个问题筛洗一下就行了,还是感谢大佬
希望引入ipv6地址
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.