» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[电脑] 彻底解决DNS解析问题, 和强说再见

本主题由 System 于 2024-4-18 05:00 解除限时高亮
https://bbs.tgfcer.com/thread-8361647-1-1.html
之前一贴有人开启了DOH就上不了网站了, 因为墙把那些google 等提供的DNS解析的服务器IP和域名给封了.  8.8.8.8 和 1.1.1.1 基本都是不可用状态 可以用该网站测试 https://www.itdog.cn/http/

现在有了mosdns 可以分流国内和国外的域名解析, 可以让国内的网址走国内的DNS解析, 国外的网址走国外的DNS解析.
我测试了全球的DNS服务器列表, 肯定有漏网之鱼,而且还不少. 都放到脚本里面了. 这样也不用在浏览器里面开启DOH, mosdns都支持DOH作为上游DNS服务器

用了mosdns 后 除了google twitter 这种IP也被墙了的网站 其他网站都不用开代理直接上 例如github 非常快

教程可以直接看github 链接 不要看下面写了很多, 就是在路由器上装一下mosdns 就可以了 很简单。
https://github.com/jinwyp/one_cl ... aster/DNS.md#mosdns


1. 建议有条件的请用脚本再国外服务器搭建 AdGuardHome DNS服务器 还可以去广告. 然后再安装mosdns 进行DNS分流. 没有条件搭建DNS服务器也不用担心, 本脚本已经内置多个DNS服务器地址

2. 通过使用mosdns 或 mosdns-cn 可以让国内的网址走国内的DNS解析, 国外的网址走国外的DNS解析.   安装mosdns 分为 Openwrt X86版本, linux 版本 或 windows 版本. 建议有软路由的直接在软路由安装Openwrt X86版本.

3. 如果使用x86 openwrt 软路由, 可以直接使用 SSH登录到软路由上 使用如下脚本安装mosdns
复制内容到剪贴板
代码:
wget --no-check-certificate https://raw.githubusercontent.com/jinwyp/one_click_script/master/dsm/openwrt.sh && chmod +x ./openwrt.sh && ./openwrt.sh
4. 使用上面脚本在软路由安装 luci-app-mosdns 完毕后, 请进入OpenWRT管理菜单: 服务-> MosDNS -> MosDNS 配置文件选择 下拉框选择 自定义配置. 然后勾选 启用 复选框后, 点击 保存&应用 按钮 就可以启动 MosDNS. 注意:如果mosdns启动失败, 请先关闭ssr 或 passwall 插件, 因为这些插件内置的PDNSD也运行在5335端口导致冲突. 或者更换mosdns的启动端口.


如果已经安装过mosdns 可以先删除mosdns
在openwrt里面 系统 -> 软件包 -> 过滤器  里面 搜索 mosdns 有两个结果 一个是mosdns 一个是 luci-app-mosdns  2个都点击移除 然后用我脚本重新安装就可以了

5. 然后在 OpenWRT管理菜单: 网络-> DHCP/DNS -> DNS 转发 填入 127.0.0.1#5335, 因为mosdns运行在软路由的5335端口, 如果mosdns不是运行在软路由而是用下面的脚本运行在其他linux上,则填入对应IP和端口即可. 然后在第二个tab "HOSTS 和解析文件" 勾选 忽略解析文件. 最后点击右下角 保存&应用 按钮完成设置.  注意: 如果没有正确填写转发就勾选了 "忽略解析文件" 会导致无法上网, 忽略解析文件的意思就是在dnsmasq 添加 no-reslov 指令不再使用原有的上游DNS解析. 最后在 ShadowSocksR Plus+ 设置 -> DNS解析方式 -> 使用本机端口为5335的DNS服务. 注意: 默认使用PDNSD TCP查询并缓存, 该项的PDNSD的也运行在5335端口, 所以会导致冲突, 如果mosdns启动失败, 请先关闭ssr 然后选择"使用本机端口为5335的DNS服务"后再启动ssr , 或者更换mosdns的启动端口.





