|
本帖最后由 tstar 于 2021-12-18 06:12 编辑
【12.18】因为论坛不能用qq密码登录 手机又不想装qq 所以很长一段时间没来了,这次主要是修改一下教程中没有必要的步骤 顺便回答问题。 第四步 op防火墙的自定义可以不用做了,本身s.s.r.p会重新封包。
【7.16】由于china-dns不支持DOH,并且早已停止更新,替代产品china-dns-NG也不支持DOH,所以转投一款更为优秀的DNS工具MOSDNS,经过试用,效果非常满意,功能强大,支持DOCKER,只是配置稍微复杂,如果大家有需要,后期继续更新。
MOSDNS支持 UDP, TCP, DoT, DoH(RFC 8484) 以及 HTTP (没有 TLS 的 DoH, 用于配合反向代理)。
GITHUB可找到相关项目
---------------------------------------------------------------------------------------------------------------------------
PS:原帖为 ROS+OPENWRT的用户看过来 教你ROS流量分流 有很多不完善以及错误的地方 遂废弃。
---------------------------------------------------------------------------------------------------------------------------
最近忙于恶补网络知识,看到原帖有很多网友提出很多问题,很多也很久远,懒于回复,重开新帖,一并解答了。
首先说明一下网络结构以及OP固件版本。
- ROS作为主路由 ip设为 192.168.2.1 (DHCP服务+DNS缓存服务)
- OP作为旁路由 IP设为 192.168.2.2 (打倒美帝服务)
- ADG为自建DNS服务器 IP为 192.168.2.8 (负责国内dns解析 去广告)
请分清楚这三个IP 根据自己实际情况替换。
OP固件为自己云编译的精简版本,科学工具为 S.S.R.P
-----------------------------------------------------------------
首先讲分流,先导入china-IP列表(此列表6.6日生成共8600多条 包含3个局域网段)
ROS创建一条router规则:如下图:
第二步:创建一条防火墙规则 如下图:
以上规则让局域网内所有出国海淘海淘海淘海淘海淘海淘海淘海淘海淘海淘海淘海淘海淘淘海淘海淘...流量路由到OP。
第三步:放行所有OP流量。
其中第五条是指把放行规则放在路由规则之上
第四步:在OP防火墙中添加规则,启用源地址转换,让上面的放行规则生效
- #源地址转换,让ROS放行
- iptables -t nat -I POSTROUTING -o eth0 -j SNAT
复制代码
没有删除线 就引用一下 此步骤不再需要 违禁软件本身会重新封包 源地址转换多此一举了
至此,流量分流全部完成。
测试结果:
--------------------------------------------------------------------------
下面讲讲DNS分流,打倒美帝主要两种方式,一种是GFWLIST模式,一种是绕过大陆模式。
如果你是第一种,恭喜你不用继续折腾了。S.S.R.P完美支持。
如果你是第二种,请继续。
先讲讲原因,S.S.R.P的绕过大陆模式,在解析域名的时候,还是会通过GFWLIST列表来判断,哪些域名通过隧道解析,
这就导致有些不在列表内域名只能通过国内解析,必然存在污染的情况。我们只能通过第三方工具来解决了。
更重要的一点是,在CDN服务流行的今天,即使能正确解析,对于你的VPS来讲也不是最优的地址。
---------------------------------------------------------------------------------------------------------
ROS中DHCP服务和DNS服务设置如图所示:
第5步DNS设为OP是因为OP能够获得无污染解析,第6步是使用ROS的DNS缓存服务。
-----------------------------------------------------------------
以上ROS设置完毕,下面我们来到OP的设置。
OP安装china-dns插件,下面是离线安装包,自行安装即可。
开启后如图所示。
先普及一下china-DNS的原理,两个上游服务器,第一个填写国内DNS,第二个是国外DNS(可信DNS),
当收到解析请求时,china-dns会同时向这两个发送请求,
当解析结果在国内时,会选择国内DNS的结果,直接丢弃可信DNS的结果。
当解析结果在国外时,选择可信DNS的结果,而丢弃国内DNS的结果。
解析国内地址时不会等待国外DNS结果到来,会直接采用国内DNS的结果,不用担心时间问题。
具体设置说明:
1.双向过滤:当国外DNS服务器返回的查询结果是国内IP,或者当国内DNS服务器返回的查询结果是国外IP,
则过滤掉这个结果(较为严格的模式);去掉勾选的话只是过滤国内DNS的国外IP结果。
2.S.S.R.P默认端口
3.自带的chinaip列表 通过下面的命令更新:
- wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/china-dns_chnroute.txt
复制代码 4.第一个填国内DNS,第二个填国外DNS
OP中开启DNS转发
接下来我们要设置S.S.R.P,把我们使用的国外DNS强制代理。
如果你使用GFWLIST模式,需要关闭DNS转发。
至此,教程结束,后期会分享更多小技巧,感谢捧场。
-----------------------------------------------------------------------------
很多人关心,OP作为旁路,一旦崩掉,会影响正常上网。
其实 ROS只把DNS指向了OP,我们完全可以可以填写一个备用的DNS,就能解决国内上网的问题。
但是ROS还有强大的脚本功能。以下是第二种方法 脚本
实现如下功能
- 当OP旁路宕机时 自动关闭分流规则,并替换DNS
- 当OP旁路上线后,自动恢复分流规则,并替换DNS
这里我们要用到ROS的NETWATCH工具 如下图所示:
DOWN脚本:
- :local dns "192.168.2.8"
- /ip dns set servers=$dns
- /ip firewall mangle disable number=1
- /ip firewall mangle disable number=2
复制代码
UP脚本
- :local dns "192.168.2.2"
- /ip dns set servers=$dns
- /ip firewall mangle enable number=1
- /ip firewall mangle enable number=2
复制代码 DNS 根据自己情况,自行替换。number也根据实际情况替换。
NETWATCH是通过PING来检测主机是否在线,这点要格外注意
此时,你可以填写一个不存在的主机看看脚本是否生效。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|