使用 iptables 转发 DNS

2015-12-14 23:43:22 +08:00
 yamada

我在 iptables 添加了如下两条规则:
iptables -t nat -A OUTPUT -m owner --uid-owner {0} -j RETURN
iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 1111

将 DNS 转发到了我自己的程序(监听 1111 ),然后在我自己的程序里面从 UDP 包里拆出了域名,并且再调用 InetAddress.GetByName(domain).HostAddress 希望能再利用系统自己的 DNS 解析出 IP (我扮演了一个代理的角色),但是发现这个调用又被转发到了自己于是形成了无限递归,可是我第一条规则应该已经跳过了自己发出的任何数据包啊,代理 80 之类的都是没问题的,不知道为什么 DNS 会这样

13641 次点击
所在节点    Android
23 条回复
Sacore
2015-12-16 01:44:58 +08:00
3g/4g 。。不会是搞免流代理吧。。
yamada
2015-12-16 14:28:16 +08:00
@Sacore 不是

@Jeansh 我不是很懂 NAT 网段这些,不好意思……现在在 WIFI 下测试 OK 但是 4G\3G 下也会受到 DNS UDP 的查询但远程地址是一个公网 IP ……看起来像是出了手机在外面绕了一圈后再回来的……
yamada
2015-12-18 22:04:19 +08:00
应用里面对 https 的调用,证书是不是不认 SAN ?我自签 CA 已添加到系统信任里,然后用它再签发其他的证书来做中间人响应应用里面的 HTTPS ,在浏览器里面没问题不会提示证书错误,但应用不行,试了好几个都报错,应该是证书错误

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

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

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

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

© 2021 V2EX