标签归档:qbittorrent

Online 独服 Ubuntu 18.04 关闭默认IPV6并额外配置静态IPV6

更新

29191222

qbittorrent在201912更新的4.2.1版本中,在“设置”中添加了“高级”选项卡,可以自定义“网络接口”和“绑定可选的IPv6地址”,解决了问题场景的“新申请配置的ipv6并没有替代默认开通的ipv6”的问题。

20191213

如果参照如下方式配置成功,但出现IPv6失联或失效的情况,请参考这篇文章

问题场景

2019年2月8日起,Online新开通的独服默认开启了IPV6。使用Ubuntu 18.04通过IPV6刷PT,因为这个作业系统可以使用最新版的qbittorrent软体。但是由于qbittorrent有限速缺陷,有一天发现这个IPV6被标记了。于是申请一个新的IPV6,通过目前网络上现有的教程,可以配置成功新的IPV6。问题来了,新申请配置的ipv6并没有替代默认开通的ipv6,而是两者共存。qbittorrent仍然使用系统默认开通的IPV6。

解决思路

官网教程说配置新的IPV6,需要开启SLAAC,否则服务器无法识别默认路由(If disabled, a server will not be able to learn its IPv6 default route)。但是实际上,目前,不管在网页控制台中是否启用“ACTIVATE IPV6 SLAAC”,Online 后台都已经默认开启了SLAAC,并通过路由通告Router Advertisement(RA)配置一个128位的IPV6。

经过多次尝试,解决思路是获取默认路由,申请新IP,配置新IP和路由,具体步骤:

  • 获取默认开启的IPV6路由,实际上只要获取IPV6网关地址即可;
  • 申请新的IPV6地址,先申请/48段,再继续划分为一个/56,并记录/56 IPV6的DUID,用/48的也行;
  • 配置dhclient、dhclient-netplan服务,内容完全照搬大佬的教程
  • 配置netplan:关闭RA,自定义IPV6地址和网关。

操作过程

获取网卡和IPV6路由

系统安装好后,通过以下命令查看IPV6路由,类似如下:

ip -6 route show
2001:1234:5678:1234::/64 dev enp1s0 proto ra metric 100 pref medium

fe80::/64 dev enp1s0 proto kernel metric 256 pref medium

default via fe80::1234:5678:1234:5678 dev enp1s0 proto ra metric 100 mtu 1500 pref medium

获取网卡名称:enp1s0;获得IPV6网关:fe80::1234:5678:1234:5678

申请新的IPV6地址

登录网页控制界面,申请/48段IPV6地址,然后再获取/56段地址,并记录其DUID。比如:

2001:1234:2345:500::/5612:34:56:78:90:ab:cd:ef:12:34

获取IPV6地址:2001:1234:2345:500::/56,在后续使用时,不存在空格;获取DUID:12:34:56:78:90:ab:cd:ef:12:34。

配置dhclient服务

编写dhclient配置文件

sudo vi /etc/dhcp/dhclient6.conf

内容如下:

interface "enp1s0" {
  send dhcp6.client-id 12:34:56:78:90:ab:cd:ef:12:34;
  request;
}

将enp1s0和12:34:56:78:90:ab:cd:ef:12:34改为自己获取的网卡名称和DUID。

编写dhclient服务

sudo vi /etc/systemd/system/dhclient.service

内容为:

[Unit]
Description=dhclient for sending DUID IPv6
Wants=network.target
Before=network.target

[Service]
Type=forking
ExecStart=/sbin/dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v enp1s0

[Install]
WantedBy=multi-user.target

将enp1s0替换为自己的网卡名称

设置开机启动:

sudo systemctl enable dhclient.service

编写dhclient-netplan服务

sudo vi /etc/systemd/system/dhclient-netplan.service

内容如下:

[Unit]
Description=redo netplan apply after dhclient
Wants=dhclient.service
After=dhclient.service
Before=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/netplan apply

[Install]
WantedBy=dhclient.service

设置开机启动:

sudo systemctl enable dhclient-netplan.service

修改netplan配置文件

自定义ipv6地址、网关,并关闭路由通告(RA)。

sudo vi /etc/netplan/01-netcfg.yaml

修改后,最终样式如下:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: yes
      accept-ra: no
      dhcp6: no
      addresses:
      - 2001:1234:2345:500::/56
      gateway6: fe80::1234:5678:1234:5678

