没有公网 IP 的不必迷信 Full-Cone NAT - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HawkinsSherpherd
V2EX    宽带症候群

没有公网 IP 的不必迷信 Full-Cone NAT

  •  
  •   HawkinsSherpherd 2024-12-16 14:12:38 +08:00 6241 次点击
    这是一个创建于 368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    其实有公网 IP 的也不用迷信 Full-Cone NAT ,有是不错,没有也不用强求。

    RFC 4787 ( Network Address Translation (NAT) Behavioral Requirements for Unicast UDP )中,定义了使语音,游戏等 UDP 应用正常工作的 NAT 行为要求:

    1. 必须使用 Endpoint-Independent Mapping 的 NAT 映射模式
    2. 建议以“对齐”的方式从 IP 地址池中分配 NAT 地址
    3. 不可为不同的内部 IP:端口组合复用同样的 NAT 地址:端口组合
    4. 建议 NAT 网关以奇偶对称的方式分配端口
      • 奇数的内部端口分配奇数的外部端口,反之亦然
    5. UDP NAT 映射关系的存活时间不可低于两分钟
      • 例外情况:一些运行在公认端口范围( 0-1023 )内的应用
    6. 必须要有出方向的 NAT 映射关系存活时间刷新机制

    Full-Cone NAT ( NAT 1 ),Restricted-Cone NAT ( NAT 2 )等术语的定义位于 RFC 3489 ( STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)) 中,它们都具有一个共同的特点:

    从 NAT 1 到 NAT 3 ,它们都将相同的内部 IP:端口组合映射到同样的外部 IP:端口组合上,无论访问的外部主机 IP:端口组合如何,符合 Endpoint-Independent Mapping 的定义。它们都满足使语音,游戏等 UDP 应用正常工作的第一则要求。

    而 Symmetric NAT ( NAT 4 ),理论和实践中都不满足使语音,游戏等 UDP 应用正常工作的要求:

    1. NAT 4 不对不同的外部主机 IP:端口组合复用 NAT 地址:端口组合,每发起对一个新的外部主机 IP:端口组合的通信都会生成一个不重复的 NAT 地址:端口映射,配合严格的过滤策略,使得隐藏在 NAT 4 之后的端点没有一个对除中转服务器之外的端点确定可用于外部主动连接的 NAT 地址:端口映射组合。
    2. NAT 4 严格的 NAT 过滤策略使现有的 NAT 映射关系无法被复用,即便服务器知道一个存在的外部端点,这个端点也只能给服务器用,不能给其它端点使用。

    有的朋友可能会说了,NAT 1 和 NAT 2 理论上也能和 Symmetric NAT 打洞 P2P 通信,所以 Full-Cone NAT 是有意义的:

    • Full-Cone NAT 的 NAT 映射关系全网可用,可以让 Symmetric NAT 背后的端点主动连接 Full-Cone NAT 的端点。

    • Restricted-Cone NAT 只要向 Symmetric NAT 的外部地址发送“敲门报文”(敲自己的门)建立本地的 NAT 映射关系,之后 Symmetric NAT 就可以连过来了。

    但这是规范之外的行为,只能与特定类型的用户打洞并不符合规范要求,无情地说,NAT 4 用户能不能打洞是不值得关心的,因为本来就不能。

    而且,Full-Cone NAT 具有一定安全风险:

    • Full-Cone NAT 的 NAT 映射关系全网可用,如果你使用的应用安全设计薄弱,一旦 NAT 映射关系暴露(攻击者攻击应用服务器,或是端口扫描),则你的主机可能遭遇攻击

    结论:如果只是个臭打游戏的,也没有公网 IP ,只要不是 NAT 4 ,日子都还过得去。

    34 条回复    2025-01-04 17:11:29 +08:00
    wtks1
        1
    wtks1  
       2024-12-16 14:15:23 +08:00
    但现在的网络都挺两极分化的,不是 nat1 就是 nat4 ,nat2 和 nat3 都没见过....
    HawkinsSherpherd
        2
    HawkinsSherpherd  
    OP
       2024-12-16 14:21:43 +08:00
    @wtks1 用 iptable 的路由器可能会有 NAT 3 ,因为 iptables 的 MASQUERADE 默认用 Endpoint-Independent Mapping 的 NAT 映射模式,而 iptables 的 NAT 过滤模式用的是 Address and Port-Dependent Filtering 。
    6a82aa9bfe
        3
    6a82aa9bfe  
       2024-12-16 14:35:16 +08:00 via Android
    @HawkinsSherpherd 也就是说 openwrt 默认 nat4
    lsylsy2
        4
    lsylsy2  
       2024-12-16 14:39:04 +08:00
    @6a82aa9bfe linux 不打补丁都是的,不过 openwrt 一般都有 upnp/nat-pmp 所以问题不大
    totoro625
        5
    totoro625  
       2024-12-16 14:47:08 +08:00
    OP 想表达的意思是:NAT2/3 略差于 NAT1 但是依旧能用,等同于有公网 IP ,只要不是 NAT4 就行 吗?
    HawkinsSherpherd
        6
    HawkinsSherpherd  
    OP
       2024-12-16 14:53:10 +08:00
    @totoro625 对了一半,没有公网 IP 就是没有,无论是 NAT 1 还是 NAT 3 ,都没有能让任意外网主机随时主动连接的端口,即便是 NAT 1 也要用些奇技淫巧。
    HFX3389
        7
    HFX3389  
       2024-12-16 15:07:46 +08:00
    说实话,我还没见过 NAT 2 和 NAT 3 ,而且一般来说网络管理都不会专门设置 NAT 吧,都是敲完命令通了就行,都是 NAT 4 。

    > 只要不是 NAT 4 ,日子都还过得去。

    但是只要是 NAT ,基本都是 NAT 4
    amyw495062
        8
    amyw495062  
       2024-12-16 15:09:09 +08:00
    所以专线才是最优解,家宽的公网迟早都要没
    amyw495062
        9
    amyw495062  
       2024-12-16 15:11:05 +08:00
    全广东联通现在新装没公网的应该基本都是入户 nat4 了,贴吧还有一群人舔着联通那 b 吃相,比移动贵还不如移动,移动好歹大部分还是 nat1
    totoro625
        10
    totoro625  
       2024-12-16 15:39:57 +08:00
    @amyw495062 #9 坐标江苏,两条移动,上传超过 200G 就掉 NAT4 了
    想想光是 iPhone 备份,每天备份超过 5G 很快就超限了
    amyw495062
        11
    amyw495062  
       2024-12-16 15:58:39 +08:00
    @totoro625 就算要这么执行也没办法,我们这边广东移动就还好,但也都是暂时的,谁知道以后呢,我们这都陆陆续续出现老用户电信和联通被回收公网的,虽然可以走投诉要回,但他们就是吃一个算一个,下一步电信移动估计也都是要学联通默认就直接入户 nat4 了,现在各大运营商为了应对 pcdn 只能一刀切
    bibiisme
        12
    bibiisme  
       2024-12-16 16:10:50 +08:00
    但是运营商现在不是 nat1 就是 nat4 啊
    jimao54
        13
    jimao54  
       2024-12-16 16:24:18 +08:00
    我也觉得我们大广东很快就三网集体 nat4 了
    titanium98118
        14
    titanium98118  
       2024-12-16 17:01:15 +08:00
    都公网 ip 了,nat 几不是自己说了算吗?
    titanium98118
        15
    titanium98118  
       2024-12-16 17:23:13 +08:00
    @titanium98118 #14 sorry ,标题看错了
    fengyaochen
        16
    fengyaochen  
       2024-12-16 18:21:07 +08:00
    公网 IP 运营商 QOS UDP 和 NAT4 没啥区别
    o0DoO0o
        17
    o0DoO0o  
       2024-12-16 18:25:42 +08:00
    楼上说不是 1 就是 4
    但我家就是 NAT3 ,换了个运营商也还是 3 ,是路由器拨号的
    路由器关系吗
    wtks1
        18
    wtks1  
       2024-12-16 18:26:45 +08:00   1
    @chouxw112233 #17 这种情况,你家应该是 nat1 的,只是路由器的关系才变成 nat3
    HawkinsSherpherd
        19
    HawkinsSherpherd  
    OP
       2024-12-16 18:29:22 +08:00 via Android
    @wtks1 确实,我之前用家用路由器拨号是 NAT 1 ,换成 ER-X 之后就是 NAT 3 了。
    frankilla
        20
    frankilla  
       2024-12-16 19:36:58 +08:00
    公网 IP+full nat 。没感觉有啥用啊,我也不玩什么联机游戏。
    gaju
        21
    gaju  
       2024-12-16 20:11:10 +08:00
    自从有了收割机 ipv6 ,这些上古牛耕马犁 nat 碰都不碰了
    datou
        22
    datou  
       2024-12-16 20:57:13 +08:00
    f-nat 也不耽误运营商限制 UDP
    TESTFLIGHT2021
        23
    TESTFLIGHT2021  
       2024-12-16 21:47:32 +08:00
    现在智能 QOS ,管你 NAT 几
    MFWT
        24
    MFWT  
       2024-12-16 22:07:15 +08:00
    > 即便是 NAT 1 也要用些奇技淫巧

    我就是奇技淫巧用户,打洞之后用 TCP 直连(具体来说是 Shadowsocks UoT + tun2socks ),因为没有了 UDP 限制,比 UDP 打洞体验好太多
    ZE3kr
        25
    ZE3kr  
       2024-12-16 22:12:47 +08:00 via iPhone
    我用的 Google Fiber 是 NAT Type 2
    ZE3kr
        26
    ZE3kr  
       2024-12-16 22:17:21 +08:00 via iPhone
    测了一下发现蜂窝网络也是 NAT 2
    lns103
        27
    lns103  
       2024-12-16 22:48:31 +08:00
    别的都好说,走服务器 frp 中转,走 ipv6 等,但是 BT/PT 下载做种确实需要一个开放的 v4 端口,有 Full Cone NAT 就还有救
    qwvy2g
        28
    qwvy2g  
       2024-12-17 09:55:24 +08:00
    NAT 行为按照 RFC5780 定义分成出站映射和入站过滤两个部分。Endpoint-Independent Mapping 无论外部主机的目的 IP 和目的端口是什么,只要源 IP 和源端口相同,NAT 都会将所有出方向的报文转换为相同的端口映射出去。Endpoint-Independent FilteringNAT 检查入方向目的 IP 和目的端口时,不关心外部主机的源 IP 或源端口值。按照 RFC5780 定义 Ful Cone NAT=EIM+EIF 。nat 出战和入站策略各有三四种,比如 restricted cone NAT=EIM+ADF ,PortRestrictedCOne=EIM+APDF 。这种分开的设置可能在企业出口的防火墙设备上可能会有,普通企业路由器和家用路由器没有这种功能。
    ZardCzz
        29
    ZardCzz  
       2024-12-17 11:21:56 +08:00
    @amyw495062 广东联通吃相太难看了,之前的 NAT1 偷偷改成 NAT4
    amyw495062
        30
    amyw495062  
       2024-12-17 11:38:24 +08:00
    @ZardCzz 最搞笑的是联通无论怎么搞,也会有一群人无脑捧联通,都已经变成这种烂货了,广东还有一群人推荐装联通,比移动贵还比移动烂也还好意思说联通便宜好用,联通有底气这么搞也就是因为有着这么一群舔狗用户
    thereone
        31
    thereone  
       2024-12-17 21:11:16 +08:00
    有 NAT1 会好多了,我就是 nat1 然后用 lucky 打洞加 cloudflare 302 跳转直接就可以输入自己的域名访问搭建的服务。直连访问效果比中转好太多。
    txydhr
        32
    txydhr  
       2024-12-18 09:23:03 +08:00 via iPhone
    @amyw495062 你自己不装不就行了,对面可能连真人都不是
    lock361
        33
    lock361  
       350 天前 via Android
    @amyw495062 联通确实是烂货,新装宽带直接给 nat4 ,联机游戏根本玩不了
    amyw495062
        34
    amyw495062  
       349 天前
    @lock361 反正广东肯定是电信最后烂的,现在来说,无论有公网没公网,广东家宽依然是电信首选
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     966 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 18:54 PVG 02:54 LAX 10:54 JFK 13:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86