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

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

  •  
  •   FaiChou ·
    FaiChou · 4 天前 · 834 次点击

    qb

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

    qb settings

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

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

    有没有大佬指点下。

    9 条回复    2024-11-01 16:45:47 +08:00
    loveqianool
        1
    loveqianool  
       4 天前 via Android
    容器开 ipv6 了吗?默认是不拦 ipv6 。
    FaiChou
        2
    FaiChou  
    OP
       4 天前
    @loveqianool 不清楚,我是在极空间的 docker 里装的 qb ,默认没改过别的配置。我看 qb webui 用户栏都是 v4 的地址,没有 v6 。
    xixka
        3
    xixka  
       4 天前
    udp NAT1 可以穿透出去
    普及帖子 https://github.com/XTLS/Xray-core/discussions/237
    FaiChou
        4
    FaiChou  
    OP
       4 天前
    @xixka 这就是我不理解的地方,xray-core 实现 fullcone 是在 VPS 上将 udp 端口进行映射。也就是说,我本地端口映射到外部的机器上,这台机器是跑在外面的。

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

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

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