为什么中继负载差异很大
Tor 管理整个网络的带宽。对大多数中继来说,它运作良好。
但 Tor 的目标与 BitTorrent 等协议不同。
Tor 想要低延迟的网页,需要较快的连接和动态余量。
BitTorrent 想要大量下载,这就需要使用所有的带宽。
我们正在开发新的带宽扫描程序 ,更容易理解和维护。
它可对未测量或测量值较低的中继进行诊断。
Tor 为什么需要带宽扫描程序?
大多数供应商会告诉你本地连接的最大速度。
但是 Tor 用户来自世界各地,而且用户随机地连接 1 或2 个守卫中继。
所以,我们需要知道每个中继能连接到全世界的速度。
因此,即使所有中继运营者将其播放带宽设置为本地连接速度,仍需带宽管理机构来平衡互联网不同部分之间的负载。
正常的中继负载是多少?
正常情况下,大多数中继的负载使用 30%-80% 的容量。
这对客户端是有益的:过载中继延迟较高。
(我们希望有足够的中继,并且每个中继的负载是带宽的 10%。这样,Tor 的速度就将和普通互联网一样快)。
有时,中继变慢是因为它的处理器慢或者是连接受到了限制。
有时是因为网络太慢:中继与大多数其他 Tor 中继的对等连接不好,或者距离太远。
找出限制中继的原因
很多事情会减慢中继的速度。下面是如何查明原因。
系统限制
- 检查中继的内存、CPU 和套接/文件描述符的使用情况
启动时 Tor 记录其中一些信息。其他的可以使用 top 或者类似工具查看。
服务商限制
- 检查你的中继提供商到其他中继的互联网对等连接(带宽、延迟)。
通过 Comcast 传输的中继有时会变得比较慢。
北美和西欧以外的中继通常比较慢。
Tor 网络限制
中继带宽可以被中继自身观测的带宽,或被目录管理机构测量的带宽限制。
以下是如何找出哪种测量值限制了中继:
- 在 consensus-health(大页面)上检查对中继的每一个投票,并检查中值。
如果中继没有被一些目录管理机构标记为“Running”:
- 是否有错误的 IPv4 或 IPv6 地址?
- 它的 IPv4 或 IPv6 地址是否从某些网络不可连接?
- 它的 IPv4 地址上是否有 2 个以上的中继?
否则,请检查中继的观测带宽和带宽速率(限制)。
在Metrics上查找中继。
然后,将鼠标移到带宽标题上,查看观测到的带宽和中继带宽速度。
可以参考以下较具体的案例:共识权重下降和出口中继的上升速度。
如何解决
这些数字中的最小值限制了分配给中继的带宽。
- 如果是带宽速率问题,在 torrc 中增加 BandwidthRate/Burst 或者 RelayBandwidthRate/Burst。
- 如果是观测带宽,那么除非看到自身变快,中继不会要求更多带宽。
你需要弄清楚为什么很慢。
- 如果是中值测量的带宽,从大多数的带宽管理机构来看,你的中继较慢。
你需要弄清楚为什么测量值较低。
对中继进行自测
如果你的中继认为它很慢,或者带宽管理机构认为它很慢,可自己测试带宽:
使用 Tor 运行测试,以查看在您的网络上 Tor 可以达到多快
为此,你需要配置一个Tor客户端,将你的中继作为入口使用。
如果你的中继只有Guard
标志,请在torrc
文件中使用您的中继指纹设置EntryNodes
。
如果你的中继没有 Guard
标志或者它具有 Guard
和 Exit
标志,你不能将您的中继设置为入口节点(请参阅https://gitlab.torproject.org/tpo/core/tor/-/issues/22204),但是即使它不是桥接器,你仍然可以将其设置为桥接器。
要将你的中继设置为桥接模式,请在你的 torrc
文件中添加以下内容:
Bridge <ip>:<port>
UseBridge 1
然后使用您的 SocksPort
作为 socks 代理下载一个大文件。
为此,您可以使用curl
,例如:
curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
使用不同的user
/password
可以确保不同的线路。你可以使用$RANDOM
。
这将使你了解你的中继可以承受多少流量。
或者,您可以运行 relay_bw 来测试您的中继器,使用 2 跳线路,类似于 sbws 的方式。
使用 Tor 和 chutney运行一个测试,以了解 Tor 在您的 CPU 上可以达到多快。
不断增加数据量,直到带宽停止增长。