坐标帝都
线路 联通家宽
最近在尝试用 WebRTC 写个小玩意儿
结果发现 我这个 NAT3 反射地址端口号完全跟内网端口号一致的
好奇联通是咋做到的
1
neurocomputing OP 应该不是软件故障,wifi 连手机热点的话,端口就不一样了,换回家宽就又一样了
|
2
ysc3839 2023-12-02 01:27:54 +08:00 via Android 2
本来 NAT 就可以内外部端口分配成一样的,只不过大多数 NAT 实现不这么做而已
|
3
neurocomputing OP @ysc3839 那必然会出现用户之间冲突啊,本地内网开端口的时候又没办法知道公网这个端口号是不是被占用了
|
4
flyqie 2023-12-02 01:50:44 +08:00
每个地区联通家宽差别真大。。
![Snipaste_2023-12-02_01-45-49.png]( https://s2.loli.net/2023/12/02/Y26OjzGpdxlPFem.png) ![Snipaste_2023-12-02_01-46-20.png]( https://s2.loli.net/2023/12/02/aXgRCELN2s6IkVl.png) |
6
Mitt 2023-12-02 02:16:35 +08:00 1
@neurocomputing #3 它能给你分一样的端口就是说明这个端口的空闲的,1:1 NAT 也是 NAT ,这个 IP 整个都是你的,只是不直接给你公网 IP
|
7
ysc3839 2023-12-02 03:09:58 +08:00 via Android
@neurocomputing 那有冲突时当然是分配别的端口了
|
8
dangyuluo 2023-12-02 03:34:26 +08:00
我也觉得有点神奇,使用固定端口发包的程序难道就不会冲突么
|
9
dangyuluo 2023-12-02 03:35:17 +08:00
哦看到了回复,虽然独享这个 IP ,但就是不分配给你的主机
|
10
00oo00 2023-12-02 05:32:25 +08:00 via Android
我记得很多地方电信联通都是 nat1 啊。
测这玩意要把 win 的防火墙关闭或者单独添加白名单,路由器要支持全锥形,才能测准。 |
11
dode 2023-12-02 09:03:17 +08:00 via Android
默认不改变出端口,除非内网使用端口有冲突
|
12
amyw495062 2023-12-02 09:11:44 +08:00
坐标 0760 的移动,也是这样,电信联通就不是
![微信图片_20231202090922.png]( https://s2.loli.net/2023/12/02/D5YXom1GiHxFUeW.png) |
13
lovelylain 2023-12-02 09:46:03 +08:00
有些 FullconeNAT 实现是优先保持原端口的,例如 https://github.com/Chion82/netfilter-full-cone-nat/blob/master/xt_FULLCONENAT.c#L432
```c if ((range->flags & NF_NAT_RANGE_PROTO_RANDOM) || (range->flags & NF_NAT_RANGE_PROTO_RANDOM_FULLY)) { /* for now we do the same thing for both --random and --random-fully */ /* select a random starting point */ start = (uint16_t)(prandom_u32() % (u32)range_size); } else { if ((original_port >= min && original_port <= min + range_size - 1) || !(range->flags & NF_NAT_RANGE_PROTO_SPECIFIED)) { /* 1. try to preserve the port if it's available */ mapping = get_mapping_by_ext_port(original_port, ifindex); if (mapping == NULL || !(check_mapping(mapping, net, zone))) { return original_port; } } /* otherwise, we start from zero */ start = 0; } ``` |
14
gamexg 2023-12-02 11:50:26 +08:00
@neurocomputing tcp 还真能多个内网用户共享一个端口,只要目标地址不一样,就能靠目标地址识别应该转发给哪个内网 ip 。
|
15
julyclyde 2023-12-02 14:10:18 +08:00
@neurocomputing 冲突那是第二个客户的问题。你现在是幸运的第一个
|
16
TESTFLIGHT2021 2023-12-02 15:14:32 +08:00
@gamexg 一样也可以共享,BRAS 做好记录就行
|
17
Kowloon 2023-12-03 11:33:06 +08:00 via iPhone
因为北京联通 IP 多,搞不好部署的是 1:1 NAT 防止用户体验变差。
|
18
Gadmin 363 天前
你是不是实际就是公网你没发现啊。一般路由器默认你要是没映射那个端口或者没 upnp 就是 nat3 。
https://i.postimg.cc/CK5v2Xfj/image.png https://i.postimg.cc/4yPNmYNk/image.png |