mooyo

不懂就问,关于 NAT 打洞

  •  
  •   mooyo · Mar 16 · 3164 views
    This topic created in 82 days ago, the information mentioned may be changed or developed.

    不太懂网络 NAT 的原理。

    如果是对称型 NAT ,假设有两台主机 A 和 B

    A 有公网 IPv4 没有 IPv6 ,B 只有一个 NAT IP, IPv4 NAT OUT. IPv6 NAT IN.

    现在我希望让 A 通过这个 NAT OUT 的 IP 连接到 B ,但是又不太能通过反向连接的方式实现。也就是常见的内网穿透,因为一些网络审计的原因,从 B 到 A 没法走加速包加速,丢包严重,但是从 A 到 B 是有加速包的。

    这种情况下有可能让 B 打个洞出来让 A 主动连接么?

    15 replies    2026-03-21 21:26:04 +08:00
    kirafreedom
        1
    kirafreedom  
       Mar 16
    我家里网络就是内网 ipv4 ,用 stun 穿透打开一个 ipv4 公网端口,在外面通过这个端口回家
    mooyo
        2
    mooyo  
    OP
       Mar 16
    @kirafreedom 我知道 NAT1 ,2 可以这样做,但是 NAT4 也行么?
    basncy
        3
    basncy  
       Mar 16
    能跑通的第一个包是从 B 到 A ,可以再开个贴先解决审计丢包问题。
    totoro625
        4
    totoro625  
       Mar 16
    @mooyo #2 NAT4 只能靠猜测,历遍端口进行碰撞,参考: https://github.com/MikeWang000000/n4
    yiranw09
        5
    yiranw09  
       Mar 16
    对称型 NAT 要怎么打洞?
    靠猜吗...
    lmmir
        6
    lmmir  
       Mar 16
    还有就是走 upnp
    cmj2010
        7
    cmj2010  
       Mar 16
    To hit a 99.9% chance of success, we need each side to send 170,000 probes. At 100 packets/sec, that’s 28 minutes of trying before we can communicate.
    source: https://tailscale.com/blog/how-nat-traversal-works
    v2er119
        8
    v2er119  
       Mar 16
    B 提供 SSH Server
    wanghanthu
        9
    wanghanthu  
       Mar 16
    @yiranw09 UDP 可以靠穷举,TCP 估计是不现实了
    superkkk
        10
    superkkk  
       Mar 16
    要不让 b 连 a 开个 ssh 隧道?
    n43635
        11
    n43635  
       Mar 17
    B 开 ssh 服务器,通过 frpc ( A 做服务端,B 做客户端)等将 ssh 端口映射到 A 上,A 再通过映射的 ssh 端口连接 B ,必要时可以使用 ssh 隧道
    yulgang
        12
    yulgang  
       Mar 17
    @n43635 本质还是 B 连 A ,用不到加速包
    Ipsum
        13
    Ipsum  
       Mar 17 via Android
    B 需要至少主动向 A 发送一次数据,不然防火墙不会连接映射。如果只要是 B 主动发起的都吃不到加速包,那基本上可以放弃了。
    dream2cast
        14
    dream2cast  
       Mar 18
    NAT4 打洞在 EasyTier 中有个选项可以禁用的,不禁用的话,纯靠猜。NAT4 还有个 EasyInc 的类型,好像有规律,容易猜中一点。
    flynaj
        15
    flynaj  
       Mar 21 via Android
    看你 b 的 Nat 等级。fullclone 可以,目前只有 EasyTier 可以实现,你自己下载测试一下,可以配合 Natmap.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2888 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    ♥ Do have faith in what you're doing.