我之前用华硕路由器的时候,XBOX 显示 NAT 类型是开放,然后我电脑用 zerotier 打洞也能打洞成功。然而我并没有在华硕路由器里面为某台设备设置进行过相关的设置,按理说就算是 fullcone NAT 的话,也只能为路由器下的某一台设备设置成 fullcone NAT ,但现在来看好像路由器下所有的设备都有类似的效果?
然后我换了一台 RouterOS 的路由器,也开启 uPNP 了,但结果是 XBOX 里显示 NAT 类型变成受限了,然后电脑上用 zerotier 打洞也不成功了。
所以华硕路由器到底是用了什么黑科技?
PS:本来我应该是自己先实验实验的,但迫于家里还有其他人要用网,我不好自己一个人霸着网做实验,所以先来请教一下 V 友看有没有对此比较了解的。
1
ScepterZ 2022-02-21 17:26:00 +08:00
按理说就算是 fullcone NAT 的话,也只能为路由器下的某一台设备设置成 fullcone NAT
并不是这样的 随便百度一下就可以得到: Full Cone NAT:所有来自同一个内部 Tuple X 的请求均被 NAT 转换至同一个外部 Tuple Y ,而不管这些请求是不是属于同一个应用或者是多个应用的。 除此之外,当 X-Y 的转换关系建立之后,任意外部主机均可随时将 Y 中的地址和端口作为目标地址和目标端口,向内部主机发送 UDP 报文,由于对外部请求的来源无任何限制,因此这种方式虽然足够简单,但却不那么安全。 很容易发现,这是路由器的整体策略,不是只对一台生效的 你可能是再说 dmz (名字不一定记得对)之类的 |
2
cpstar 2022-02-21 17:29:54 +08:00
窃以为,可能华硕路由器的 uPnP 做的比 RouterOS 好。你看一下 ASUS 上 uPnP 的开放情况吧。再对一下 RouterOS 上的。
这个大概率使用 uPNP 搞定的,DMZ 的话,需要专门手动设置。实在不行就 ROS 上设置 DMZ 。 |
3
cpstar 2022-02-21 17:31:28 +08:00
另外,我的认知,uPNP 是通过 UDP 协议让路由器知道客户机想做哪些端口映射,实际上还是在做 NAT 映射。
|
4
wtfdsy 2022-02-21 17:35:09 +08:00
依稀记得华硕首页那个优化什么的是有游戏相关的,不过我华硕的路由有点怪,群晖的 NAT 映射经常过一段时间就失效,需要经常重新应用一下,换回 ERX 就好了
|
5
hronro OP |
6
MonoLogueChi 2022-02-21 18:36:02 +08:00 via Android
先明确一下,nat 就是地址转换,是发生在路由器上的,是对路由器 nat 规则的设置,和下面的设备无关,没有说为某台设备单独设置成 full cone nat 这个说法。设置为完全锥形 nat 之后,从内网发数据出去,就会形成一个内网和端口对路由器 wan 口 IP 的某个端口的映射关系,这就形成了一个通道,而且是双向的,还有一个特点是不会验证来源 IP ,只要知道整个路由的 IP 和端口,从其他任意主机都可以访问。但是,这东西安全性是所有 nat 类型里最差的,一些主打安全的路由器会禁止使用
|
7
xsourse 2022-09-07 12:28:54 +08:00
@hronro ROS 支持 fullcone 的,你在 IP - firewall - NAT 里面给你的 client 设置一个 src nat 到公网地址就好了
|
8
IAPYANG 2023-02-02 02:32:21 +08:00 via iPhone
@MonoLogueChi 所以意思是有限服务端口进行路由器转发就好,比如 zerotier 就开放 9993 出去,这样的话安全些,不知道理解的对不对
|