6. 如果 linux系统 可以使用如下脚本在linux 系统上安装 mosdns 或 mosdns-cn. 安装完成后按照上面的步骤在路由器中设置DNS即可.
复制内容到剪贴板
代码:
wget --no-check-certificate https://raw.githubusercontent.com/jinwyp/one_click_script/master/trojan_v2ray_install.sh && chmod +x ./trojan_v2ray_install.sh && ./trojan_v2ray_install.sh
7. 如果是 windows 系统, 可以从 [mosdns-cn 官方网站](https://github.com/IrineSistiana ... n-windows-amd64.zip) 下载 mosdns-cn 压缩包直接解压后放到一个目录中.
再下载 [geosite文件](https://github.com/Loyalsoldier/ ... ownload/geosite.dat) [geoip文件](https://raw.githubusercontent.co ... p/release/geoip.dat)  [cnip文件](https://raw.githubusercontent.co ... eoip/release/cn.dat)  放到mosdns-cn解压的同一个目录中.
最后运行
复制内容到剪贴板
代码:
mosdns-cn -s :53 --blacklist-domain "geosite.dat:category-ads-all" --local-upstream https://223.5.5.5/dns-query --local-domain "geosite.dat:cn" --local-ip "geoip.dat:cn" --remote-upstream https://8.8.8.8/dns-query --remote-domain "geosite.dat:geolocation-!cn"
即可.


8. 如果是 windows 系统, 也可以直接下载打包好的 [mosdns-cn](https://wws.lanzout.com/i7pYR05e80eh) 解压后运行 run.bat 或
复制内容到剪贴板
代码:
mosdns-cn --config ./my-config.yaml
9. 在 OpenWRT中可以在DHCP给客户端分配IP时, 直接给客户端赋予与路由器IP不同的DNS服务器, 这样无论通过上面方法架设好mosdns后, 把mosdns机器的IP填入下图.客户端就不用手动设置DNS了. OpenWRT管理菜单: 网络 -> 接口 -> LAN 点击"修改" 按钮 进入页面下部 "DHCP 服务器" 部分, 点击第二个tab "高级设置" -> DHCP 选项 填入6,192.168.1.5, 其中192.168.1.5改为mosdns的机器IP就可以了.  这样所有客户端会默认使用mosdns作为DNS服务器, 同时也不需要上面的设置 DHCP/DNS -> DNS 转发 的修改方法了.


10. 具体参数可以参考官方网站 https://github.com/IrineSistiana/mosdns-cnhttps://github.com/IrineSistiana/mosdns


如果是arm版本的硬路由器 openwrt 可以到这里下载对应的ipk 安装mosdns
https://github.com/sbwml/luci-app-mosdns/releases


随着以后科技的发展 ESNI 等 墙基本上作用越来越弱. 当然以后屏蔽的方法也可能越来越简单,禁止下载新版浏览器.

[ 本帖最后由 jinwyp 于 2022-7-10 04:03 编辑 ]
附件: 您所在的用户组无法下载或查看附件


本帖最近评分记录
  • homeworld 激骚 +1 最骚 Rated by wap 2022-5-26 10:40
  • hit_alf 激骚 +1 最骚 Rated by wap 2022-5-25 14:57
  • 道克斯 激骚 +1 恭喜发财 2022-5-25 14:26

TOP

引用:
原帖由 夏多南纳特 于 2022-5-25 08:25 发表
posted by wap, platform: Samsung
这个跟SmartDNS是不是差不多功能
对, 但比smartDNS 更好, smartDNS 有些问题,而且很多人设置的也不对,起不到效果

mosdns-cn 直接用ip判断 配置简单 功能更多



TOP

引用:
原帖由 vany 于 2022-5-25 09:26 发表
posted by wap, platform: Chrome
自建服务器已经有ssl证书还需要申请免费证书这一步吗?
openwrt上装了mosdns,怎么卸载?
1 已经有了证书就不用申请了, 主要是给adguard home 提供DOH 解析,必须有证书,我的脚本还做了一些简单配置,例如增加了更多的上游DNS和去广告的规则。

2 在openwrt里面 系统 -> 软件包 -> 过滤器  里面 搜索 mosdns 有两个 一个是mosdns 一个是 luci-app-mosdns  2个都点击移除用我脚本重新安装就可以了


TOP

引用:
原帖由 Crazylife 于 2022-5-25 08:51 发表
posted by wap, platform: Android
AdGuardHome就能做dns分流,还能自动更新网站列表,何苦再装一个
AdGuardHome 没有dns分流的功能 ,

如果 AdGuardHome 想做到真正的分流 需要装两个 AdGuardHome 一个负责国内解析一个负责国外解析 , 或者写一大堆规则分流, 很麻烦

而使用mosdns 其实就可以不用自建 AdGuardHome 了。

TOP

引用:
原帖由 Crazylife 于 2022-5-25 12:39 发表
posted by wap, platform: Android
agh可以导入并自动更新gfw列表,并且指定这些域名用哪个dns来解析,最终实现是靠分流规则不错,但是同样是免维护的,就是luci里面点三个选项而已(第一步勾上导入gfw列表,第二步指 ...
使用域名分流就不靠谱, 实际上gfwlist 并不能解决dns问题, 必须使用ip判断国内国外才更准确

例如现在使用 mosdns 后  github和很多网站 可以不用开启代理就可以正常访问了。

TOP

引用:
原帖由 笨来笨去 于 2022-5-25 13:13 发表
Windows 下直接运行运行 run.bat就可以了,其他不用设置吗?
chrome里设了DOH好像也没什么用
不存在的网站还是不存在
电脑要改DNS啊, 改好DNS后直接就能打开github了, github的IP没有屏蔽 所以raw.github 开头的就可以正常访问了.  

如果是IP被墙的例如google 那肯定是要开代理才可以,但大部分国外网站只是DNS被污染,ip没有被封。 这样大部分国外网站都可以不开代理访问了

TOP

引用:
原帖由 bobykid 于 2022-5-25 14:28 发表
嗷,我直接用XRAY的DNS功能来实现的,分流也简单,国外域名全部交给CloudFlare或者Google DNS来解析,1.1.1.1/8.8.8.8这些IP走代理,然后国内的域名解析交给运营商DNS, 反正绝大多数情况也只用来解析A/AAAA类型的域名 ...
区别就是你这个需要开xray 代理 就是要连xray的代理服务器,而mosdns就是普通的DNS服务器,就是正常的没开代理的网络上网,不需要有海外的服务器

TOP

引用:
原帖由 kjjuhfv 于 2022-5-25 16:22 发表
posted by wap, platform: Chrome
我这op固件是自己编译的
你这脚本怎么都装不上 用别人的固件可以装上
放弃安装了
如果使用docker版 比如这个 https://hub.docker.com/r/irinesistiana/mosdns
是不是把你的自 ...
装不上是不是网络问题 无法下载github 的链接啊.  出了什么错误?  我脚本是进入/tmp目录 把下载的ipk都放到这里了

手动安装步骤 首先在软件包里面 移除 mosdsn 和 luci-app-mosdns

然后到这里 https://op.supes.top/packages/x86_64/  先搜索 mosdns
下载 luci-app-mosdns_git-22.144.47842-61fd9fe_all.ipk 和 mosdns_cee9e6d-55_x86_64.ipk  
名字可能会随着日期修改不同 没关系 就这两个

然后安装mosdns还要安装2个依赖  在搜索 v2ray-geo
下载 v2ray-geosite_20220425025949-4_all.ipk  和  v2ray-geoip_202204210050-4_all.ipk
名字可能不同

然后先安装这两个 v2ray-geosite 和 v2ray-geoip  

安装命令
opkg install v2ray-geosite_20220425025949-4_all.ipk v2ray-geoip_202204210050-4_all.ipk
然后在安装
opkg install mosdns_cee9e6d-55_x86_64.ipk luci-app-mosdns_git-22.144.47842-61fd9fe_all.ipk  

还需要下载三个geosite 和 geoip 文件 放到 /etc/mosdns 下 就完成了
https://github.com/Loyalsoldier/ ... ownload/geosite.dat
https://github.com/Loyalsoldier/ ... /download/geoip.dat
https://raw.githubusercontent.co ... eoip/release/cn.dat

具体的配置文件在脚本里面 是程序生成的 可以看脚本 258行开始  可以复制出来部分DNS服务器就可以了.
https://github.com/jinwyp/one_cl ... dsm/openwrt.sh#L258

具体配置要看mosdns 比较复杂,或者直接用我脚本在linux上 安装mosdns-cn 简单好用

如果是arm版本的硬路由器 openwrt 可以到这里下载对应的ipk 安装mosdns
https://github.com/sbwml/luci-app-mosdns/releases

[ 本帖最后由 jinwyp 于 2022-7-10 03:59 编辑 ]

TOP

引用:
原帖由 jiezi 于 2022-5-25 17:56 发表
大佬,小白请问一下,windows系统就直接下载打包好的 mosdns-cn 解压后运行 run.bat,然后啥也不用装,也不用配置路由器,就可以了么?
run.bat运行后,就是这样,是不是一直保持这个不关就可以了?

没有感觉到变 ...
要把你的电脑dns 改成你这个windows的ip , 或者在路由器上根据顶楼教程改DNS ,就是让客户端使用这个dns做解析

windows 改DNS 教程很多 也很简单
https://zhuanlan.zhihu.com/p/265364903

TOP

引用:
原帖由 fakecnc 于 2022-5-25 19:18 发表
感谢分享
手动祭扫

年纪越大就越不想动脑子了,连看复杂文字的耐心都没有了。
下载 windows 包 解压运行 , 很简单 写了这么多只是为了让其它平台软路由设置DNS

TOP

引用:
原帖由 jiezi 于 2022-5-31 19:22 发表
posted by wap, platform: Android
大佬,请问必须在路由器里设置么?windows下直接运行run.bat后启动了一个黑色命令框,还需要做什么?
还需要改设备的DNS 设置成windows这个机器IP, 顶楼就是openwrt 路由器的方法, 否则你要在每个设备手动改

TOP

公益节点 https://board.jinss2.cf/

最近受到 cloudflare 挂了的影响 整个互联网瘫了一半
https://blog.cloudflare.com/cloudflare-outage-on-june-21-2022/

请及时删除节点重新 更新订阅

有问题 进群讨论 https://t.me/tgfcer2020

建议还是早安装mosdns  解决DNS问题

TOP

引用:
原帖由 playboy23 于 2022-6-25 12:33 发表
arm软路由能不能装
需要自己下载arm 版本的mosdns 编译才可以, 不同的路由器要自己编译 或找针对你这个型号的路由器已经编译好的固件

TOP

如果是arm版本的硬路由器 openwrt 可以到这里下载对应的ipk 安装mosdns
https://github.com/sbwml/luci-app-mosdns/releases

用了mosdns 后 除了google twitter 这种IP也被墙了的网站 其他网站都不用开代理直接上 例如github 非常快

[ 本帖最后由 jinwyp 于 2022-7-10 04:01 编辑 ]

TOP

发新话题
     
官方公众号及微博