求助:家庭局域网内使用透明代理,怎么解决 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 双栈吗?

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

1525 次点击
所在节点    宽带症候群
39 条回复
pagxir
2 天前
我选的方案是 ipv4=国内网络,ipv6 nat64 走国外,普通 ipv6 国内走国内,国外走国外,不过为了路由表简单会做映射。然后 dns 作调整,有国内 ipv4 就只返回 ipv4 ,有国外 ipv4 则返回 dns64 记录,最后仅有 ipv6 则,国内 ipv6 ,最后国外 ipv6 。一波下来完全无感如果 tizi 网络没异常的话。路由器上会将 64:ff9b::/96 添加为 local 路由,然后处理 tcp/443 跟 UDP/443 实现 TLS 跟 quic 的支持。
esee
2 天前
dns 的问题,你可以这样,国外域名只返回 V4 ,国内域名返回双栈,我就是这样用的。
pagxir
2 天前
为了方便临时访问 Google ,(没法安装客户端或者临时用)还搭了个 doh/ech 的环境 doh url https://test.603030.xyz/ech-query
JasperHale
2 天前
嘿嘿此时祭出 @ihipop 的解决方案 https://www.v2ex.com/t/818661#r_12074662
[在不关闭主路由 SLAAC 的前提下对家庭内网指定设备的 IPv6 流量进行“旁路牵引”]( https://blog.ihipop.com/2022/09/5343.html)
WhatTheBridgeSay
2 天前
我目前折腾一路过来的结论是,几乎无法共存。
甚至即使是 NAT 和 RA 和透明代理在一台机器上也几乎是无法共存,这是由于 IPV6 根本上就与 IPV4 用法上不一致造成的,IPV4 基本都需要 NAT 而 IPV6 都是一个设备最少有一个/64 的 PD ,后面 64 位自由发挥,并且 6 的默认网关会是 fe80 开头的 link-local 地址。另外还有 DNS 问题,IPV4 的 DNS 也是可以返回 AAAA 记录的,所以还会有 4only 的透明代理但基础设施普遍 6 优先导致流量从 6 走了。
再就是如果把网关再分离出去大多数情况下就会导致 4 和 6 的路由路径不一致,因为基本都是只能把 IPV4 的网关分离出去,因为 4 的 IP 设置是 DHCP 分配而 6 主要是靠 RA 下发 PD 然后设备自行 SLAAC 拼接完整 IPV6 地址,如果让这个独立的网关再去自己分 DHCPv6 的话光在设置上就比较困难了
WhatTheBridgeSay
2 天前
目前比较简单可行的方案是开 RA ,但在 DNS 层面围追堵截 drop 掉 AAAA ,这样既能在 BT 等 P2P 可以用 6 网络,又能最大程度降低 V6 透明代理逃逸的问题。
WhatTheBridgeSay
2 天前
@JasperHale #24
[在不关闭主路由 SLAAC 的前提下对家庭内网指定设备的 IPv6 流量进行“旁路牵引”]( https://blog.ihipop.com/2022/09/5343.html)

大概是我太菜,或者是博主的表达能力堪忧,反正我是没看懂这一篇从头到尾在干什么
fengyaochen
2 天前
又不是所有设备都需要 ipv6 ,运营商给的 v6 没有 nat 都是直连,不会经过代理,唯一的办法就是过滤国外的 dns ,让国外的域名解析只返回 v4 的地址,国内返回 v6 ,用大陆白名单的手段,其实 v6 国外的质量并不高,没必要启用 v6 ,国内也就一些大厂开了 v6 会速度快一些,用一个白名单就 ok 了
wm5d8b
2 天前
@WhatTheBridgeSay #27
写得还行吧,操作对不对没验证,核心思路就是调整 RA 优先级让 v6 走特殊路由
Gitmeeri
2 天前
一个 sing-box 配置解决的事,旁路由上装 sing-box 配置为双栈 tun 模式,自动路由开启,再把旁路由的 ip 转发开起来,网关 v4 v6 都填上旁路由的固定的
wuruxu
2 天前
我对这些问题研究超过两年多了,目前都是实现在硬路由上,可以看看我发的帖子,还附带实现了,出门在外,怎么回家使用科学上网
luoshengdu
2 天前
一、使用 easymosdns 自建内网 dns 服务器,开启 ecs 判断域名。中国大陆解析 ipv4&ipv6 ,其他地址仅解析 ipv4
-----------
# 指定 ECS 的插件
- tag: ecs_global
------------

二、透明代理科学开启绕过中国大陆 IP 模式

三、内网客户端验证,ipv4 和 v6 的返回结果
---------------
C:\Users\wyh>nslookup www.qq.com
服务器: Easydns.lan
Address: fd3c::cfb

非权威应答:
名称: ins-r23tsuuf.ias.tencent-cloud.net
Addresses: 240e:97c:2f:1::5c
240e:97c:2f:2::4c
121.14.77.201
121.14.77.221
Aliases: www.qq.com


C:\Users\wyh>nslookup www.v2ex.com
服务器: Easydns.lan
Address: fd3c::cfb

非权威应答:
名称: www.v2ex.com
Addresses: 172.67.35.211
104.20.47.180
104.20.48.180


C:\Users\wyh>nslookup www.youtube.com
服务器: Easydns.lan
Address: fd3c::cfb

非权威应答:
名称: www.youtube.com
Addresses: 142.250.196.206
142.250.198.78
142.250.204.46
---------------

4.达到使用 ipv6 的前提,ipv6 又不影响科学上网
dalaoshu25
2 天前
个人意见你还是废掉现在这套设备,换个 RouterOS 的路由器,比如 hAP-AX3 ,然后在人类社会主机上运行 wireguard 、OSPF 和 AdGuard Home 或者 chinadns-ng ,无论 v4 还是 v6 都无缝分流。
JasperHale
1 天前
@WhatTheBridgeSay doge 表情让我不知道, 您的意思 反串还是文本本来的意思 ..😂..
https://blog.ihipop.com/2022/09/5343.html 可以概况为:
旁路由 拿着 大喇叭 高喊: 我的路由最牛逼, 把流量给我能发财.
喇叭能控制方向, 对着特定几个人(设备) 喊,那几个人的 流量就得走旁路由.

喇叭能喊 路由, 但是喊不了 DNS, 因此只能 v4 的 dns 最好能返回正确的 AAAA 的地址.
WhatTheBridgeSay
23 小时 17 分钟前
@JasperHale #34 其实 RA 已经可以喊 DNS 了,RDNSS ,后来的 rfc 加上的东西,各大 OS 支持程度不一
xiaoke
13 小时 17 分钟前
@wuruxu 有链接吗?
wuruxu
11 小时 9 分钟前
flynaj
6 小时 15 分钟前
smartdns ,配置成 IPv4 优先
xiaoke
6 小时 3 分钟前
@wuruxu 谢谢,学习下

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

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

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

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

© 2021 V2EX