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 条回复
ShadyK
2014-08-02 13:08:40 +08:00
@jmhglvip
@cj1324
请问两位大哥有编译出asuswrt merlin entware下可用的dnsmasq ipset嘛?
我业余爱好者,基本上从0开始学编译,搞不定啊。
jmhglvip
2014-08-03 16:08:20 +08:00
@ShadyK 呵呵,我也是个小白。只会刷固件而已。你找@CJ1324大大吧!
jmhglvip
2014-08-03 16:10:01 +08:00
@ShadyK 找到了梅林版用的chinadns:https://tanronggui.xyz/t/124550#reply76
cj1324
2014-08-04 11:14:01 +08:00
@ShadyK 如果你只是需要dnsmasq ipset opkg包 给我你的机器型号或CPU型号。 另外没实际设备测试过,不保证可用。
ShadyK
2014-08-04 12:58:26 +08:00
@cj1324 我推上问了下merlin作者能不能集成dnsmasq ipset,他说不行,too much denpendcies,它的fw还不行,你看是否能帮我编译一个entware下可用的
ipset-dns
http://git.zx2c4.com/ipset-dns/about/

asus ac66u,bcm4706的U
麻烦了,非常感谢
cj1324
2014-08-04 13:36:42 +08:00
@ShadyK ASUSWRT 兼容OpenWrt吗? 没接触过。。
ShadyK
2014-08-04 19:34:47 +08:00
@cj1324 asuswrt和tomato、dd现在都在用一种叫做entware的套件,比optware里的套件更新快,维护勤,你有兴趣可以看下
https://github.com/Entware/entware
newbie666
2014-08-29 07:45:19 +08:00
我有一个新的想法:
先设置好策略路由,对打上标记的数据包走vpn。
再写一个linux的内核模块,然后监听所有到80端口的syn请求,凡是1秒内没有收到syn-ack数据包的都认为是被防火墙block 的连接,针对这个连接,伪造一个syn-ack给客户端,让浏览器以为连接到服务器成功。再伪造一个syn给web服务器,给这个syn包打上标记,让他走vpn出去。
这样就搭了个桥,双方都会认为连接成功了,再把以后后续的数据包都打上标记,全部都走vpn出去。
最后再把这个ip加入列表内,以后凡是这个IP都走vpn。
感觉这个办法应该可行,不再需要考虑什么域名,只要是被block的站全部都可以自动连通。
但缺点第一次连接可能会是速度较慢,因为需要等1秒后再启用这个机制。
chijiao
2014-09-01 23:20:48 +08:00
@newbie666 如果是reset的怎么办?
chijiao
2014-09-01 23:22:48 +08:00
感觉还是太复杂了,本人用的白名单,china top 500 的域名做一个白名单,凡是不是白名单内的域名,用第三方的dns服务器解析, top500 内的,用路由器获取的dns。 这样可以保证国内网站的cdn能工作。 然后在iptables 开启geo ip, 对于国外的IP,统统走代理。 这样基本上不用后期什么维护了。
jielee
2014-09-02 22:02:00 +08:00
我自己编译的固件ipset怎么运行不了?
root@OpenWrt:~# ipset list
ipset v6.20.1: Cannot open session to kernel.
logtee
2014-11-02 23:34:34 +08:00
@jielee 遇到相同问题,请问有解决办法吗?
jielee
2014-11-03 10:23:54 +08:00
@logtee 重新编译固件,包含了ipset就可以了
buddha
2014-12-02 06:35:29 +08:00
对编译一窍不通, 有没有高手能帮忙给一个能在R6300v2上的DDWRT下能用的包含ipset功能的dnsmasq ?
xiaofami
2014-12-03 13:56:35 +08:00
@lj0014 你好,我参照您的方法,在路由器上的 /etc/rc.local中,添加

ipset -N Shadowsocks iphash

iptables -t nat -A PREROUTING -p tcp -m set --match-set Shadowsocks dst -j REDIRECT --to-port 1081

结合dnsmasq的ipset使用,效果很好。但是遇到一个问题:Shadowsocks服务器关闭后,本地也出现了问题。具体表现在除了dnsmasq.conf中自行解析的域名,其他域名均nslookup失败,打不开网页。我在删除

ipset -N Shadowsocks iphash

iptables -t nat -A PREROUTING -p tcp -m set --match-set Shadowsocks dst -j REDIRECT --to-port 1081

后重启路由器,问题解决。但是我不清楚问题出在哪里,有更好的解决办法吗?
iMax
2014-12-21 21:58:24 +08:00
@leavic 有没有最新的刷入即用的固件啊?我的是WNDR3800,对于菜鸟来说折腾起来很费时间,想偷个懒直接用上就好。我没VPS,但是SS和VPN账号都有。谢谢先
msdindin
2015-01-15 12:18:19 +08:00
都是大神啊,我就想在AC68U上实现SS,但是俺是一个小白,有没有什么适合我的教程呢?
xmvagrant
2015-02-04 17:44:40 +08:00
@cj1324
@leavic 我的路由器是Buffalo WZR-HP-G300NH2,刷的是Attitude Adjustment 12.09 版本的OpenWrt,Kernel Version是3.3.8,安装dnsmasq-full时使用 http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/base/dnsmasq-full_2.72-4_ar71xx.ipk 这里的版本,装好后运行/etc/init.d/dnsmasq start无报错,但是dnsmasq进程未能启动,试了 https://github.com/aa65535/openwrt-dnsmasq 这里预编译好的版本也一样情况,是不是我的OpenWrt版本太老了dnsmasq-full不支持,请大神帮我分析下是什么情况,谢谢!
pwcpp
2015-03-08 14:40:42 +08:00
AA 12.09官方源里没有dnsmasq-full这个软件包,只有dnsmasq 2.66,请问该怎么办?
arfaWong
2015-04-28 12:08:17 +08:00
@leavic 我配置防火墙规则通过ipset再转发到shadowsocks的1080端口。DHCP/DNS的DNS转发到ChinaDNS,这样的操作可行吗?

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

https://tanronggui.xyz/t/118823

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

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

© 2021 V2EX