请教大佬们一个端口映射的网络问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git00ll
V2EX    问与答

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

  •  
  •   git00ll 2024-10-21 20:02:12 +08:00 1816 次点击
    这是一个创建于 440 天前的主题,其中的信息可能已经有所发展或是发生改变。

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


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


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

    第 1 条附言    2024-10-22 12:01:53 +08:00

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

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

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

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

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