家宽之前在手机上测试显示 full cone ,但与对称 nat 一直无法打洞成功,昨天换了一种方式测试,应该是那个测试 app 有 bug ,实际上应该是端口受限 nat 。手机流量的对称 nat 也测试了一下,虽然目标 ip 确定的情况下端口递增,但是访问不同 ip 可能映射到不同公网 ip ,所以端口猜测也没法搞了吧?还有可能打洞成功吗?
1
delpo 2022-05-21 09:23:07 +08:00 1
如果一边端口受限另一边对称 nat,并且对称 nat 是端口递增的, 那么可以通过手动发包的方法打洞
比如说对称 nat 一侧,和打洞服务器通信时,防火墙映射的外网端口为 n,那么真正打洞时,防火墙映射的外网端口就是 n+x(x 不一定为 1,因为内网可能还有其他客户端),这时候端口受限 nat 一侧的客户端就可以手动发包访问 n+x 号端口,就可以用该端口完成打洞. 至于 x,一般比较小,可以通过遍历的方式进行发包 |
2
missdeer 2022-05-21 11:54:55 +08:00
我觉得你可以考虑试试在家宽打开 upnp ,我之前遇到了跟你一样的问题,现在通过 upnp 能满足我绝大多数需求
|
3
v2tudnew 2022-05-21 12:01:25 +08:00
有,要公网 IP ,普通路由器拨号😂。或者上 IPv6 。
CGNAT 就算给 Full Cone NAT 也是端口不对称的残废版本,没用。 |
4
yaott2020 2022-05-21 13:04:39 +08:00 via Android
目前好像没有办法,可以试试预测
|
5
lovelylain OP @yaott2020 主要是对称 nat 不一样的目的 ip 连出口 ip 都可能不一样,好像没什么办法能确定出口 ip ,所以端口猜测也搞不了。
|
6
lovelylain OP @missdeer 你的意思是局端可能开启了 upnp ,可以在路由器上走 upnp 协议端口映射?这个要怎么操作呀?
|
7
huyujievip 2022-05-21 16:53:28 +08:00
别打了,用 Wireguard 组网吧
|
8
missdeer 2022-05-21 17:45:47 +08:00
@jobmailcn 在光猫上 enable upnp (这步用光猫的手机 app 就能做到),然后光猫后的设备可以自己用程序(比如 miniupnp )映射端口,具体命令参数上网搜一下吧,很简单的,映射成功的话光猫 app 上能查到。我现在家宽和外面都是对称型,在家宽开了 udp 端口后,从外面就能连上来了。
|
9
anbobi 2022-05-21 21:33:25 +08:00
话说打洞是啥意思
|
10
i3x 2022-05-22 02:05:26 +08:00 via Android
不是靠猜测。靠第三方服务器判定。
stun 。 fullcone 状态的话端口虽然不一致但是对应关系可以通过 stun 或者其他的外部服务器方式取得。 你是需要两个地方通过 udp 打洞实现两端直接通信吧。搜索 site2site udp hole punching wireguard 。。。如果没有洁癖不担心商业产品依赖问题,tail scale 或者国产的 oray 蒲公英随便用。蒲公英组网也是优先穿透实在没办法才会用服务器转发。 @anbobi 没有公网 ip ,且网关不提供 upnp ,端口映射之类的。但是仍然能保持让其他设备访问的端口。。。。基本上只能 udp 。因为 tcp 有来路问题。 |
11
yaott2020 2022-05-22 11:39:03 +08:00 via Android
|
12
lovelylain OP @missdeer 试了一下,No IGD UPnP Device found on the network !应该是没有 upnp 的。
之前拨号成功虽然能获取到 ipv6 地址,但没有分发前缀,而且也 ping 不通 ipv6 网站,刚才又折腾了一番,终于发现是联通给我改的桥接有问题,调整了一下后 ipv6 就能用了,困扰近 2 年的 ipv6 不能用问题终于解决了。 |
14
lovelylain OP @i3x 光猫桥接配置里有个 ip 类型选项,v4 v6 或 双栈,之前是 v4 ,于是 v6 收发包都被屏蔽了,改成双栈后就有分发前缀了,v6 也正常了。
|
16
openp2p 2022-05-29 16:14:30 +08:00
这个实现其实非常简单,就是靠端口碰撞,大概发送 800 个包就超过 99%的概率打洞成功。
可以先试用下行不行 https://openp2p.cn 可行再看看代码 https://github.com/openp2p-cn/openp2p/blob/master/holepunch.go 核心部分就几十行代码的事 |
17
flynaj 2022-05-30 23:34:57 +08:00 via Android
路由器拨号,路由器开 UPnP
|