将2001:1234:2345:500::/56修改为获取的IPV6地址;将fe80::1234:5678:1234:5678修改为获取的IPV6网关;accept-ra: no的作用是不接受RA通告的IPV6,也就是不获得默认的/128位的IPV6。

重启系统,此时应该就可以了。

使用qBittorrent时遇Kernel Power 事件 ID 41 错误致windows 10 重启一例

1 问题描述

环境:windows 10 64位操作系统,博通ac网卡
之前用IDM下载文件,看电影等任何操作,一切正常。但使用qBittorrent下载种子时,短则几秒,长也不到一分钟,电脑就直接黑屏重启。且没有蓝屏错误代码出现。

2 问题分析

简要说一下排除步骤吧。

2.1 事件查看器(Event Viewer)

因为没有蓝屏代码,首先查看Windows X 系统自带的事件查看器,在Windows 日志 > 系统下,可以看到一条红色叹号图标的“关键(Critical)”错误,类似如下:

系统已在未先正常关机的情况下重新启动。如果系统停止响应、发生崩溃或意外断电,则可能会导致此错误。
The system has rebooted without cleanly shutting down first. This error could be caused if the system stopped responding, crashed, or lost power unexpectedly.
…
来源(s):       Kernel-Power
事件 ID(E):    41
级别(L):       关键

按照Kernel-Power 41 检索,发现微软有一篇技术文档来说明此问题,有点符合场景三的描述:Scenario 3: The system randomly restarts and no Stop error BugcheckCode is listed, or the computer is completely unresponsive (hard hang)。系统随机重启,且未列出关机的相关错误代码,或者电脑完全没有反应(硬件故障)。可能原因是:超频,内存问题,电源问题,过热。显然都不太是。
此外有人建议更新声卡驱动来解决这个问题,经测试无效。

2.2 Windows 10 调试工具(Debugging Tools for Windows (WinDbg, KD, CDB, NTSD))

微软提供了一个新的诊断工具:Windows 调试器 (WinDbg),我们按方法三来安装一个独立运行的版本,在安装Windows 10 SDK时仅勾选 Debugging Tools for Windows来安装。
微软该技术文档,将系统错误日志Minidump(位置在“C:\Windows\Minidump\”文件夹中)复制到桌面,打开WinDbg,在其菜单栏依次点击File > Open Crash Dump…来打开dmp文件。
待出现Bugcheck Analysis信息后,点击 !analyze -v来进一步分析错误原因。可以看到比较可疑的地方:

…
Probably caused by : bcmwl63a.sys ( bcmwl63a+8ef6f )
…
6: kd> .trap 0xffff8f805fd6a5d0
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
…

看起来是wifi驱动bcmwl63a.sys导致的问题,这是一个老生常谈的问题了。

2.3 更新WIFI驱动

出问题的Wifi网卡是博通的ac网卡BCM4352,驱动是Windows 10自带的:

驱动提供商:     Broadcom
驱动日期:       7/6/2015
驱动版本:       7.35.290.0

找到比较新的是联想提供的这个版本:

WLAN Driver (Atheros, Realtek, Broadcom) for Windows 7 (64-bit) - Lenovo B41-35, B51-35

Document ID: DS103113
Release Date: 12/28/2017

下载7gb301wf.exe并双击释放到c盘后,通过在设备管理器中右键更新驱动,并指向该文件夹来更新驱动,升级后的驱动是如下版本:

驱动提供商:     Broadcom
驱动日期:       7/20/2015
驱动版本:       7.35.295.2

打开qbittorrent测试,真的是好了一会会,没有一打开几秒钟就崩溃。但是一个多小时后问题又出现了,还是这个bcmwl63a.sys的错误。

2.4 禁用tereto(IPv6)

网上有使用bittorrent时出现该问题的情况,但更新Wifi驱动或者使用旧版驱动后问题依旧。不过在回帖中technonymous提到禁止teredo (ipv6)可解决该问题,以管理员方式运行命令行提示符,输入如下命令:

netsh interface teredo set state disabledok.

暂时正常,仍在观察中。
原因可能是因为qbittorrent等bt软件需要发送接收大量udp包,与tereto隧道兼容不好所致,尽管根本没有IPv6。微软有一篇文档提到:因为操作系统无法分配足够的堆栈空间为 UDP 数据包有许多内核过滤器 driversinstalled 时,将出现此问题。该文档中有一句:UNEXPECTED_KERNEL_MODE_TRAP,而在我的WinDbg中也有一行:6: kd> .trap 0xffff8f805fd6a5d0,不知是否有关。