求助:家庭局域网内使用透明代理,怎么解决 ipv4 和 ipv6 共存、dns 解析问题?

3 天前
 wwd179

背景描述

目前家里通过路由器拨号。有 ipv6 。

用树莓派 4B 安装 openwrt 系统,充当旁路由。

科学上网使用 passwall2 插件。

梯子是用海外云主机搭建的 naive 协议。有 ipv4 和 ipv6.

想提供透明代理给 android 、ios 、win10-pc 。

现在是通过在客户端手动 IP 、指定网关和 DNS 地址为旁路由,实现透明代理。(这里遇到有些设备无法手动设置 ipv6 的问题)

目前的问题

  1. 想要用 ipv6 。但是如果开启 ipv6 。走透明代理的客户端,上网网速很慢甚至打不开。(感觉是 dns 问题)
  2. naive 协议能直接支持 ipv4 和 ipv6 双栈吗?

对于这种情况,有相关资料参考吗?搜了一圈感觉没看到有用的文章。

1515 次点击
所在节点    宽带症候群
39 条回复
lcy630409
3 天前
我之前也有你的困惑,开启 ipv6 会导致 gfw 的一些域名很慢,特别是走 cloudflare cdn 的,后来在局域网安装 AdGuardHome 作为 dns ,将 gfw 列表的域名 全部只返回 ipv4

当然前提是分发 ipv6 的时候 不要分发 ipv6 的 dns 或者 将 AdGuardHome 的本地 ipv6 地址当做 dns 分发下去
maybeonly
3 天前
旁路由和 ipv6 兼容很成问题。建议有 v6 刚需的情况下换成主路由使用,或者 v4 和 v6 场景分开(二级路由)
和梯子本身支持不支持双栈关系不是那么大,根本原因是 v4 和 v6 的网关是没关系的,dns 的获取途径有多种( dhcp ,ra ,etc ),解析结果是分开的( a ,aaaa ),旁路由要兼容 v6 的话你得把各种 v6 网关都指过去还要避免收到主路由的 ra

然后在梯子那里把所有去墙外的 v6 都 reject 掉就行了,客户端会自动用 v4 尝试。
dbak
3 天前
如果能顺利翻墙的话 你想保留 ipv6 的目的是啥?
lihang1329
3 天前
开启两个网段的 lan ,一个 lan ipv6 一个 v4
lcy630409
3 天前
插一句
我的 AdGuardHome 设置,https://whzxc.cn/gfwlist/Ad-gfw.php ,将内容复制到过滤器的自定义过滤规则中,保存即可
wwd179
3 天前
@dbak
目的主要 2 个:
1.要在公网通过 p2p vpn 访问家里设备。家里带宽没有公网 ipv4 ,甚至没有动态 ipv4 。p2p vpn 走 ipv4 时打洞不稳定,经常走到中转,用 ipv6 的话,就能稳定直连。
2.跑 PT 上传的话,能利用 ipv4+ipv6 双栈。发现我这的带宽上行限速是分开的。ipv4 和 ipv6 各自能跑 30M 。
SenLief
3 天前
旁路由无法使用 ipv6 代理的,主要的原因是 ipv6 的 dns 请求直接从主路由出去的,也就是劫持不到旁路由去,如果想用 ipv6 就是主路由跑网关了。
Ipsum
3 天前
直接改 gw 肯定是不行的。现在好点的方案只有 dns 分流。找个 mosdns 或者 adg 来对 gfwlist 的域名进行分流。clash 那边开启 fakeip 。主路由做个 fakeip 的 cidr 到 clash 基本上就行了。
dbak
3 天前
楼上的如果说的靠谱的话直接用透明代理直接拨号呢?
78786381
3 天前
@dbak #3 看电视,有的节目源 v6 速度快,v4 速度慢
jesky
3 天前
旁路由模式的问题。
dbak
3 天前
@78786381 那可以参考楼上对 dns 针对访问的域名进行分流 我用的 smardns 可以自定义域名走指定的 dns 服务器
titanium98118
3 天前
因为设备获取到的 ipv6 的网关和 ipv6 dns 不是你旁路由的 ipv6 IP ,这问题很复杂,把做透明代理的设备位置坐正
roding
2 天前
dns 可以禁止解析 ipv6
littlewing
2 天前
ipv6 对我唯一的用处就是挂 pt ,所以我把 v6 dns 关了,而且 clash 也不反回 v6 地址
EvineDeng
2 天前
可以参考我的方案: https://www.v2ex.com/t/984297 ,透明代理的域名只走 ipv4 ,中国大陆的域名支持 ipv4/ipv6 双栈,PT 支持 ipv4/ipv6 双栈。无需手动指定 DNS 地址。
aMR
2 天前
ipv6 是可以多个网关同时广播 ra 的,ra 里可以调优先级
xpn282
2 天前
在 IPv6 代理方面,用旁路由就别折腾 IPv6 了,难,伤脑筋。
旁路由无法全面接管 IPv6 的流量,所以会导致代理方面各种问题。因为设备只是把 IPv4 指向旁路由而已,IPv6 流量并不能给旁路由处理。

IPv6 代理的正确方式; OpenWrt 当主路由。OpenClash 作为代理全面接管 IPv6 流量,该直连还是代理,由规则决定。OpenClash 接管 IPv6 还有一个好处是,不管你的节点支不支持 IPv6 ,都不影响翻墙的,OpenClash 会自己处理好。
veSir
2 天前
IPv6 挺快的, 旁路由不要用 IPv6, 在 dnsmasq 过滤 AAAA 记录.
ddczl
2 天前
设备用 AdGuardHome 53 端口,解析到海外域名上游用 ShellCrash 并使用 1053 端口,开启 fake-ip ,路由器配置静态路由,路由就是 fake-ip 所有,即可

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

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

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

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

© 2021 V2EX