Openwrt 上的 Dnsmasq IPSET 真是神器

2014-06-21 19:49:16 +08:00
 leavic
我只大概说一下,OpenWRT上从2.66版开始的Dnsmasq已经支持IPSET了,不过需要自己改一下Makefile重新编译.
所以,Dnsmasq.conf里可以把XXX域名的解析结果全部导入一个IPSET,然后通过防火墙规则,可以把IPSET里的所有IP转发到VPN网关上,配合上GFWlist,聪明的你应该懂了.
之前只用过AutoddVPN,IPSET其实都不是太懂,不过折腾了一天已经成功编译好dnsmasq并且在两台路由上跑起来了,真是目前我所知道最好的翻墙方案了,维护难度几乎为0.

参考这三个链接:
https://code.google.com/p/autovpn-for-openwrt/wiki/Dnsmasq_Ipset
http://samsonly.us/?p=85
https://sorz.org/p/openwrt-outwall/
24627 次点击
所在节点    OpenWrt
60 条回复
diymusic
2014-06-29 19:31:59 +08:00
多谢 @lj0014 @LazyZhu 成功打造shadowsocks/ipset/dnsmasq/pdnsd自动翻墙器,用了 @leavic 的dnsmasq ipk。耶!
cj1324
2014-06-29 20:43:13 +08:00
@shierji
同一原理的实现。
openwrt 的feed https://github.com/cj1324/hc_openwrt_packages

8M 720n的固件包含ipk下载 http://goo.gl/052PT7

固件特点
1. dnsmasq+ipset + ssredir完整的服务启动脚本。
2. 没开80 ,首次通过23端口管理配好后ssh
3. 刷入开机可用~
shierji
2014-06-30 23:28:45 +08:00
我今天又一次认识到DNS查询是UDP包。。。囧
难道果然需要重新编译 dnsmasq么
est
2014-07-04 20:31:26 +08:00
pac实现完全相同功能!
JoeyChan
2014-07-04 20:55:41 +08:00
好像很复杂的样子,如果根据gfwlist来判断的话还有很多遗漏的域名,我感觉还是用白名单比较舒服,国内走本地,其他走socks5,这样100%不会受到墙的干扰,而且一定程度上可以加速一些国外网站的访问,当然你自己的shadowsocks速度要给力才行。我说说我的做法:
1、shadowsocks,用ss-redir运行,得到一个透明代理。
2、chnroute整理国内ip段出来,通过iptables创建规则,默认流量走ss透明代理,国内ip段则走本地。整理出来大概将近4000条防火墙规则,我用openwrt执行的话大概需要三四分钟,也就是开机加载时间比较久,路由器不重启的话基本没什么影响。
3、dns污染问题,实际上我觉得这个老方法更有效
https://code.google.com/p/openwrt-gfw/wiki/AntiDNSPoisoning
用这个方法你会得到大概十几二十条iptables规则,加上这些规则基本不会受到污染,再配合dnsmasq把一些域名受到严重污染的域名通过8.8.8.8或者其他dns来解析,最重要的一点,不影响一些网站的本地cdn加速而且不受污染。
szpunk
2014-07-05 12:43:05 +08:00
@JoeyChan AntiDNSPoisoning 的方法,这几十条 iptables 规则会严重影响正常 DNS的查询速度,有点得不偿失。
leavic
2014-07-05 13:15:37 +08:00
@szpunk 事实上,FILTER表的过滤效率是高得惊人的,你根本不会察觉到有什么速度上的问题,更谈不上什么严重影响DNS查询速度.
shierji
2014-07-05 18:42:30 +08:00
等我写个文章吧。这种其实很合适用的网站比较少的。。比如我这样的人。。。很智能的说。也。。。满简单。。。
jmhglvip
2014-07-08 08:57:24 +08:00
@cj1324 能否编译4M的720固件?顺求47XX的ipk !
cj1324
2014-07-08 10:38:54 +08:00
@jmhglvip 可以接受没有LuCI? (web界面管理) 4M 真心有点挤,我可以代为编译,列出你必须的特性。
声明刷机有风险:最好需要会一些uboot修砖。
jmhglvip
2014-07-08 10:57:05 +08:00
@cj1324 谢谢你的答复!可以接受无luci,平时在外地,上网中继一下,都是手机上网,只需要手机能爬墙就行,ss是自己买的一年账号。然后能否加上3G功能,在户外用3g卡。我的uboot是刷不死的。http://www.right.com.cn/forum/thread-136444-1-1.html720n专用v3板的。
jmhglvip
2014-07-08 11:00:06 +08:00
@cj1324 现在刷的是leavic的4m720nvpn版本的,看yb有点卡,不知道ss是否好点?再次感谢!
jmhglvip
2014-07-08 11:02:08 +08:00
@cj1324 要是大哥能编译个47xx的就好了,家里的主路由是asus rtn16的,16mflash,回到家也可以无忧爬墙哦!
cj1324
2014-07-08 11:34:45 +08:00
@jmhglvip BCM47xx芯片 我并没有设备。我可以带为编译。但是没办法测试固件。所以风险更大。。
我的主路由是 NETGEAR WNDR3700v4 也是ar的芯片。
jmhglvip
2014-07-08 11:45:35 +08:00
@cj1324 大大先编译吧,n16也是刷不死的,我来测试,没问题!其实我上网的要求很简单,无缝爬墙看youtube就行。偶尔twitter,facebook.家里人看看优酷,电视盒子。再次感谢!
cj1324
2014-07-08 11:46:13 +08:00
@jmhglvip Hangouts上面聊吧。 chen1324[at]gmail
jmhglvip
2014-07-08 11:51:47 +08:00
@cj1324 好的
leavic
2014-07-08 13:56:29 +08:00
@jmhglvip 不需要自己编译,官方提供了dnsmasq-full,替换掉默认的dnsmasq就可以了.
shierji
2014-07-12 21:34:27 +08:00
我发现。由于有客户端异步DNS等问题。路由器上解析得到存入ipset的地址不一定跟客户端上得到的地址一样。造成的结果就是对某些拥有多个IP的网站来说,首次开启的时候很有可能因为对应的IP没有被路由到服务器而无法访问。我还是用以前的方式好了。
leavic
2014-07-12 21:56:27 +08:00
@shierji 这是你Dnamasq配置方式的问题,DNS解析应该完全交给路由器进行,客户端不应该指定任何DNS,设置成自动获取就行.所有的解析结果由路由返回,这也是Dnsmasq中DHCP通告DNS部分的默认设定.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/118823

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX