V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FaiChou
V2EX  ›  程序员

docker 跑的 qb 内部监听端口没有映射别人是怎么连接的?

  •  
  •   FaiChou ·
    FaiChou · 32 天前 · 1551 次点击
    这是一个创建于 32 天前的主题,其中的信息可能已经有所发展或是发生改变。

    qb

    这个 qb 运行在 docker 容器内,网络模式是 bridge ,映射的端口是 68818085,但后来在 webui 中将监听端口改为随机的 56181,开启了 UPnP/NAT-PMP 。

    qb settings

    但经过我的测试,做种和上传是正常的。而且这个上传不是在下载的时候上传的,下载完成后,第二天也有上传。

    所以我不明白,56181 端口没有映射出去,外面是怎么连接进来的?即使是 UPnP ,也只是开了个端口,没有 docker 的映射,也进不来。

    有没有大佬指点下。

    第 1 条附言  ·  15 天前
    Symmetric NAT 的映射规则限制了多目标通信,但单目标通信没有问题,毕竟它还是 NAT 。在 Symmetric NAT 和 Full Cone NAT 的组合下,单目标的 P2P 连接是完全可行的。像 qb 以及其他常见的 PT 客户端,会定期让连接一下 tracker 中的其他 peers (向 Tracker 服务器发送 Announce 请求)。Tracker 服务器根据这些状态,返回一个 Peer 列表。客户端会尝试与这些 Peer 建立连接。
    这个过程为创建了 NAT 映射,即使是 Symmetric NAT ,通过主动连接 peers ,其他 peers 也可以通过这个映射与你通信。
    9 条回复    2024-11-01 16:45:47 +08:00
    loveqianool
        1
    loveqianool  
       32 天前 via Android
    容器开 ipv6 了吗?默认是不拦 ipv6 。
    FaiChou
        2
    FaiChou  
    OP
       32 天前
    @loveqianool 不清楚,我是在极空间的 docker 里装的 qb ,默认没改过别的配置。我看 qb webui 用户栏都是 v4 的地址,没有 v6 。
    xixka
        3
    xixka  
       32 天前
    udp NAT1 可以穿透出去
    普及帖子 https://github.com/XTLS/Xray-core/discussions/237
    FaiChou
        4
    FaiChou  
    OP
       31 天前
    @xixka 这就是我不理解的地方,xray-core 实现 fullcone 是在 VPS 上将 udp 端口进行映射。也就是说,我本地端口映射到外部的机器上,这台机器是跑在外面的。

    但是 docker 容器( bridge 模式下)内被 docker0 网络桥接,属于封闭的网络。里面开 UPnP/NAT-PMP 这种也起不到任何作用,因为外面连接容器内部,必须要经过 veth paire -> docker0 。

    也就是说,要想实现 xray 这种穿透,需要有一台外面的机器跑一个映射服务,容器内的程序主动连接这个服务然后进行映射打通。

    所以会不会是 qb 这种 p2p 程序搭配 tracker url 给做了这种打洞映射服务?但感觉也不太可能。有点疑惑。
    huihuimoe
        5
    huihuimoe  
       31 天前 via iPhone
    你没有公网,别人有公网
    这种情况就是你主动连对方并上传
    FaiChou
        6
    FaiChou  
    OP
       31 天前
    @huihuimoe “我主动连接对方”,我是怎么知道对方要上传的?我怎么知道对方的 ip ?
    huihuimoe
        7
    huihuimoe  
       31 天前 via iPhone
    @FaiChou 你猜 tracker 是干嘛的……
    不就是记录 torrent 的用户表嘛
    FaiChou
        8
    FaiChou  
    OP
       31 天前
    @huihuimoe #7 tracker 服务器记录着"我可以上传",但想找我下载的用户怎么找我连接?难道是 tracker 里面记录着所有想下载的用户,我每隔段时间就和他们主动链接一下?这样就顺着我的连接下载了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5633 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:33 · PVG 09:33 · LAX 17:33 · JFK 20:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.