Net-Speeder是一个“暴力”解决丢包的工具。他的工作原理是把数据包按照双倍的量去发送。既然你丢嘛,那我每个包多发点不就好了。
Net-Speeder还有一个好处就是支持OpenVZ (OVZ) 虚拟化架构,很多超便宜的小服务器就可以跑起来了。
提示:因为Net-Speeder是通过多倍发包实现低丢包高且可用性的网络,可能会违反部分服务商(IDC)的服务条款(TOS),请慎重。
前提条件:
1、服务器系统:
Ubuntu 14.04、16.04、18.04、20.04
Debian 7、8、9、10
CentOS 7、8
2、服务器内存:128MB+
3、虚拟化架构:物理机、KVM、Hyper-V、OpenVZ
OpenVZ机器要开启Tap/Tun
1、以root账号登录服务器
区分办法:登录后,可见终端显示从$号变成#号
1 2 3 4 5 |
非root账户: [root@localhost ~]$ root账户: [root@localhost ~]# |
2、下载并运行安装程序
CentOS安装命令
1 |
yum install -y wget && wget -O net_speeder.sh --no-check-certificate https://soft.mengclaw.com/Bash/net_speeder.sh && bash net_speeder.sh |
Debian/Ubuntu安装命令
1 |
wget -O net_speeder.sh --no-check-certificate https://soft.mengclaw.com/Bash/net_speeder.sh && bash net_speeder.sh |
如果提示安装成功,恭喜,你已经享受上了Net_Speeder带来的低丢包网络,如果报错,请在下方留言,并与我取得联系。
安装过程概览:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
[root@localhost ~]# wget -O net_speeder.sh --no-check-certificate https://soft.mengclaw.com/Bash/net_speeder.sh && bash net_speeder.sh ------------------------- 一键安装Net-Speeder程序 版本:2.0 作者:WolfSkylake ------------------------- 部署操作: 1、安装Net-Speeder 2、卸载Net-Speeder 管理操作: 3、运行Net-Speeder 4、停止Net-Speeder 5、检查运行状态 ------------------------- 请输入数字 [1-5]:1 管理员权限检查通过 当前系统:CentOS 开始安装依赖环境 依赖环境安装结束,开始下载Net-Speeder程序 下载完成,开始解压 解压完成,开始检查虚拟化 检查虚拟化完成,开始检查网卡名称 检查网卡名称完成,开始编译程序 编译程序完成,开始启动程序 启动程序完成,开始判断是否正常执行 安装成功,进程信息: root 7643 1 0 05:00 pts/0 00:00:00 net_speeder eth0 ip 考虑到稳定性问题,程序开机不会自启动。如果下次开机需要运行本程序,请重新运行本脚本。 运行方式: bash net_speeder.sh |
程序源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 |
#!/bin/bash ############################################################ # 一键安装Net-Speeder程序 # # 发布日期:2020-04-27 # 程序版本:3.0 # # 脚本作者:WolfSkylake # 脚本链接:https://www.mengclaw.com/2020/03/03/598/ # # 项目作者:Snooda # 项目地址:https://github.com/snooda/net-speeder ############################################################ # 判断系统版本 check_system_os(){ if [[ -f /etc/redhat-release ]];then if [[ `cat /etc/redhat-release | awk -F " " '{print $4}' | awk -F "." '{print $1}'` == "8" ]];then release="CentOS8" else release="CentOS" fi # -q 执行本条语句的时候不输出,-i 不区分大小写 elif cat /etc/issue | grep -q -i "debian";then release="Debian" elif cat /etc/issue | grep -q -i "ubuntu";then release="Ubuntu" else release="Unknown" echo -e "\n 系统不受支持,安装失败 \n" exit 1 fi } # 检查是否是root账户 check_root(){ if [[ $EUID != 0 ]];then echo -e " 当前非ROOT账号,无法继续操作。\n 请更换ROOT账号登录服务器。 " exit 1 else echo " 管理员权限检查通过 " fi } # 安装系统依赖 dependent_install(){ if [[ $release == "CentOS8" ]];then dnf -y makecache dnf -y install epel-release dnf config-manager --set-enabled PowerTools dnf -y install libnet libpcap libnet-devel libpcap-devel gcc unzip virt-what elif [[ $release == "CentOS" ]];then yum -y makecache yum -y install epel-release yum -y install libnet libpcap libnet-devel libpcap-devel gcc unzip virt-what elif [[ $release == "Debian" ]] || [[ $release == "Ubuntu" ]];then apt-get -y update apt-get -y install libnet1-dev libpcap0.8-dev gcc unzip virt-what else echo -e " 系统不受支持,安装失败 \n" exit 1 fi } # 下载主程序 program_download(){ rm -rf net-speeder* Net_Speeder* wget -O Net_Speeder.zip --no-check-certificate https://soft.mengclaw.com/Application/Net-Speeder/net-speeder-master.zip } # 解压缩 program_unzip(){ unzip Net_Speeder.zip } # 检查虚拟化 virt_check(){ if [[ -e '/tmp/net-speeder-install/virt.conf' ]];then virt-what > /tmp/net-speeder-install/virt.conf else rm -rf /tmp/net-speeder-install mkdir /tmp/net-speeder-install touch /tmp/net-speeder-install/virt.conf virt-what > /tmp/net-speeder-install/virt.conf fi } # 检查网卡名称 nic_name_check(){ if [[ -e '/tmp/net-speeder-install/nic.conf' ]];then if [[ `cat /tmp/net-speeder-install/virt.conf` == "openvz" ]];then echo "venet0" > /tmp/net-speeder-install/nic.conf else ip add|grep "state UP"|egrep "eth[0-9]|net[0-9]|ens[0-9]"|awk -F ": " '{print $2}' > /tmp/net-speeder-install/nic.conf fi else touch /tmp/net-speeder-install/nic.conf if [[ `cat /tmp/net-speeder-install/virt.conf` == "openvz" ]];then echo "venet0" > /tmp/net-speeder-install/nic.conf else ip add|grep "state UP"|egrep "eth[0-9]|net[0-9]|ens[0-9]"|awk -F ": " '{print $2}' > /tmp/net-speeder-install/nic.conf fi fi } # 编译 program_compile(){ if [[ `cat /tmp/net-speeder-install/virt.conf` == "openvz" ]];then sh net-speeder-master/build.sh -DCOOKED rm -rf /usr/local/bin/net_speeder cp net-speeder-master/net_speeder /usr/local/bin else sh net-speeder-master/build.sh rm -rf /usr/local/bin/net_speeder cp net-speeder-master/net_speeder /usr/local/bin fi } # 运行 program_run(){ nic_name=`cat /tmp/net-speeder-install/nic.conf|head -1` ethtool -K venet0 tso off >/dev/null 2>&1 net_speeder $nic_name "ip" >/dev/null 2>&1 & } # 清理安装过程中产生的文件 after_installl(){ rm -rf Net_Speeder.zip net-speeder-master } # 卸载 uninstall(){ rm -rf /usr/local/bin/net_speeder rm -rf Net_Speeder.zip net-speeder-master } # 运行状态检查 program_run_status(){ if [[ `ps -ef |grep -v grep|grep -v bash|grep net_speeder|grep -c 'net_speeder'` -ge 1 ]];then echo -e "\n 程序已运行,进程信息:\n" ps -ef |grep -v grep|grep -v bash|grep net_speeder echo -e "\n 考虑到稳定性问题,程序开机不会自启动。如果下次开机需要运行本程序,请重新运行本脚本。\n 运行方式:\n\nbash net_speeder.sh\n" else echo -e "\n 程序未运行 \n" sleep 1 exit 1 fi } # 检查PID check_pid(){ pid=`ps -ef |grep -v grep|grep net_speeder|awk '{print $2}'` } ############################################################ # 安装 program_install(){ if [[ -s /usr/local/bin/net_speeder ]];then echo " 程序已安装 " exit 1 else check_root sleep 1 check_system_os echo -e "\n 当前系统:"$release sleep 1 echo -e "\n 开始安装依赖环境\n " sleep 1 dependent_install sleep 1 echo -e "\n 依赖环境安装结束,开始下载Net-Speeder程序\n " sleep 1 program_download sleep 1 echo -e "\n 下载完成,开始解压\n " sleep 1 program_unzip sleep 1 echo -e "\n 解压完成,开始检查虚拟化 " sleep 1 virt_check sleep 1 echo -e "\n 检查虚拟化完成,开始检查网卡名称 " sleep 1 nic_name_check sleep 1 echo -e "\n 检查网卡名称完成,开始编译程序 " sleep 1 program_compile sleep 1 echo -e "\n 编译程序完成,开始启动程序 " sleep 1 program_run echo -e "\n 启动程序完成,开始判断是否正常运行 " sleep 1 program_run_status after_installl fi } # 卸载 program_uninstall(){ if [[ -s /usr/local/bin/net_speeder ]];then check_pid uninstall echo " 卸载完成!" kill -9 $pid >/dev/null 2>&1 & else echo " 程序未安装 " exit 1 fi } # 运行(多次运行效果叠加) program_start(){ virt_check nic_name_check program_run program_run_status } # 停止 program_stop(){ check_pid kill -9 $pid } ############################################################ echo -e " -------------------------" echo -e " 一键安装Net-Speeder程序 " echo -e " 版本:3.0 " echo -e " 作者:WolfSkylake " echo -e " 链接:https://www.mengclaw.com/2020/03/03/598/ " echo -e " -------------------------" echo -e "\n 部署操作:" echo -e " 1、安装Net-Speeder " echo -e " 2、卸载Net-Speeder " echo -e "\n 管理操作:" echo -e " 3、运行Net-Speeder " echo -e " 4、停止Net-Speeder " echo -e " 5、检查运行状态\n " echo -e " -------------------------" read -p " 请输入数字 [1-5]:" num case "$num" in 1) program_install ;; 2) program_uninstall ;; 3) program_start ;; 4) program_stop ;; 5) program_run_status ;; esac ############################################################ |
版本修订:
2020-03-03 Ver:1.0 首次发布
2020-03-04 Ver:1.1 修正多处拼写错误,增加对多网卡的判断,提高安装的成功率
2020-03-04 Ver:2.0 支持交互版发布
2020-04-26 Ver:2.1 修正在部分机器上出现 err msg:[libnet_write_raw_ipv4(): -1 bytes written (Message too long) 的故障
2020-04-27 Ver:3.0 新增支持CentOS 8、Ubuntu 20.04操作系统
本教程,脚本均为原创,允许转载。转载请注明出处,谢谢。
本文链接:https://www.mengclaw.com/2020/03/03/598/
版权所有©2020萌爪实验室
帮到我了,谢谢
我用**R建立一个vps,平时用来**,但是也用于打游戏,战争雷霆的服务器比较烂,丢包通常10~20%,之前用udpspeeder多倍发包但是经常蹦,用了这个好多了.
CentOS 8 装不了
Complete!
Extra Packages for Enterprise Linux Modular 8 – x86_64 79 kB/s | 117 kB 00:01
Extra Packages for Enterprise Linux 8 – x86_64 3.8 MB/s | 6.2 MB 00:01
Package libpcap-14:1.9.0-1.el8.x86_64 is already installed.
No match for argument: libnet-devel
No match for argument: libpcap-devel
Package gcc-8.2.1-3.5.el8.x86_64 is already installed.
Package unzip-6.0-41.el8.x86_64 is already installed.
Package virt-what-1.18-6.el8.x86_64 is already installed.
Error: Unable to find a match: libnet-devel libpcap-devel
依赖环境安装结束,开始下载Net-Speeder程序
2020-03-29
感谢反馈,但是因为CentOS 8刚出不久,暂时不考虑支持,再等等看。
2020-04-27
经过评估,现已增加对CentOS 8的支持
dnf config-manager –set-enabled powertools
powertools一定要小写,一键安装脚本里面的命令是有大写字母的,在Centos 8上面会出问题
我应该早点看到
Armbian 20.02.1 Bionic 这个系统显示不支持该系统
因为安装方式不同,为了减少安装时造成的风险,ARMBIAN请使用手动方式安装。参考这条教程:
https://www.mengclaw.com/2020/03/01/588/
他總是顯示’程序未運行’
請問要如何解決
ubuntu 18.04 desktop
目前服务器环境暂未复现这个问题。桌面版系统随后会测试一下,感谢反馈。
安装是安装好了,但你确定程序是正常工作了吗? 我不放后台测试了下(Debian 9)上并没有正常工作!
root@racknerd-605a12:~# cd /usr/local/bin/
root@racknerd-605a12:/usr/local/bin# ./net_speeder eth0 “ip”
Device: eth0
Filter rule: ip
ethernet header len:[14](14:normal, 16:cooked)
init pcap
init libnet
packet len:[1577] actual write:[-1]
err msg:[libnet_write_raw_ipv4(): -1 bytes written (Message too long)
]
出现这个错误提示,是因为开启了网卡的tso模式,2.1及之后的版本已修复。
卸载后重新按照教程安装一下就可以了。
TSO其实很多操作系统都不支持关闭的
目前最通用和保险的办法就是加大MTU值。
博主有开机自启的方案吗?
受限于程序设计,所以只能通过关闭TSO解决这个问题。
开机自启动已经在规划中,未来的某个版本可能就会放出。
我的ovz已经开启 tap tun 仍然显示程序未运行
操作系统为Ubuntu16.04
请问可以贴一下详细的执行日志吗?
怎么看详细日志?
请问博主用你的一键安装好后默认是几倍发包,可以自己手动调整发包倍率吗?另外如果在NAT上安装,对HAPROXY中转流量是否起作用呀?
安装后默认两倍发包,每多运行一个实例,就多一倍发包。
root@linux:~# bash net_speeder.sh
————————-
一键安装Net-Speeder程序
版本:3.0
作者:WolfSkylake
链接:https://www.mengclaw.com/2020/03/03/598/
————————-
部署操作:
1、安装Net-Speeder
2、卸载Net-Speeder
管理操作:
3、运行Net-Speeder
4、停止Net-Speeder
5、检查运行状态
————————-
请输入数字 [1-5]:3
程序已运行,进程信息:
考虑到稳定性问题,程序开机不会自启动。如果下次开机需要运行本程序,请重新运行本脚本。
运行方式:
bash net_speeder.sh
root@linux:~# bash net_speeder.sh
————————-
一键安装Net-Speeder程序
版本:3.0
作者:WolfSkylake
链接:https://www.mengclaw.com/2020/03/03/598/
————————-
部署操作:
1、安装Net-Speeder
2、卸载Net-Speeder
管理操作:
3、运行Net-Speeder
4、停止Net-Speeder
5、检查运行状态
————————-
请输入数字 [1-5]:5
程序未运行
root@linux:~#
请问可以给一下IDC名字吗?我买一个去测下脚本
安装时出现了错误
检查网卡名称完成,开始编译程序
In file included from /usr/include/errno.h:35:0,
from net-speeder-master/net_speeder.c:6:
/usr/include/bits/errno.h:24:26: 致命错误:linux/errno.h:没有那个文件或目录
# include
^
编译中断。
cp: 无法获取”net-speeder-master/net_speeder” 的文件状态(stat): 没有那个文件或目录
编译程序完成,开始启动程序
启动程序完成,开始判断是否正常运行
程序未运行
已修复
这个脚本 我在AWS 服务器lightsai服务器 ,测试线路 电信(vps服务器东京A),在一年时间内,断断续续,安装脚本测试, 之后不是翻倍,而是直接减速(咔嚓 减到一半速度)
这个仅适用于因为丢包严重导致的访问服务器缓慢的问题。如果本身没有丢包这类的情况,盲目使用双倍发包的这个脚本,反而会起到相反的效果。
线路相同 使用ss安装前丢包,,安装之后不丢包。,,,
v2ray 就不是为了udp而做的
Netch可以使用下,效果赶脚比sstap会好
脚本出问题了 不能安装了
已修复
大佬,
问题1 脚本有问题 无法下载和运行
问题2 能加速IPV6吗?
已修复,ipv6没有测试条件,请自行测试,理论上是可以的
暴力发包可能会让国际出口小水管越来越堵,随着用的人多了效果会下降的很厉害
在美国洛杉矶VPS上运行测试了下,确实有效减少了丢包率。