dnsmasq+ipset+iptable 配置本地指定流量重定向到本地**-redir 不成功

2017-10-22 09:44:41 +08:00
 ssrr
root@raspbx:~# iptables-save
# Generated by iptables-save v1.6.0 on Sun Oct 22 09:29:07 2017
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [30:5556]
:POSTROUTING ACCEPT [26166:1573716]
-A PREROUTING -p tcp -m set --match-set socks dst -j REDIRECT --to-ports 1081
-A OUTPUT -p tcp -m set --match-set socks dst -j REDIRECT --to-ports 1081
-A OUTPUT -d myserverip/32 -j RETURN
COMMIT
# Completed on Sun Oct 22 09:29:07 2017


root@raspbx:~# ipset list socks
Name: socks
Type: hash:net
Revision: 6
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 452
References: 2
Members:
172.217.24.197


我要做的是把打了 ipset 标记的这条 ip172.217.24.197 重定向到我的**-redir 上

172.217.24.197 是 gmail.com 的 ip,ping 的 ip 也对,**-redir 别的应用来使用也工作正常,但是 curl https://gmail.com 还是请求超时,同时**-redir 弹出大量相同报错 ERROR: accept: Too many open files 感觉是 陷入死循环了 可是-A OUTPUT -d myserverip/32 -j RETURN 这条不是已经将**-redir 的服务器排除在外了 是不是还有什么没做呢

网上找了很久基本都是拿 dnsmasq+ipset+iptable 这一套做网关不是像我这样本地 linux 代理的
3759 次点击
所在节点    SSH
7 条回复
ssrr
2017-10-22 10:03:10 +08:00
linux 是树莓派 3B OS:raspbian
ssrr
2017-10-22 10:10:21 +08:00
现在 iptables 改成 单单一条规则了 iptables -t nat -A OUTPUT -p tcp -m set --match-set socks dst -j REDIRECT --to-port 1081
**-redir 不弹报错了 但是 curl 还是连接超时
ssrr
2017-10-22 10:37:06 +08:00
找到这条帖子 跟我一样 https://www.v2ex.com/t/130665 直接单独一条
iptables -t nat -A OUTPUT -p tcp – dport 80 -j REDIRECT – to-ports 1081 是没问题的
但是用 ipset 就不行
ssrr
2017-10-22 10:42:03 +08:00
@ssrr 帖子里说是写错了 也不知道是不是在说-A 参数写错了 我一直是用的 OUTPUT 还是不行
ssrr
2017-10-22 11:36:32 +08:00
重启解决了 很尴尬。。现在主动添加 ipset add socks 172.217.24.197 工作正常
然后又发现 dnsmasq 无法添加 ipset 的问题
找到这个贴 https://www.v2ex.com/t/164529 重编译 dnsmasq 解决了
ssrr
2017-10-22 13:19:45 +08:00
@ssrr
经过反复尝试 发现无法添加 ipset 并不是 dnsmasq 的问题 其实在我编译 dnsmasq 前自带版本也不低 2.76 目前最新就 2.78
是因为 dnsmasq.conf 配置文件的
address=/example.com/X.X.X.X 和 ipset 规则不能共存
解析只能通过远程转发 或者 dnsmasq 自己转发到上游 dns 来实现 例如
server=/example.com/X.X.X.X#53
才能使 ipset 生效
直接用 address 指定 ip 就无法使 ipset 生效
而且直接用 /etc/hosts 也无法使 ipset 生效 折腾了两天 终于。。
nadoo
2017-10-22 13:52:52 +08:00

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

https://www.v2ex.com/t/399612

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

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

© 2021 V2EX