比特彗星 常见问题的收集与解决

磁力链接长度问题

问:为什么从彗星中复制出的磁力链接为什么这么长?

答:从比特彗星中复制的磁力链接包含完整的tracker服务器所以链接显的很长,可以手动删除tracker

问:如何删除?

答:删除“&”连字符后面的部分

magnet:?xt=urn:btih:BV4HXRG6RNET5KFCNTZRXCOYVE4RQNDU&dn=%5B%E6%A1%9C%E9%83%BD%E5%AD%97%E5%B9%95%E7%BB%84%5D%5B190906%5D%5B%E3%83%A1%E3%83%AA%E3%83%BC%E3%83%BB%E3%82%B8%E3%82%A7%E3%83%BC%E3%83%B3%5D%E5%B0%91%E5%A5%B3%E6%95%99%E8%82%B2RE%20%E7%AC%AC2%E8%A9%B1%20%E7%99%BD%E7%9F%B3%E9%82%A3%E5%A5%88%E3%81%A8%E9%81%8E%E3%81%94%E3%81%99%E6%97%A5%E3%80%85&xl=430796618

问:如何设置在复制磁力链接的时候不包含tracker服务器?

答:在高级设置中找到 ui.copy_magnet_with_tracker 改成 否 这样复制磁力时就不会包含tracker服务器了


参考与转载:

磁力链接格式问题

问:磁力链接为什么有两种不同的格式?/使用磁力链接向彗星添加任务后再复制出的磁力链接会发变化




答:只是表示方法不同而已,表示的内容都是相同的SHA-1散列

全部大写的是由base32编码表示的
而小写的则是使用十六进制表示的

问:为什么有些软件/网站不识别使用base32编码的磁力链接?

答:虽然使用base32编码和十六进制表示都是符合要求的,不过似乎十六进制用的更加广泛
有些软件/网站可能只对十六进制进行了适配

我们可以使用在线工具将base32编码格式转换成16进制格式



转载与参考

感谢分享
http://wiki.bitcomet.com/ 这是官方教程,官方都有超级详细的教程的,可以看一下教程页面,里面任何资料都有,也可以去官方论坛看网友的教程

英文wiki的内容是挺全的,可惜中文版似乎已经很久没更新了
部分内容指向英文版彗星论坛,不过英文论坛现在好像也无法访问了

磁盘提速服务问题



问:磁盘提速服务出现 未安装\拒绝访问\其他错误 该怎么办?

答:磁盘提速服务有异常,可以通过重新安装服务来解决
通常在彗星启动的时候会检查提速服务状态,若有异常会弹出通知提示修复

问:服务有异常 但没有弹出通知

答:这可能是Windows阻止BC弹出通知,需要在通知中心进行设置

打开开始菜单 点击账户头像下的齿轮进入 设置

在Windows设置中选择 系统

侧边栏选择通知和操作

确保 获取来自应用和其他发送者的通知 开关打开

继续往下 找到比特彗星的通知控制开关 设置为开

重启比特彗星 右下角应会弹出通知

点击通知 提示修复服务 选择 是

提速服务已在运行




引用与参考:

用户列表显示问题

问:用户列表不刷新了\一片空白

答:应该是按到了键盘上的 Scrll Lock键 即滚动锁定键
再按一次即可恢复刷新
一般用于 暂停列表更新以方便查看用户信息


参考与引用:

百度百科:滚动锁定

mark一下,等一个绿灯问题。
自己折腾了好久还是黄灯,但是实在不想做一个只下载不上传破坏社群环境的人,确实需要一个比较简单易懂的教程来让我这种电脑白痴都可以按步骤操作一下。

2個讚

截图和评论显示问题

问:评论和截图无法显示该怎么办?

答:评论和截图无法显示可能由多方面的原因造成,要具体情况具体分析
这里分为 软件问题网络问题 两大类

软件问题部分


问:打开评论和截图显示以下内容

答:未安装WebView2 造成的

问:WebView2 是什么?为什么之前的版本不需要?

答:

