V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
git00ll
V2EX  ›  问与答

请教大佬们一个端口映射的网络问题

  •  
  •   git00ll · 3 天前 · 548 次点击

    光猫开启网络端口映射,将 wan 的 3000 端口转发到内网机器的 5000 端口上,qbittorrent 监听 5000 端口上。 在进行 p2p 下载时,其他人要连接我的 3000 端口才能与 qbittorrent 连接,但是 qbittorrent 本身并不知道这一层映射关系,因此它提交给 track 的是 5000 端口,这样别人通过 5000 端口肯定连接不进来。


    同理,docker 也有端口映射功能。如果容器内部监听 5000 端口被 docker 映射成宿主机的 3000 端口,那么容器内部的 qbittorrent 是不是也不能被外界主动连接,毕竟 qbittorrent 并不知道自己被映射成了 3000 端口了。


    qbittorrent 以及其他的基于 p2p 的软件是怎么解决这个问题的。
    最佳实践是不是端口都整成一样的,即光猫映射到宿主机,宿主机映射到 docker 内部,都使用同一个端口号这样最好呢。

    第 1 条附言  ·  2 天前

    经过沟通和查询一些资料,要想让bt软件连通性更好,可以尝试使用下面手段解决

    1. docker使用host模式,这样免去了一层nat更利于打通。不然在容器内部打洞是不行的。

    2. 配置路由器的端口转发到p2p软件的监听端口上,并且保持端口一致,同时注意机器防火墙要开放对应端口。

    3. 如果没办法配置路由器,可以开启软件和路由器的upnp功能。注意要在防火墙上放行来自于网关的udp包,不然upnp会不成功。

    11 条回复    2024-10-22 11:54:22 +08:00
    billlee
        1
    billlee  
       3 天前   ❤️ 1
    是同一个端口号最好。但是端口号不同,可能也能通过打洞来被外界访问,不过成功率肯定不如端口映射。
    javazero
        2
    javazero  
       3 天前   ❤️ 1
    端口要一样,不然别人用 qbit 汇报的端口是连不通的。
    1423
        3
    1423  
       3 天前   ❤️ 1
    愿意折腾: 使用 natter 获取公网端口后, 修改 qB 监听端口
    不折腾: qB 全局 ipv6 only 做种
    povsister
        4
    povsister  
       3 天前   ❤️ 1
    upnp ,让 qb 自己去打洞
    ysc3839
        5
    ysc3839  
       3 天前   ❤️ 1
    软件自己不解决这个问题,让用户去解决。
    是最好使用同一个端口,或者说软件本身监听的端口和最终暴露到公网的端口一致即可。
    git00ll
        6
    git00ll  
    OP
       3 天前
    @1423 可是修改了 qB 的监听端口,端口映射关系就对不上了。又回到了保持端口一直了
    git00ll
        7
    git00ll  
    OP
       3 天前
    @povsister 请问一下,如果是开了防火墙,upnp 能打洞成功吗,upnp 使用的端口可以指定不
    billlee
        8
    billlee  
       3 天前
    @git00ll upnp 是要在防火墙上运行一个 upnp 服务的,如果运行了,upnp 服务就会在收到请求的时候在防火墙上配置一条放行规则。(所以启用 upnp 服务其实不安全)放行了也就不需要打洞了
    d20240326
        9
    d20240326  
       3 天前
    两个端加入 DHT 或 tracker 可以知道 IP 和 port 不需要额外配置
    godall
        10
    godall  
       2 天前
    你需要的是端口敲门软件,knockd ,自己学习一下吧。
    git00ll
        11
    git00ll  
    OP
       2 天前
    @godall 与这个没啥关系,我只是想知道 p2p 软件解决端口映射问题是什么原理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2752 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:19 · PVG 08:19 · LAX 17:19 · JFK 20:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.