Bitcomet端口阻塞解决方案
前言
想必大家都有过用Bitcomet或者qBittorrent下载文件的经历,受限于🟠端口堵塞,只能望着几KB每秒的下载速度发愁😭。如果没有见过光明,我本可以忍受黑暗by艾米莉·狄金森,但正因为我体验过无端口阻塞时的下载速度,所以这几KB每秒的速度我忍无可忍😡。在翻遍有关的论坛和博客之后,终于实现了🟢端口开放,乘着记性还好的时候记录一下过程,以备将来能够快速复现(其实备不了一点,电信改一下接口可能就直接烂掉了),当然能帮到你就更好了😀。
分析
以下记录偏向个人理解,难免出现不准确或错误的地方,有误之处恳请指出,需要实践直接跳转下一节。
为什么端口阻塞会影响下载速度
官网描述:当🟠端口堵塞时,你目前的网络处于内网状态。处于内网状态下,下载时用户列表中无法进行远程用户连接,可通过创建防火墙规则和映射端口解决此问题。
那么直观理解就是,在🟠端口堵塞的情况下,你的设备与其他BT客户端之间的直接通信被限制了。首先我们知道,BT下载是一种P2P的下载协议,也就是说你的下载内容大部分来源于其他已下载用户对内容的分享,同时你也需要对已下载的内容进行上传分享。此时你的下载速度很大程度取决于这个资源的热门程度,资源越热门,用户数量越多,上传分享的速度也就越快,此时你的下载速度就越快。但无论资源热门与否,处于🟠端口堵塞的情况下你与其他用户的连接都会被限制,这就导致你的下载速度会非常慢。
一些真相:一些久远的资源基本上都下不动,因为根本没人分享。因为容易出现下载完了就跑路的现象,导致你只上传了1G的资源量,却下载了10G的资源,所以一般下到99%会卡住你(但早期迅雷以此点逼迫你氪金),人人为我为人人。迅雷用户与普通BT客户端建立连接吸取下载速度,同时上传分享时只分享给其它迅雷用户,所以被称之为吸血雷。
IPV4与公网IP
IPV4地址由32位2进制数构成,理论上可以提供42.28亿个不同的地址,用于区分互联网上的设备,也就是俗称的公网IP。在实际使用中,我们按照每8位转成十进制数,也就是4个0-255的数字来表示IPV4地址,这其中,有一部分IP地址因为特殊用途而被保留,例如192.168.0.0——192.168.255.255。所以实际能用作区分互联网上的设备的IPV4地址仅有36.47亿个,而全世界大概80亿人,所以可想而知,每个人都能拥有一个IPV4地址是不可能的,而实际上早在2011年IPV4地址资源早已枯竭。
共享公网IP与端口阻塞
这36.47亿中,我国仅持有3.9亿,而美国约持有15亿,所以国内运营商基本上不会给你分独立的IPV4公网地址,一般是通过NAT技术让多个用户共享同一个公网IP。这也是问题所在,如果你的网关设备上显示的IPV4地址并非是你的真实公网IP地址(如下图),而是上一级网关给你分配的地址,这就说明此时你的网关和其他用户共用一个公网IP,多个设备通过一个公网IP与外界通信。
而此时由于公网IP是共享的,外部设备(如BitComet的对等端)无法直接将流量发送到你设备的私有IP地址。P2P软件(如BitComet)需要特定的端口号保持与对等端通信。由于端口未被明确映射到你的设备,外部连接请求会被丢弃,导致端口阻塞。此时即便我们按照教程
添加端口映射规则,但我们的网关处于内网环境(双重NAT),这导致在我们的本地网关上配置的端口映射规则在上一级网关并不会不作用,端口阻塞问题仍然存在。(究其原因就是你不能修改位于你上一级的运营商的网关来添加映射)
IPV6
在IPV4地址枯竭的当下,IPV6技术被顺势推出,它由8组4位16进制数组成,理论上可以提供3.4✖10^38个地址,足以为地球上的每一粒沙子都分配各自的独立IP,但在互联网由IPV4主导的当下,IPV4与IPV6无法直接互通,所以IPV4被IPV6地址取代是一个漫长的过程。(可以参考bilibili原AV视频号被现在BV视频号取代过程,其实本质相同)
此时假如我们的网关支持IPV6,我们只需要启用IPv6,就可以绕过NAT的限制,因为IPv6网络不需要NAT,设备可以直接对等通信。还记得在IPV4地址中,由于公网IP数量有限,导致我们不得不共享公网IP,在一个网关下有多个设备,此时我们通过NAT端口映射将发送至同一公网IP的数据包分发给该公网IP对应网关下的不同设备。而在IPV6中,每个设备都有各自的IP地址,无需通过NAT进行映射即可实现端到端连接,直白地说,你设备的IPV6地址一定是公网IP地址。
解决方案
经过前面的分析之后,我们就可以着手进行操作了。
IPV4解决方案
打电话给你运营商,让他给你改成公网iP就行了。
其实这三种情况都可能出现,在公网IP资源紧张的当下也很合理,所以很难指责运营商。如果顺利完成修改,只需要按照教程进入网关管理页面与计算机设置添加端口映射规则即可。
IPV6解决方案
但如果改不了IPV4,怎么办?这时我们只需要打开网关设置中的IPV6,就可以实现🟢端口开放。在前一节的分析中,我们提到,IPV6地址就是公网地址(因为一点也不紧张,所以运营商随随便便就分给你了)。
前提准备
本教程以苹果设备为例,通过抓包获取超级管理员密码(安卓版本的抓包教程大同小异,只需要修改请求主体。)
首先在IOS设备上下载两个软件:
- Stream
- 小翼管家
需要先配置好Stream的HTTPS抓包,安装CA证书(此部分自行百度,不做赘述,懒得写)。
登陆好小翼管家app并绑定网关设备。
抓包获得超级管理员密码
1.此时打开Stream抓包软件点击开始抓包
2.打开小翼管家,进入网关页面,点击进入网关设置,点击开启或关闭指示灯,重复几次此操作。
3.回到Stream抓包软件,通过抓包历史找到请求域名包含189的内容点击进入,点击右上角向上的箭头,选择编辑重放请求,此时会来到新的页面,在请求页面最下方点击进入请求体。
4.进入请求体,选择原始数据,将原有的请求体删除,粘贴新的请求体,并执行请求。
1 | { |
5.执行上一步的请求后,会自动跳转到响应页面,点击进入响应体,在新页面中可以查看超级管理员密码,为telecomadmin+一串数字。
这样我们就成功得到了超级管理员密码。
登陆到网关后台开启IPV6
拿到超级管理员密码后,进入天翼网关后台管理登录页面:192.168.1.1
注:以下操作存在风险,若导致不能上网,请按已进行的操作进行回退,在操作前请记录原有的网络设置。
输入后点击登陆,会进入网关的超级管理员后台,点击网络→网络设置→新建WAN连接,选择方式桥接,IP模式选择IPv4&IPv6,如图所示。完成设置后点击添加,即可新增新的网络设置。此时已成功打开IPv6!
最后一步:关闭网关的IPv6防火墙,点击安全→防火墙→取消勾选IPv6 SESSION。
若出现问题,或需要关闭IPv6,请按照已进行的操作对新增的网络设置进行删除。
打开计算机的IPV6属性
完成以上全部操作后,就只需要打开你电脑的IPV6(打开对应网卡的IPV6属性),然后断网重新连接一下即可。
补全操作
若完成以上步骤仍不可实现🟢端口开放,可以尝试按照教程为计算机设置添加防火墙规则即可。若网关与计算机之间仍有一个路由器,则需要对路由器的IPV6防火墙也进行关闭。
若有其他运营商的光猫,可以前往此论坛寻找超级密码的获取方式。
总结与可能存在的问题
总结
通过以上步骤肯定能实现🟢端口开放,尽情享受高速下载的快乐!