zw963 / asuswrt-merlin-transparent-proxy

transparent proxy base on ss, v2ray, xray, ipset, iptables, chinadns on asuswrt merlin or side router.
MIT License
380 stars 80 forks source link

所有DNS请求走ss服务器导致访问内网缓慢 #24

Closed puuuudding closed 7 years ago

puuuudding commented 7 years ago

你好,我用了你的配置在路由器上部署后效果非常好,感谢。

就如我的标题所述,我在配置完后使用时发现即使在访问属于FREEWEB的网站时也会有速度缓慢,在微信里看短视频时尤其明显。

在研究了你的配置后我发现你把所有的DNS解析都通过ss-tunnel交给ss服务器(通过foreign_domains.conf这个配置文件),这就导致了每次解析都要去外面绕一圈,结果就是非常的慢。因为所有的TCP的非FREEWEB请求都会走ss服务,我就把这个DNS使用ss解析的配置文件禁用了,结果如我所预期的访问内网速度得到很大的提升同时也不影响最初的目的。我能看到的如此修改的影响就是UDP的DNS解析会失败,需要在ss-redir加上-u的配置(要使用-u需要TPROXY模块,默认TPROXY没有包括需要自定义配置重新编译Merlin,但这都是后话了)

所以在ss-redir能转发UDP请求可行的情况下,把所有DNS请求走ss服务器是否有必要?还有对于解析DNS有更好的解决方案么?

以上都是我突击学习iptables/ipset/dnsmasq等然后研究出得结果,如有错误也请包涵~

ohmyarch commented 7 years ago

我这边也有微信视频加载慢的问题 使用的方案是:ss+dnsmasq+chinadns

gitx6 commented 7 years ago

DNS解析都通过ss-tunnel交给ss服务器是不是可以避免DNS污染?

ss+dnsmasq+chinadns我目前使用下来碰见一些问题:

  1. ios的淘宝app发送消息失败,完成订单无法查询。
  2. 有些国内网站不在FREEWEB就无法访问。比如yfway.com;huanshoulv.com等。
  3. ios的微信朋友圈不能刷新。
  4. UDP没有转发。现象就是chrome看youtube有连接速度,没有缓存。
zw963 commented 7 years ago

@Puuuudding , 包含 chinadns 的那个脚本, 就是做这个用途的, 当然我不确定它是否能达到期望的效果.

    replace_string 5353 '5356 -s 114.114.114.114,127.0.0.1:1082,8.8.4.4' /opt/etc/init.d/S56chinadns

ss+dnsmasq+chinadns 部署脚本中的这一行很重要, 你应该替换 114.114.114.114 为你的宽带提供商 域名服务器, (如果不知道, 可以替换为 127.0.0.1 试试)

replace_string 5353 '5356 -s 127.0.0.1,127.0.0.1:1082,8.8.4.4' /opt/etc/init.d/S56chinadns
zw963 commented 7 years ago

@wangxin6, 你说的这些问题, 或多或少都应该可以通过 ss+dnsmasq+chinadns 这个脚本改善.

只不过我, 不 FQ 的时候, 我连接家里的另一个运营商的直连 WIFI, 所以, 一直没有解决这些问题. 速度慢的问题, 其实我一直都是知道的.

你有空的话, 麻烦帮忙测试下 ss-tunnel 的 -L 参数, 是否可以支持多个 DNS, 例如:

-L 114.114.114.114:53 -L 8.8.4.4:53

 -L 114.114.114.114:53,8.8.4.4:53

最近我不太方便, 左臂受伤了不能动,, 右手单指打字太费劲.

gitx6 commented 7 years ago

双DNS方式无效。

-L 114.114.114.114:53 -L 8.8.4.4:53 不能FQ,国内一些网站yfway.com;huanshoulv.com等可以访问

-L 114.114.114.114:53,8.8.4.4:53 不能FQ,国内一些网站yfway.com;huanshoulv.com等不能访问

手受伤了还打字,辛苦了。

zw963 commented 7 years ago

哦, 那这个问题, 只能通过 chinadns 解决了.

等待 @Puuuudding 修改 chinadns 配置之后的反馈吧.

puuuudding commented 7 years ago

之前因为配置过chinadns觉得效果不大所以又去掉了,现在看来应该是替换-s DNS服务的时候用的114而不是ISP提供的DNS导致的。上周末重新配置了下,加入了chinadns这层,用了ISP提供的DNS服务,感觉还是有点效果的,不知道是不是心理因素。

另外的话我今天又做了些别的配置,把服务器端从python换成了libev,在服务器上开启了BBR,这样一来基本没有问题了,访问内网还是外网都能达到比较满意的结果。

这个截图是chrome开启了QUIC后访问u2b的速度 screen shot 2017-07-03 at 21 46 03

gitx6 commented 7 years ago

@Puuuudding 你使用ss+dnsmasq+chinadns方案可以访问下面这些网站么?: www.siwei100.com www.pnlyy.com

微信发图片,淘宝查询订单有问题么? 谢谢。

puuuudding commented 7 years ago

@wangxin6 可以访问,微信淘宝都没有问题

gitx6 commented 7 years ago

奇怪我ss+dnsmasq+chinadns方案,S56chinadns无论使用114还是电信的dns都不能访问这两个网站。只有添加到FREEWEB才行。

ARGS="-l /opt/etc/chinadns_iplist.txt -c /opt/etc/chinadns_chnroute.txt -p 5356 -s 116.228.111.118,127.0.0.1:1082,8.8.4.4"

你有改过其他配置么?谢谢。

puuuudding commented 7 years ago

@wangxin6 chinadns通用了-m参数,但是我觉得这不是主要原因吧。另外你这个问题可以单独开个issue了吧~