Open linhua55 opened 9 years ago
需要 arch 用户帮忙解决。
这与路由表有关,发生在网络切换时。具体原因如下:ShadowVPN 启动时,会添加一条路由表: ip route add $server via $gateway
,以便发往服务器的 UDP 包从默认网关走,当网络切换时,因为原来的网络设备 down 了,之前添加的路由表会自动删除,这会导致发往服务器的 UDP 包也会走 VPN,形成死循环,吃满 CPU。
临时方案:
假设服务器 IP 地址为 1.2.3.4
,在 tools
文件夹下执行 echo 1.2.3.4 | python3 negate_network.py
,得到
0.0.0.0/8
1.0.0.0/15
1.2.0.0/23
1.2.2.0/24
1.2.3.0/30
1.2.3.5/32
1.2.3.6/31
1.2.3.8/29
1.2.3.16/28
1.2.3.32/27
1.2.3.64/26
1.2.3.128/25
1.2.4.0/22
1.2.8.0/21
1.2.16.0/20
1.2.32.0/19
1.2.64.0/18
1.2.128.0/17
1.3.0.0/16
1.4.0.0/14
1.8.0.0/13
1.16.0.0/12
1.32.0.0/11
1.64.0.0/10
1.128.0.0/9
2.0.0.0/7
4.0.0.0/6
8.0.0.0/5
16.0.0.0/4
32.0.0.0/3
64.0.0.0/2
128.0.0.0/1
修改启动脚本让这些网段走 VPN 就可以了
Archlinux上用NetworkManager管理网络,开启Shadowvpn后。用NetworkManager切换无线网络时,CPU占用率急剧升高,切换网络不成功。 弹出如下错误
用htop查看,一开始是NetworkManager对CPU占用率奇高,过一会变成Shadowvpn对CPU占用率奇高,此时用System Monitor查看,看到上传速度竟达到80MiB/s,而双核CPU的两条占用率曲线几乎关于60%直线上下对称。
平时可正常使用。
不知道是bug还是使用方法不对。
➜ ~ NetworkManager --version 1.0.2 shadowvpn 0.1.6-1 (Last Updated: 2015-01-26 03:31)