-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
luci: add dns redirection and optimization #3254
Conversation
👍 |
其实我感觉这个DNS劫持的功能不适合passwall来做,passwall只做好和代理相关的工作就好了。 更合适的做法应该是不去影响系统全局网络底层的设置。系统网络设置是否劫持DNS应不受任何其它服务影响。 |
“系统网络设置是否劫持DNS应不受任何其它服务影响”这是正确的,但是Passwall之前的改动影响了DNS劫持(无论是lean源码加入自定义规则,还是immortalwrt开启DNS重定向,都出现问题了),具体一点的话是因为xiaorouji去掉这两条规则导致的,不知道是出于什么目的,在这之后确实导致了DNS劫持失效。
|
所以要做的其实只是解决这个问题,让passeall不影响系统设置就行了,不需要额外的什么。 说来奇怪,因为之前去掉2条规则引起的劫持失败,但是我测试确实可以成功劫持,并没有受到影响。你issue下面也有一人测试劫持没问题,估计还有其他什么因素。 |
其实当时我提交这个功能时也是纠结了一会,因为可以用防火墙自定义规则实现,让PW做是否合适。但是考虑到大多数使用者是不懂“技术”只会简单的使用。fw3没有带dns重定向功能,加了这个开关,普通用户也不用去找ipt命令添加到自定义规则里;而且openclash也是带有dns重定向的功能的,所以就斗胆提交了这个代码。 我的出发点是方便大多数小白用户使用,如果大佬们觉得这个提交实在画蛇添足的话就请revert它吧。😊 |
我认为加入这个功能没什么问题。 |
另外,tcp 53端口的劫持依然是有问题的,因为
这几行代码只return了udp的53端口。
此外,或许tcp的53端口并不需要劫持,若udp返回tc标识让客户端重新用tcp查询时,客户端会使用udp查询时的地址;对于手动指定了某些场景走tcp 53查询的用户或许也会更友好 |
|
大佬可以尝试下加入这个功能吗 #3242 noip-as-chnip 或者 no-ipv6 |
看来应该是规则优先级的问题,imm的规则位于passwall之后,所以我这边tcp劫持会出问题。 |
@BGzEroll 他说的最新源码应该是passwall添加了 DNS重定向 开关,在passwall里开启重定向才是正常的吧,passwall里不开,用系统自带的还是有问题的。 |
是的,我说的就是这个意思,可能没表达清楚😂 |
我两台路由一台是lede一台是imm,两台都是使用passwall-smartdns版+smartdns,在没有加回那两行代码前都是可以正常劫持dns到路由的,其实我对防火墙也不熟悉,现在加个dns重定向开关也只是解一下部分用户的燃眉之急,还得大佬们分析一下那两行代码的加入和去除到底是哪个环节影响了部分用户的dns劫持,最终在根源上解决。 |
来自AI的回复😂 iptables -t mangle -w -A PSW -p udp --dport 53 -j RETURN 这条iptables命令是用来配置防火墙规则的,它工作在Linux系统中,用于对网络数据包进行过滤或修改。下面是对这个命令各部分含义的详细解释:
综上所述,这条iptables命令的作用是:在mangle表的"PSW"链的末尾添加一条规则,该规则检查所有进入的数据包,如果数据包是UDP协议且目标端口为53(即DNS查询),则不对其进行任何特殊处理(如修改标记等),而是直接返回到调用"PSW"链的点,继续按照常规流程处理这些DNS查询包。这样的规则可能用于确保DNS查询流量不受特定mangle规则的干扰或特别标记。 只能等待@xiaorouji 大佬解答了😂 |
* When using the ChinaDNS-NG and using TCP/UDP query DNS, only use ChinaDNS-NG, no other DNS forwarder is required. * Optimization
根据该规则的位置,如果没有该规则,设置一个不在大陆ip表内的ip作为dns服务器,不出意外的话你应该能在udp代理日志中找到这个ip...的吧? |
@lwb1978 我觉得有必要在日志输出一下是否启用了 DNS 劫持,很多奇怪的情况其实就是没开劫持导致的,这样方便分析问题。 |
1.添加DNS重定向设置(dns劫持);
2.顺手优化了“清空 ipset”按钮显示,根据所使用的防火墙工具,该按钮显示为:“清空 NFTSET” 或者 “清空 IPSET” 。