使用一键安装脚本安装BBR加速,有时会出现连接不上的情况,不知道是VPS的问题还是BBR的问题。之前自己手动安装的BBR一直用的很稳定,现在换回之前的uml+bbr,记录一下安装步骤,系统为Ubuntu 14.04 32bit。
参考链接
【v友福利】OpenVZ uml 开启BBR之最小镜像,仅需 16M 内存!
转自v2ex:https://www.v2ex.com/t/345786
# 转帖请注明出处,这是最起码的尊重。
# 世界本就如此艰难,何必还要让它更艰难呢。
# 先去 VPS 的 Panel 里打开 TUN/TAP 功能
# 下载定做好的 kernel 和 rootfs 并传到 VPS 上
https://drive.google.com/open?id=0ByqeeKN198fcNm04a1pBSzdXU3M
备用地址
http://www.weilez.cn/share/alpine_16m.tgz
# 解压并进入目录
tar -xzvf alpine_16m.tgz cd alpine_16m
# 安装 uml 的包
apt-get install uml-utilities
# 为 uml 创建一个虚拟网口
ip tuntap add tap0 mode tap ip addr add 10.0.0.1/24 dev tap0 ip link set tap0 up
# 打通 uml 和 host 之间的网络
iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
# 转发 host 的 30022 端口到 uml 的 ssh 方便以后管理
# 端口可以在 uml 里的 /etc/init.d/dropbear 文件里修改
# 默认用户名和密码都是 root ,登录后请立即修改!
iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 30022 -j DNAT --to-destination 10.0.0.2
# 转发 host 的 38388 端口到 uml 的 ss-libev
# 端口可以在 uml 里的 /etc/s*****-libev/config.json 文件里修改
iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 38388 -j DNAT --to-destination 10.0.0.2 iptables -t nat -A PREROUTING -i venet0 -p udp --dport 38388 -j DNAT --to-destination 10.0.0.2
# 可以打开 uml 了,分配了 16M 内存给它吧
nohup ./vmlinux ubda=alpine_16m rw eth0=tuntap,tap0 mem=16M > /dev/null&
# 打开 ss 客户端, ip 是你原来 VPS 的 ip ,默认端口: 38388 ,密码: barfoo!,加密方式: rc4-md5 。
如果可以,请按一下感谢。 Enjoy!
附上截图
启动 uml 后, ssh 到 vps 的 30022 端口。就能看到完整的一个虚拟的 linux 内部的目录结构了。
uml 等于是在你的 vps 内再虚拟一个支持 bbr 的 linux 系统。
ssh 连的是 30022 端口。 uml 启动后等 30 秒左右再去连。 可以运行 iptables -t nat -L 看看下面这条端口转发是否成功。
iptables -t nat -A PREROUTING -i venet0 -p tcp –dport 30022 -j DNAT –to-destination 10.0.0.2
如果觉得效果不好,试试内存加到 32M
创建启动脚本run.sh。注意替换vmlinux和alpine_16m的路径,为了保证uml系统稳定性,脚本里内存分配了64m。
#!/bin/sh export HOME=/root start(){ ip tuntap add tap1 mode tap ip addr add 10.0.0.1/24 dev tap1 ip link set tap1 up echo 1 > /proc/sys/net/ipv4/ip_forward iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE iptables -I FORWARD -i tap1 -j ACCEPT iptables -I FORWARD -o tap1 -j ACCEPT iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 30022 -j DNAT --to-destination 10.0.0.2 iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 38388 -j DNAT --to-destination 10.0.0.2 iptables -t nat -A PREROUTING -i venet0 -p udp --dport 38388 -j DNAT --to-destination 10.0.0.2 screen -dmS uml /root/vmlinux ubda=/root/alpine_16m eth0=tuntap,tap1 mem=64m con=pts con1=fd:0,fd:1 ps aux | grep vmlinux } stop(){ kill $( ps aux | grep vmlinux ) ifconfig tap1 down } status(){ screen -r $(screen -list | grep uml | awk 'NR==1{print $1}') } action=$1 #[ -z $1 ] && action=status case "$action" in 'start') start ;; 'stop') stop ;; 'status') status ;; 'restart') stop start ;; *) echo "Usage: $0 { start | stop | restart | status }" ;; esac exit
安装screen
apt-get install screen
在/etc/rc.local添加开机自启动
/bin/bash /root/run.sh start