找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 5759|回复: 8

大家一起来研究一下openwrt的兲朝上网

[复制链接]
发表于 2017-11-17 13:57 | 显示全部楼层 |阅读模式
本帖最后由 liu_geng 于 2017-12-6 12:48 编辑

最近刷了明月的openwrt,研究了一下兲朝上网。
研究了好几天,终于把ss,Pdnsd,Dnsmasq,GFWList,chnroute这些东西大概弄明白了,很多东西都是个人的猜测,如有不对的地方,欢迎大家讨论。

1,ss的工作原理是利用iptable和ipset来转发数据,ipset负责将某一类ip地址进行归类,iptable负责对某一类的ip地址按预定的规则进行转发,比如转发到ss的端口。

2,黑名单是一个叫gfwlist的ipset,白名单就是一个叫china的ipset。gfwlist清单依靠Dnsmasq来实时添加和修改。dnsmasq的默认配置文件是/etc/dnsmasq.conf,pdnsd在启动时会给这个配置文件最后添加一行内容:conf-dir=/tmp/dnsmasq.d,意思是让dnsmasq读取/tmp/dnsmasq.d/目录下的配置文件,这个目录下有一个叫gfw.conf的文件(实际上是/tmp/dnsmasq.d/gfw.conf的链接),这个文件里面保存的是功夫网黑名单的规则,比如
server=/.google.com/127.0.0.1#1053
ipset=/.google.com/gfwlist
第一行意思是解析*.google.com这个域名时不使用默认的DNS服务器,而是将查询的请求转发到127.0.0.1#1053(pdnsd)这个地址,由pdnsd来负责解析,至于为什么不使用默认的DNS我会在后面解说。
第二行意思是将*.google.com解析出来的地址添加到名叫gfwlist的ipset集合里面。

对于这个gfw.conf文件的更新,在明月的固件的计划任务里有一个自动更新的脚本/usr/bin/gfw.sh,这个脚本负责定时从github网站上下载最新的gfwlist。

【疑问】如果设置为白名单模式,那么除了国内的IP,剩下的全部走ss代理,这种模式的问题是很多没有被墙的国外IP也通过ss代理来访问,一是速度受影响,二是要消耗VPS的流量。
如果设置成黑名单模式,那么只有gfwlist中的网址才走ss代理出去,其他国内和国外没有被墙的网站都通过直连访问,这种模式的问题是gfwlist中的名单未必很全,名单没有收录的网站就无法访问。
但是我没弄明白为什么设置成黑名单模式之后,下面还有一个代理模式的选项,可以设置为“全局模式”和“忽略列表”。全局模式很好理解,就是全部都走ss代理,但是这个忽略列表是什么意思,忽略列表不就是白名单模式吗?黑名单模式白名单模式全局模式忽略列表这四个如何组合,各自的优先级怎样?需要大家来谈论一下。

3,之所以对gfw.conf里面的域名不使用默认的DNS来解析,而是交给pdnsd来解析,目的是为了防止DNS劫持和DNS污染,至于什么叫DNS劫持和DNS污染,有兴趣的可以自行百度一下。
为了防止DNS劫持和污染,我使用pdnsd通过TCP方式经过ss代理连接openDNS来进行解析,这是一个最可靠的途径。
方法是先设置pdnsd的global下的query_method=tcp_only;
然后在server里设置成opendns的服务器地址:
server {
        label = "OpenDNS";
        ip = 208.67.222.222,208.67.220.220;
        port = 5353;
        proxy_only = on;
        timeout = 5;
}

最后别忘了在ss的设置页面里将208.67.222.222,208.67.220.220这两个地址添加到“强制走代理”。

这样设置后,对于gfw.conf清单以外的域名,dnsmasq使用默认的DNS来解析,清单里面的域名使用pdnsd以TCP方式经过ss代理通过opendns来解析。

当然也可以关闭pdnsd,直接使用ss的UDP转发功能,在ss的“UDP转发”里将“隧道(DNS)转发地址”设置为8.8.8.8:53或者208.67.222.222:53,本地端口设为1053或者5353(确认跟gfw.conf文件里server字段最后的端口保持一致)。

4,对我来说pdnsd+ss的组合已经很完美了,至于china-dns,我一直没弄明白他的工作原理,所以就没有使用,有弄明白china-dns工作原理的朋友,希望不吝赐教。


我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-11-18 17:54 | 显示全部楼层
理解的很透 ,我的ddns有个怪毛病。ss正常上网时就可以更新路由IP,
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-18 21:33 | 显示全部楼层
黑名单之后有那个代理模式,个人理解感觉应该是,在黑名单这个前提下, 如果是全局模式, 剩余的全部不走$$, 如果是忽略列表, 那应该是在排列黑名单之后, 其它的不是全部都不走$$了,而是应该可以自定义一部分自己还要觉得强制走$$的IP列表..

我个人理解是这样的,如果不是理解, 真不知道这个全局模式和忽略列表到底什么意思.

另外,不管哪种模式,肯定是不存在完美的形式, 除非再继续自定义细化分类, 肯定会需要有自定义的列表.

对于PDNSD, 虽然基本的东西网上的说明有很多,但是实在没有看到过一篇PDNSD完全清晰的解释说明. PDNSD的参数实在是太多了.

点评

PDNSD我google了一下,找到了官方的文档,参数基本上搞清楚了,PDNSD原理其实很简单,就是一个DNS服务器,可以支持TCP方式查询,可以设置多个server,每个server里面又可以设置名单和规则。甚至可以直接替换系统默认  详情 回复 发表于 2017-11-22 22:33
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-18 21:33 | 显示全部楼层
明月个人博客上也有说明过这个组合的用法,但是他自己也说了很多也是模糊着用,有些选项他自己也没完全弄明白
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-11-22 22:33 | 显示全部楼层
safehorse 发表于 2017-11-18 21:33
黑名单之后有那个代理模式,个人理解感觉应该是,在黑名单这个前提下, 如果是全局模式, 剩余的全部不走$$, 如 ...

PDNSD我google了一下,找到了官方的文档,参数基本上搞清楚了,PDNSD原理其实很简单,就是一个DNS服务器,可以支持TCP方式查询,可以设置多个server,每个server里面又可以设置名单和规则。甚至可以直接替换系统默认的dnsmasq,但是因为dnsmasq可以支持黑名单和ipset,所以我没有用pdnsd替换dnsmasq,只是用pdnsd作为dnsmasq的黑名单上游服务器,我觉得这个组合比较完美。

点评

PD 确实很屌 ,很好用。速度也很好。  详情 回复 发表于 2017-11-23 14:25
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-23 14:25 | 显示全部楼层
liu_geng 发表于 2017-11-22 22:33
PDNSD我google了一下,找到了官方的文档,参数基本上搞清楚了,PDNSD原理其实很简单,就是一个DNS服务器 ...

PD 确实很屌 ,很好用。速度也很好。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-23 19:53 来自手机 | 显示全部楼层
既然有VPS,那自己搭建一个DNS service更好。可以选择与ss-tunnel相同的端口,作为pdnsd的上游DNS。用openDNS做黑名单的DNS解析的一个最大问题是解析出的IP地址可能不是VPS最优的选择。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-23 21:13 | 显示全部楼层
学习了,慢慢消化
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-4-18 17:13 | 显示全部楼层
想知道现在还有效吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-20 21:13

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表