v1.99 Beta1 [20230222]
界面改进:增加深色模式,默认跟随系统设置,可在主窗口查看菜单切换(需 Win10 1809 或更高版本)
界面改进:任务截图及任务评论改为使用WebView2显示界面(需 Win7 或更高版本,若系统缺少相关组件可自行安装)
界面改进:左下角通行证页面改用WebView2显示界面
界面修正:磁链任务下方没有显示截图
核心改进:任务截图及任务评论改用新的传输协议
核心改进:任务截图增加本地缓存,避免每次显示重新下载
核心修正:UDP tracker缓存数据没有及时清理,导致程序退出时卡顿
核心修正:RSS自动下载器关键字为空时,应允许下载

在v1.99 Beta1 之后 任务截图及任务评论改为使用WebView2显示

WebView2 可以简单的理解为一个简易的 Edge 浏览器 api,任务是替代老旧的IE浏览器api来显示网页
在v1.99 Beta1之前 评论、截图、通行证 都是通过旧的IE浏览器api显示的

更新后默认使用WebView2,在Windows10 或更高版本的Windows中已经预装了WebView2 (就像以前的IE一样)
而在Windows7 中需要自行安装

点击第一个链接即可下载 WebView2 的在线安装程序 链接

如果网络不好无法通过线安装程序下载,看尝试使用离线安装程序 链接


如果连不上微软的网站 这里还准备了网盘下载地址: 阿里云盘下载
(本来想用磁力链接来分享的,但考虑一下可靠性还是用了网盘)

下载并运行安装程序,在安装向导的指引下即可完成安装
安装完成后重新BC或电脑即可

问:我已经安装了WebView2\我无需安装,评论、截图显示为一片空白
也没有任何提示或报错


答:这可能是WebView2 控件没有及时创建造成的,应该算是1.99版本一个小bug 2.0预览版好像已经修复了
在1.99版本下可以通过重启BC的方式来解决

或者取消勾选 始终显示 右键评论或截图选项卡弹出此菜单

1.99正式版开始windows10下如果启用始终显示选项卡会无法显示截图
image
未选中BT任务的时候,点击了截图选项卡,灰屏无法加载出来,后续点击BT任务在点截图也没用,必须重启软件了



网络问题部分

问:评论、截图区出现报错\白屏仍然存在

答:这应该是网络问题造成的

问:如何解决

答:先从dns问题开始排查

问:dns是什么?改如何操作?

不想看原理也可以直接跳到后面的操作部分

答:简单来说dns就是将好记忆的域名和不好记忆的ip地址联系起来的东西
(这里只是简单讲一下,实际过程更加复杂,看不懂也没关系,知道这个东西比较重要即可)

#这是百度的域名
www.baidu.com
#这是百度的IP
180.101.50.242

我们访问百度的时候再浏览器里输入 百度的域名
但是电脑不能从这个域名直接连接百度的服务器,要使用ip地址才行
但很显然这个域名里并没有包含ip
这时就需要dns服务器了,将域名变成(解析为)ip

电脑会向DNS服务器发起请求,询问 “www.baidu.com”对应的ip地址,
不出意外的话,DNS服务器会告诉你百度的ip,有了ip就可以连百度的服务器了
如果在这个过程中出现了问题,比如返回的ip是虚假或错误的(DNS污染、劫持)
那就无法正常访问了

截图和评论区就相当于一个网页,想要正常显示也需要经过上述的过程

问:我大概理解了,我们需要让电脑知道评论和截图服务器的ip地址,但用来通过将域名变成(解析为)ip的dns存在问题,导致无法获得正确的ip从而显示评论和截图?

答:是的

问:有方法跳过dns服务器直接让电脑知道域名对应的IP地址吗?

答:有方法,通过修改host 文件实现

问:host文件有又是什么?

答:简单来说 host 文件用于记录 域名和ip的对应关系,如果在这个文件中记录了某个域名和ip的对应关系 那么系统就会跳过dns查询,直接使用文件中的记录

相当于直接告诉电脑某个域名对应的ip地址

问:这样说来,我可以将任意的域名和IP地址对应在一起,甚至可以吧百度的域名对应上QQ的ip地址?

答:是的,可以这么做

问:不过如果电脑通过dns无法获得正确的IP地址,修改host文件需要填写上正确的ip,我该如何或者获得这个正确的ip从而告诉电脑呢?

答:可以通过在线dns查询工具获得,建议选择国外的

