光猫开启网络端口映射,将 wan 的 3000 端口转发到内网机器的 5000 端口上,qbittorrent 监听 5000 端口上。 在进行 p2p 下载时,其他人要连接我的 3000 端口才能与 qbittorrent 连接,但是 qbittorrent 本身并不知道这一层映射关系,因此它提交给 track 的是 5000 端口,这样别人通过 5000 端口肯定连接不进来。
同理,docker 也有端口映射功能。如果容器内部监听 5000 端口被 docker 映射成宿主机的 3000 端口,那么容器内部的 qbittorrent 是不是也不能被外界主动连接,毕竟 qbittorrent 并不知道自己被映射成了 3000 端口了。
qbittorrent 以及其他的基于 p2p 的软件是怎么解决这个问题的。
最佳实践是不是端口都整成一样的,即光猫映射到宿主机,宿主机映射到 docker 内部,都使用同一个端口号这样最好呢。
经过沟通和查询一些资料,要想让bt软件连通性更好,可以尝试使用下面手段解决
docker使用host模式,这样免去了一层nat更利于打通。不然在容器内部打洞是不行的。
配置路由器的端口转发到p2p软件的监听端口上,并且保持端口一致,同时注意机器防火墙要开放对应端口。
如果没办法配置路由器,可以开启软件和路由器的upnp功能。注意要在防火墙上放行来自于网关的udp包,不然upnp会不成功。
1
billlee 30 天前 1
是同一个端口号最好。但是端口号不同,可能也能通过打洞来被外界访问,不过成功率肯定不如端口映射。
|
2
javazero 30 天前 1
端口要一样,不然别人用 qbit 汇报的端口是连不通的。
|
3
1423 30 天前 1
愿意折腾: 使用 natter 获取公网端口后, 修改 qB 监听端口
不折腾: qB 全局 ipv6 only 做种 |
4
povsister 30 天前 1
upnp ,让 qb 自己去打洞
|
5
ysc3839 30 天前 1
软件自己不解决这个问题,让用户去解决。
是最好使用同一个端口,或者说软件本身监听的端口和最终暴露到公网的端口一致即可。 |
8
billlee 30 天前
@git00ll upnp 是要在防火墙上运行一个 upnp 服务的,如果运行了,upnp 服务就会在收到请求的时候在防火墙上配置一条放行规则。(所以启用 upnp 服务其实不安全)放行了也就不需要打洞了
|
9
d20240326 30 天前
两个端加入 DHT 或 tracker 可以知道 IP 和 port 不需要额外配置
|
10
godall 30 天前
你需要的是端口敲门软件,knockd ,自己学习一下吧。
|