问:我现在大概理解了,但具体的操作要怎么做呢?



操作部分

答:要先确定dns存在问题,如果dns是正常的就不需要修改了

已知 截图、评论和通行证使用以下这些域名

passport-client.bitcomet.com
#彗星通行证的域名

www.xytalk.net
#评论使用的域名

www.fileshot.net
image.fileshot.net
#截图使用的域名

先通过系统自带的查询功能进行查询IP

同时按下win 和R键 弹出运行

输入cmd 点确定 弹出命令提示符 窗口


输入 nslookup 并加上想要查询的域名

例如

nslookup passport-client.bitcomet.com

输入后回车 查看查询结果

这就是本地查询得到的结果,下面使用在线工具进行查询

输入域名 并查询

查看结果

其他的几个域名也是同样的做法


比较两种查询得到的IP地址 如果一致则dns没有问题
如果不一致则说明存在问题 可以通过修改host文件来解决

(此部分来自 像素帝 的教程

搜索“记事本”,右键,以管理员身份运行

点击【文件→打开】

选择显示【所有文件】

选中【C:\Windows\System32\drivers\etc\hosts】,点击【打开】

注意,如果C:\Windows\System32\drivers\etc 中没有hosts文件 请手动创建,右键空白处>新建>文本文档>重命名为hosts 并删除 .txt 扩展名

在 host 文件添加以下文本:

38.242.234.0 passport-client.bitcomet.com
65.109.165.230 www.xytalk.net
65.109.172.8 www.fileshot.net
65.109.172.8 image.fileshot.net

注意,服务器的IP可能会发生变化,请以在线工具查询的结果为准



DNS 部分排查到此结束


问:通过刚才的操作后依然无法显示,该怎么办?

答:如果排除了DNS问题,那有可能是IP被阻断了,也可能是提供截图和评论的服务器本身存在问题

问:如果IP被阻断了该怎么做?

答:这种情况下就需要挂代理了

问:如何设置?

答:可以在彗星内设置代理服务器

勾选 使用代理显示网页将代理用于其他网络流量
这样显示截图和评论时会通过代理服务器来连接,以防止直接连接时被阻断

推荐使用socks5协议 这样可以 可以勾选 使用代理服务器进行 DNS 查询
勾选后 DNS查询也会通过代理服务器,防止直接查询时受到污染或劫持

问:如何获得代理服务器

答:提供几个关键词 “v2rayN” “Clash for Windows”
代理服务器的搭建和选择请自行探索

使用免费节点进行连接教程:



参考和引用:

开启专家模式

高级设置中 启用专家模式,搜索system.enable_expert_mode,选中是,并且启用

问:开启专家模式有有什么用?

答:开启专家模式后可以显示更多信息,方便诊断

问:有哪些较为常用的调试信息?

答:

长效做种信息

此时任务栏上点击右键,即可打开”长效种子上传“标签

或者左侧点击长效做种,也可以看到完整的列表

用于观察哪个\(些)任务在进行长效上传

详细内存占用

可以查看内存占用的细节,用于内存占用过高时的诊断

UDP传输量

一般用于确定网络发生断流时哪一项发送了过多的UDP包


参考和引用:

元数据获取问题

问:一直显示等待元数据文件下载中

QQ图片20220912074734

答:点立即下载即可,获取元数据需要一些时间,获取后会开始下载。

问:部分任务获取到了,但是还有一些任务 等待元数据文件下载中

aa6df715e0cf3774b717715322f78b9c_8ef7b710eb613c8f375673e2d2484990f11725ee_2_690x286

答:请尝试重启任务,即暂停任务后再开始,BC下载元数据时似乎不支持断点续传,即必须从一个用户那里完整的获取到元数据,不能从多个用户获得一部分后再拼接起来
重启任务可以加快重试,应该可以提高下载元数据的成功率

问:重启过任务后又有一些获取成功了,不过还是有获取不到的

答:可以通过在线工具来获取种子

在btsow用磁力转换成种子是比较方便的

将磁力复制到剪贴板后直接粘贴即可

获取成功后会来到详情页面

点击中间的按钮下载 种子文件
会跳转到 btcache.me

输入验证码后即可进行下载

缺点是 btsow的网址会频繁更换 可能需要代理才能访问
网址发布页:

问:btsow似乎是通过调用 btcache.me 来进行种子获取的,为什么不直接使用 btcache.me来下载种子?

答:对,因为btsow可以直接使用磁力,而直接在btcache.me下载只能使用特征码并且有格式要求
(相当于btsow在调用btcache.me时对输入的磁力进行了一次转换)


只能使用16进制哈希即特征码 并且全部字母要大写(使用URL链接下载时必须全部大写)

问:如何直接在 btcache.me 下载种子?

答:先在BC中选择无法获取元数据的任务,右键弹出菜单 选择复制> 特征码v1

粘贴特征码并点击下载

若获取成功会和之前一样跳转到下载界面

也可以去 https://itorrents.org/ 看看不需要填写验证码 但下载起来稍微复杂一些

问:这些网站都在国外访问起来比较麻烦,有没有使用软件获取的方法?

答:有,可以使用其他的客户端进行来获取,完成后再由BC下载,比如迅雷

问:迅雷?迅雷不是吸血客户端吗?

答:是的,可能除了迅雷极速版和远古版本的迅雷外,相对较新的版本都是吸血的
不过这里我们要利用迅雷来获取元数据,确切的来说是利用迅雷的服务器来下载元数据

具体的操作已经有人做过教程了

此部分 来自像素帝的 教程




问:如果用了这么多方法还是没办法获取要怎么办?

答:如果尝试了上述所有的方法还是无法获取元数据的话,建议更换种子,这个可能已经是个死种了
当然也可以一直挂着,过上几个月说不定就获取到了

问:如果彗星的服务器出现问题不会影响元数据的获取?

答:不会,一般来说元数据是从其他已经获得元数据的客户端那里获得的,彗星的的服务器也没有下载元数据的功能


参考和引用:

断网问题

问:使用彗星进行下载的时候网络会变得缓慢甚至会断网

答:如果出现网络断流可能是由于DHT发包量过多造成的
可能是运营商限制造成的,也可能是路由器\光猫性能瓶颈

问:如何设置?

答:在高级设置中找到 network.max_udp_pkt_per_sec 默认值为 1000
可以逐渐调小数值,或者直接设置为 10 ,设置为10的时候一般不会再出现断网问题

除此之外还需要调整 dht.udp_send_queue_threshold 此项目用于控制DHT UDP 发包队列 因为调小了发送速度,也需要调整队列长度,以防止DHT发包堆积从而占用大量内存
默认值为30000 在 UDP 发起为10 的情况下 可以设置为 300 或更小

问:如果还是存在断网的现象怎么办?

答:如果修改发包量后仍然会断网,可以尝试禁用DHT

image
取消勾选 允许加入到公共DHT网络,以禁用DHT



参考和引用:

内存占用过高

问:比特彗星内存占用过高怎么办?

答:请打开专家模式 并查看统计中 展开 内存使用 选项 以查看是什么占用了内存

问:一般哪些项目容易占用较多的内存?

答:

torrent列表

如果启用了种子市场,并且加载的其中有大量的种子就会造成此项占用大。

解决办法:限制种子市场最大条数,右键弹出菜单以选择限制条目数。
如果不使用种子市场请直接禁用以避免不必要的内存占用
如果确实有使用种子市场的的需要,且内存确实不足的话请按照此链接中的建议 调整系统虚拟内存


UDP传输缓冲区

UDP缓冲区占用过大可能是由于限制了总UDP发包量后没有修改DHT发送队列造成的


磁盘写操作缓冲区

磁盘写操作缓冲区占用过大,说明硬盘的写入速度跟不上下载的速度,

有可能是硬盘读写性能差,导致数据无法及时写入磁盘,内存用尽后会自动限速

也可以手动进行下载速度限制,使硬盘可以及时写入数据。
也可以先下载到固态硬盘,然后在移动到机械硬盘存储,或者更换性能更好的垂直式机械硬盘。

比如一些移动硬盘,写入速度也很差,数据来不及写入到硬盘中,会先下载到内存,然后后续在进行写入硬盘,这是一个优化防止电脑网速过快下载引起下载掉速的特色。

比特彗星设置SSD固态硬盘下载,完成后自动移动到机械磁盘

D盘是固态,E盘是机械的设置方法如图


磁盘缓存

使用内存做缓存加快硬盘读写速度
对机械硬盘来说十分重要

一般来说在内存足够的情况下缓存越大越好
图中的展示的为官方默认参数

官方版的磁盘缓存设置相当保守
如果使用的是调整过参数的版本 磁盘缓存大小会有所区别
缓存设置过小也会影响下载和上传

BT传输缓存和长效种子上传缓存最小不应小于 1024

如果觉得内存占用多可以手动进行调整
设置建议

HTTP连接缓存:不调整

假设总物理内存为8GB即 8192 MB (实际要略小一些)

希望为系统和其他程序保留3GB内存即3072MB

减小缓存填写3072
空闲内存小于此数值时会减小缓存

BT缓存和长效缓存之和 为 8192-3072=5120 MB
可以各分配一半即 2560
也可以为BT多分配一些

勾选 自动调整


参考和引用

https://bbs.itzmx.com/thread-102123-1-1.html

1個讚

需要勾选倒数第2、3项

2個讚

代理问题

在截图和评论显示问题的最后我们提到的使用代理服务器进行连接
但没有提供代理服务器的获取方法

这里给出通过免费代理服务器来显示截图和评论的方法

注意

不建议将免费节点用于除显示截图和评论以外的用途
免费节点的安全性和可靠性无法保证


平台 Windows
软件 v2rayN
GitHub上的免费节点:

v2rayN下载地址:

下载v2ayN

展开 “Assets”

根据发布文件中的指示和系统实际情况选择
64位系统建议选择 “zz-v2rayN-With-Core-SelfContained.7z”
不需要额外安装 .NET 6.0

下载并解压
运行主程序 v2rayN.exe

运行后程序会最小化到托盘
左键单击 托盘图标弹出 窗口

修改系统代理为 不改变系统代理
我们只使用其来显示截图和评论

接着添加节点订阅
点击 订阅分组设置

点击添加

设置名称 任意设置
填写更新地址 填写上文项目中提供的更新地址
分成两组
设置更新时间

https://raw.githubusercontent.com/aiboboxx/v2rayfree/main/v2
#
https://raw.fastgit.org/freefq/free/master/v2


更新订阅 不通过代理
因为还没有获得任何节点

https://raw.githubusercontent.com/aiboboxx/v2rayfree/main/v2
此更新地址似乎需要通过代理才能连接
建议先使用 https://raw.fastgit.org/freefq/free/master/v2
获取到节点后通过代理更新

获取到的节点

测试节点
右键任意节点 弹出菜单
选择 一键多线程测试延迟和速度

等待测试完成 查看结果
挑选可用的服务器 延迟大于-1 且有速度
右键 设置为 活动服务器

检查socks监听端口

监听 10808 端口

在彗星中设置代理服务器
服务器地址为127.0.0.1 即本机地址
端口为 v2rayN 左下角socks端口
勾选倒数三项
重启彗星

如果设置正确
截图应该就可以显示出来了

v2rayN日志中会有报错
不过似乎并不影响使用

设置开机启动
需要管理员权限

注意

v2rayN不具有自动切换节点的功能 如果过一段时间发现又用不了了 请手动重新选择服务器





参考和引用

1個讚

绿灯问题

Part 0 前言

终于要开始写绿灯问题了即端口问题
其实这不问题仅局限于比特彗星也包括其他bt类软件
确切的来说是所有涉及到p2p通信的软件

考虑到复杂的实际环境,本教程不能做到像先前的那些教程一样
只要按照方法一步一步走就可以完成设置
更多是提供一个解决问题的思路,思路就可以根据具体情况具体分析了

当然基础知识是必不可少的,没有这些在理解和实施上就会遇到困难
毕竟授人以鱼不如授人以渔 学会了方法才能应对不同的情况
那些基本的东西是不会变的

本教程将以讲解基础知识解决思路为主
基础知识也不会讲的很深入,知道它们是什么和做什么就可以了

Part 1 基础知识

1.1 IP和端口

我们还是先从 IP地址 和 端口讲起吧

问:IP地址和端口是做什么的?

答:当我们在互联网上进行通信时,每个设备都会被分配一个独特的标识符,这就是IP地址。可以把IP地址想象成一个房子的地址,它告诉互联网上的其他设备如何找到你所在的位置。IP地址由一串数字组成,比如104.16.249.249 和 203.0.113.1

端口则是用来区分同一个设备上不同应用程序或服务的。你可以把端口想象成一栋大楼的门牌号码,每个端口是一个房间,里面住了不同的程序,要找到某个程序就需要知道他使用的端口号即住在哪个房间

端口号是一个数字,范围从0到65535。一些端口号是约定俗成的,例如80端口用于HTTP通信,443端口用于HTTPS通信。

当你在浏览器中输入一个网址时,你的电脑会将该网址解析为对应的IP地址。然后,电脑会过指定的端口与该IP地址上运行的服务器建立连接,并进行数据交换。IP地址和端口号一起组成了网络通信中的目标地址,使得数据能够正确地到达目标设备上的指定的应用程序。

简而言之,IP地址是用来标识设备在互联网上的位置,而端口则是用来区分设备上不同应用程序或服务的通信通道。它们共同构成了互联网通信中的目标地址,确保数据能够准确地传输到目标设备的指定应用程序。

问:我知道了,ip地址端口就是网络世界的地址,有了ip和端口我们就能找到不同电脑上运行的程序了
不过ip地址好像还有什么公网ip、私网ip、ipv6 什么的,这些又是什么?

答:我们先讲公网IP地址和私网IP地址

公网IP地址是全球唯一的IP地址,用于在互联网上标识和定位设备。它可以直接从互联网上访问到。
我们一开始所说的情况就是公网IP地址。
相当于 XX省XX市XX区XXX路XXX号

私网IP地址用于在局域网或内部网络中所以也叫局域网IP地址。这些地址在全球范围内不唯一,它在私有网络内部可用。通常在家庭、办公室或组织内部使用,用于实现内部设备之间的通信,但不能直接从互联网上访问到。
相当于 XX栋XXX室

问:那我们家里的网络用的是私网IP地址?如果不能直接从互联网上访问到我们又是如何上网的呢?

答:对一般是的,使用私网IP地址的电脑或者设备可以通过NAT技术来上网

1.2 NAT

问:NAT是什么?

答:NAT技术即 NAT(Network Address Translation,网络地址转换)技术
简单的来说它可以让多个使用私网IP的设备共用一个公网IP来上网

问:看来想要上网还是需要公网IP地址,那NAT是如何 共享 这公网地址的呢?

答:还是一开始大楼和房间的例子

在直接使用 公网IP的情况下整个电脑是一栋独立的大楼 而程序住在大楼的房间内,由门牌号即端口号来区分,大楼之外就是互联网世界
相当于独门独栋的房子

在家庭网络中NAT转换过程一般由家用路由器负责
此时电脑是依然是一栋大楼 程序依然住在大楼的房间内,只不过在这座大楼之外不是互联网世界,
而是局域网,相当于一个小区而 路由器则是这个小区的出入口

当电脑发送请求数据到互联网上的服务器时,它们会先到达路由器。
路由器上的NAT会检查这个这个数据的发件地址收件地址

此时这个数据的发件地址为 电脑获取到的局域网IP+发送这个数据的程序使用的端口
而收件地址则是 服务器的IP地址+端口

NAT将发件人地址改成自己的公网地址,而端口一般选择一个随机的端口
收件人地址不变
并记录下这次改写 并将数据发出

当数据数据到达服务器时
在服务器看来是路由器在向自己发送请求
因为发件人是写的是 路由器

于是服务器发送了响应数据
发件人为 服务器自己的IP+服务端程序的使用的端口
收件人则 是路由器的公网地址+路由器发送请求时使用的端口
即请求数据中的 发件地址

当路由器收到这个响应数据后再次修改地址
发件人不变
收件人改成电脑最初发送请求时的 收件人
电脑获取到的局域网IP+最初发送这个数据的程序使用的端口

在电脑看来是服务器直接回复了他的请求
毕竟收件人写的是自己
而发件人是服务器

(关于NAT可以看看这个视频 “https://www.bilibili.com/video/BV17W411d7aQ”

问:这还挺复杂的,不过大概是明白了。想要共用一个公网地址还不是件简单的事情

那绕来绕去最终上网还是要公网IP为什么不在每个电脑弄两个IP,一个公网,一个私网这样不是会更简单吗?

答:这就涉及到公网ip不够用的问题

问:公网IP地址不够用?

答:是的IP地址的数量是有限的

IP地址的范围是从 0.0.0.0到255.255.255.255

其总数约为43亿个 实际可用的ip数量会更少,要除去一些特殊地址

问:这看起来挺多还是不够用吗?

答:不够用,一开始设计的时候认为是够用的,然而在2019年地址就分配完了

问:那后来的用户岂不是没网上了?

答:不会,还记得我们刚才说的NAT和私有IP吗?

私有ip是可以重复的 而NAT又可以让多个使用私网IP地址的设备共用一个公网IP上网
这样后来的用户还是可以通过NAT转换 来上网

问:这样能容纳的用户还是有限的吧?

答:是的,但是通过增加NAT层数来解决
在之前的例子中 是家里的设备共用一个公网IP地址来上网

我们可以再加一层NAT即运营商级别的NAT 这样路由器获得的也是私网地址
运营商可以让许多个家庭共用一个IP上网

问:老是这样套娃也不是办法吧?

答:对,一直增加NAT不能从根本上解决问题,于是有了IPV6

1.3 IPV6

问:所以IPv6是什么?

答:IPv6 即 “Internet Protocol Version 6”(互联网协议第6版)
而我们之前所说的IP都是IPv4
即 “Internet Protocol version 4” (互联网协议第4版)

问:有IPv5协议吗?

答:有,是一种实验性的协议 没有广泛使用

问:IPv4和IPv6有什么区别?

答:最明显的区别就是地址长度和地址数量

IPv4使用32位地址,提供大约40多亿个唯一的IP地址
而IPv6使用128位地址,可以提供约340万亿亿亿亿个唯一的IP地址

86.148.235.250
#IPv4地址看起来像这样

2a0e:425:6685:0:99a2:c6cb:a8c:42ca
#IPv6地址看起来像这样

有了IPv6我们就不太需要担心地址不够用的问题了

问:这么好的东西为什么不早点用上

答:因为IPv6和现有的IPv4并不兼容
即两者之间不能直接连接
虽然有过渡技术可以使两者相互连通但这需要较为复杂的设置

这意味这要完全支持IPv6需要在软件上进行适配
无论是看不见的核心网络设备还是看得见的应用程序都需要做支持
这不是一件简单的事情 要花不少时间

好在发展IPv6有国家在推动,目前三大运营基本都已经有IPv6了
国家IPv6发展监测平台

问:既然有了这么多的地址,那应该不再需要NAT了吧?

答:一般来说是的,不过在一些特殊的地方NAT还是有用武之地的

1.4 路由器 交换机 和 光猫

问:路由器、交换机、光猫是做什么用的

答:我们先从交换机讲起
简单的来说交换机可以将多台电脑连接在一起
使他们之间可以互相连接和访问
也就是组成了一个局域网 (Local Area Network)即LAN

问:那路由器呢?

答:简单来说路由器一般用于连接不同网络

交换机可以组成一个个的小局域网
每一个小个局域网内的设备可以互相访问
但是不能访问到其他局域网里的设备
有了路由器之后就可以沟通起各个局域网

问:家用路由器似乎不只有路由功能?

答:对家用路由器一般还包括以下功能
交换功能
防火墙
NAT
无线功能
DHCP功能
DNS解析器

问:交换功能?那不是交换机做事情吗?

答:对,因为家用路由器一般都内置一个交换机
也就是我们看到的LAN口

问:那WAN口就是用来连接其他网络的了?

答:对,
WAN是广域网(Wide Area Network)的缩写。
在这里指的是该路由器与外部网络(通常是互联网)之间的接口。
而路由就是在 WAN 和 LAN 之间进行的
这样就实现了局域网和外部网络即互联网的连接

问:那光猫又是什么?

答:要想了解光猫我们要先了解“猫”
这里说的“猫”是modem的音译
即 调制解调器

在早期连接网络并没有专门的线路
一般会使用电话线或者电视同轴线

电脑使用的是数字信号
而这些线路上使用的是模拟信号

你只需要知道这是两种不同的信号就行
没有办法直接沟通,就像两门不同的语言一样

这时候就需要一位翻译来解决语言不通的问题
而modem就是这个翻译
有了这个翻译
发送数据时,猫将电脑发出的数字信号翻译成模拟信号再经由电话线/同轴电缆传出
接受数据时,猫将从电话线/同轴电缆上传来的模拟信号翻译成数字信号后传给电脑

随着时代和技术的发展光纤开始取代电话线/同轴电缆作为传输线路了
现在家庭网络一般都采用光纤接入

这就又回到之前的那个问题了
在光纤中的是光信号 而电脑使用的数字信号属于电信号
依然无法直接沟通,又需要一位翻译

因为在光信号和电信号之间做翻译,所以我们叫它“光猫”

问:可是我看运营商给的光猫好像也有不少其他的功能?

答:对因为现在的光猫又吸收了家用路由器的功能
确切的来说是和家用路由器合体了
运营商们也更多叫这个为家庭智能网关

1.5防火墙和NAT

问:防火墙是做什么的?

答:简答的来说防火墙就是一个过滤器、一个筛子
可以根据规则来过滤数据,决定是否允许数据通过
是一种重要的安全措施

问:那为什么很多时候遇到网络问题,很多教程教第一件事情就是关防火墙?
不会有安全上的问题吗?

答:因为防火墙有过滤数据的能力,所以发生网络问题确实有可能是防火墙拦截
造成的,不过这里的防火墙一般指 Windows防火墙 而现在的程序一般都有添加防火墙规则
的能力,即让防火墙允许其通过。

至于安全方面,家庭网络(ipv4) 一般有NAT保护问题不是很大

问:NAT还有保护安全的作用?

答:是的

问:可是之前讲解中,NAT不就是共用公网IP上网,节约ipv4地址吗?

答:没错,不止于此

因为通过NAT上网的设备共用一个了公网ip,所以在互联网上的其他设备看来就只有一个设备,
即NAT本身(网关),换句话说就是内网设备躲在在了NAT后面

有点像老鹰捉小鸡的游戏,“老鹰”是互联网上的其他设备(有可能是攻击者) “母鸡”则是NAT(网关)
而“小鸡”则是内网设备,如果保护得当 “老鹰”是抓不到“小鸡”的

不过这样会产生一些其他的问题

问:什么问题?

答:就是互联网上的其他设备难以访问NAT后面的内网设备

问:可是内网设备可以通过NAT来上网,那说明互联网上的设备和内网设备直接的连接
应该是没有问题的啊?

答:对,但这有一个前提条件,那就是内网设备发起连接,而拥有公网的服务器接受连接

问:难道不都是这样的吗?

答:一般来说是的,不过还有另一种情况即外网设备(不一定有公网IP)发起连接,而内网设备接受连接

问:难道在这种情况下NAT会阻止连接?

答:确切的来说在默认情况下NAT无法处理这些连接
所以看起来就像被阻止了一样

问:无法处理?为什么?

答:还记得之前讲解的NAT处理过程吗?

NAT将发件人地址改成自己的公网地址,而端口一般选择一个随机的端口
收件人地址不变
并记录下这次改写 并将数据发出

当连接由内部发起时NAT知道内网设备的IP和端口
也知道发送时使用的公网IP和端口
于是建立起了一个对应关系

而当连接是从外部发起时 ,NAT就犯难了
因为对方写的收件人地址是自己的公网IP和端口
NAT不知道它对应的内网端口和地址自然无法处理

问:这种情况很多吗?就是外网发起内网接受的情况

答:涉及到P2P通信的时候会
还是比较多的,比如bt下载,游戏联机等
P2P通信我们以后可能会讲

问:那不是有NAT的情况下就没法进行游戏联机和bt下载了?

答:也不是,只要解决NAT不知道对应关系这个问题就行
之后的教程会讲解 告诉NAT对应关系的方法

问:之前说安全方面,ipv4一般有NAT保护,关防火墙问题不是很大
那IPv6一般没有NAT,防火墙就比较重要了?

至于安全方面,家庭网络(ipv4) 一般有NAT保护问题不是很大

答:是的家用网络环境下IPv6一般没有NAT,所以防火墙是保护设备安全的重要措施