OpenVZ的UML+BBR+SSR加速一键包
感谢 @Jacky Bao 提供的原始 alpine linux 的包并提供了随机启动的方法
感谢 @allient neko 协助解决了制作过程的各种问题 ~~
使用 Alpine linux ,启动只需 64M 内存,已在我自己的 128M 内存的小鸡上测试通过
由于使用的是 Alpine linux ,因此市面上几乎所有的一键包都无法使用。大内存爱折腾的可以选择安装 centos 版
所有版本都已自带 ssr ,由于都设置了随机启动, 所以请第一时间修改 ssr 相关的配置(否则你的流量可能会被人使用,因为是公用密码。。) ,具体修改方法见下面说明
由于这个包所需的内存很小,因此我们只考虑了 SSR 的加速需求,除了 ssr 外有其他的需求可以看手动安装的教程《 教程:手把手教你 OpenVZ 下部署 UML ,启用 BBR 》
UML 毕竟不是系统,甚至不是虚拟机,不要抱太大指望,不要有太多想法,老想干大事。能运行起来 SSR 我感觉已经很不错啦,
有其他问题欢迎到论坛提出,我和各位热心网友会尽量回复。 论坛讨论区
前置准备
本一键包 Openvz 专用,其他虚拟技术的绕道。。
请选择安装 64bit 的操作系统,目前还没做 32bit 的包
VPS 必须支持并开启 TUN/TAP
一键运行脚本
Alpine linux 小内存版: UML 的系统是 Alpine linux ,需要 64M 内存启动,主机最低 128M 内存
1
2 wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/uml/master/bbr/uml.sh && bash uml.sh
Centos 版: UML 的系统是 CentOS ,需要 256M 内存启动,主机建议最低 512M 内存
1 wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/uml/master/bbr/uml-centos.sh && bash uml-centos.sh
装完 ssr 和 bbr 就已经运行了,如果你不想改密码和端口的话就可以直接用。。默认配置在下面。。
UML 相关说明
如何进入 uml
screen -x 或者在目录下运行 bash run.sh status
用户名: root , 密码: root
如何退出 uml
在 uml 模式里,通过按快捷键 ctrl+a+d 来退出 screen
删除 uml 进程
1
2 bash run.sh stop
启动 uml
1
2 bash run.sh start
如何把文件传入 UML
我已经在 root 目录下新建了个 umlshare 目录( /root/umlshare ) , 在 uml 里也做了挂载,位置同样是/root/umlshare, 只要把文件放进去就可以了
SSR 相关说明
默认配置
1
2
3
4
5
6 端口:9191
密码:www.91yun.org
加密:RC4-MD5
协议:auth_sha1_v4
混淆:tls1.2_ticket_auth
如何修改 SSR 配置
第一步
根据上面的教程进入 uml
第二步
修改 mudb.json 文件
1
2 vi /root/shadowsocksr/mudb.json
把相关的配置改成你自己需要的就可以了。需要说明的是,因为没有编译相关的依赖库,不支持 chacha20 的加密方法
第三步
重启 SSR 程序
1
2 bash /root/shadowsocksr/run.sh
最后一步
ctrl+a+d 退出 UML ,在母机的安装目录下(如果没做修改默认是 /root/uml-ssr-64/ )打开 run.sh 找到下面的代码,把 9191 改成你自己刚才修改的端口
1
2
3 iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 9191 -j DNAT --to-destination 10.0.0.2
iptables -t nat -A PREROUTING -i venet0 -p udp --dport 9191 -j DNAT --to-destination 10.0.0.2
然后重启即可
SSR 添加多用户
1
2 python mujson_mgr.py -a -p 端口 -k 密码 -m 加密方式 -O 协议 -o 混淆
加完记得在母机增加 iptables 端口转发相关的代码
教程:手把手教你OpenVZ下部署UML,启用BBR,为你单边加速 by allient neko (2.26更新32位系统的内核与rootfs档)
本教程、 UML 镜像文件由 91yun 电报群群友 @allient neko 制作!特别感谢!为了尊重原作者,我们采取繁体中文发布!本人在 Debian 8 64 位下的 OpenVZ 测试成功( 2.6.32-042stab116.2 内核)。
有问题的朋友请尽量移步论坛: bbs.91yun.org ,在那边你可以得到更多网友和作者的回复!
UML 环境下的内核:
请在部署 UML 前仔细阅读主机商的 Terms of Service 和 Acceptable Usage Policy ,以防被封禁主机,由此带来的损失由读者本人承担。 树立国人良好形象,切勿随意争议。
前言
首先要提醒一下 如果本身自己的 OpenVZ 太低配的話,那麼 user-mode linux 跑起來會很艱難:最少 512MB RAM 以上才考慮吧, ( 91yun 小编注:评论里有访客反馈在 128M 的 NAT 上也跑起来了) 建議配置是 1G RAM 。因為現時 user-mode linux 不支援多核心處理,所以 CPU 數量一個就夠了
user-mode linux 相等放在 VPS 上開一台小小的 virtual machine ,不過不建議用這台 virtual machine 放一些重要的資料,畢竟 user-mode linux 只是設計用來測試新 kernel 的功能,論穩定度還是沒有正常系統好
先去 control panel 打開 TUN/TAP 的功能,如果是 SolusVM 的話通常 setting 就可以看到 TUN/TAP 的設定
前置安裝
1 apt-get install e2fsprogs uml-utilities screen
Host OpenVZ 準備網路:以下都要在 sudo 下進行
ip tuntap add tap0 mode tap
ip addr add 10.0.0.1/24 dev tap0
ip link set tap0 up
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
設置 packet forwarding
先留下 port 22 給自己作為 ssh 連線之用
1 iptables -t nat -A PREROUTING -p tcp --dport 22 -j RETURN
接下來其餘的 traffic 都可以交給即將出現的子系統
1 iptables -t nat -A PREROUTING -i venet0 -j DNAT --to-destination 10.0.0.2
如果不想把所有 port 都交給子系統的話,可以這樣:
1
2 iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 10000:20000 -j DNAT --to-destination 10.0.0.2
iptables -t nat -A PREROUTING -i venet0 -p udp --dport 10000:20000 -j DNAT --to-destination 10.0.0.2
把 10000 到 20000 交給子系統 其他保留給 Host
可以離開 sudo 了,下載預先設定好的内核,然后解壓縮
1
2
3
4 wget http://soft.91yun.org/uml/32/uml.tar.xz #32位系统下载该压缩包
wget http://soft.91yun.org/uml/64/uml.tar.xz #64位系统下载该压缩包
tar xvJf uml.tar.xz
cd uml #即最新版本解压的文件夹,注意看上一行解压缩的路径
解压缩开的內有兩個是文件:一個是 vmlinux (kernel) ,一個是 rootfs (filesystem image) ,而整個最簡單系統就是放在 rootfs 內,這個系統為了方便,已經設定好網路設定,想要改的話只要打開 /etc/network/interfaces 就好。
因為 rootfs 一開始只有 300MB 放了系統就幾乎沒容量,先擴大 image 的容量吧:
1 resize2fs rootfs 5G
不一定是 5G ,可以換成你喜歡的大小。有的时候要运行下 e2fsck -f rootfs
打開 user-mode linux
1 ./vmlinux ubda=rootfs eth0=tuntap,tap0 mem=256m
256m 是分配給 user-mode linux 的 RAM 大小,如果要跑梯子的話,還是建議有 256m 為佳,這就是為什麼會建議有 1GB RAM 的原因,如果分配太多 RAM 給 user-mode linux ,那麼 Host 就跑不動了,但如果分配太少 RAM 給 user-mode linux ,那麼 user-mode linux 就會很容易當機。
打開後先等一下,等到出現以下的內容
6 Virtual console 3 assigned device '/dev/pts/1'
Virtual console 4 assigned device '/dev/pts/2'
Virtual console 5 assigned device '/dev/pts/3'
Virtual console 6 assigned device '/dev/pts/4'
Virtual console 2 assigned device '/dev/pts/5'
Virtual console 1 assigned device '/dev/pts/6'
/dev/pts/X 就是 user-mode linux 放 virtual console 的地方,隨便記下來一個,這個 terminal 先不要關( 91yun 小编注:如果想关掉 ssh 后继续保持 uml 的运行,请看下面 tips 的第二条。 )
打開新的 terminal 開新的 ssh 到機器
1 screen /dev/pts/1
這時應該是發現 terminal 什麼都沒有,只要按一下 Enter ,就會出現登入提示了
login 是 root
而密碼是 91yun.org
在登入之後記得要改密碼
在進入之後會發現 …. 這個系統真的什麼都沒有,連 python 都沒有!這樣連 SSR 也跑不起來呀!
不過可以先跑一下指令
1 sysctl net.ipv4.tcp_available_congestion_control
看到以下這段就代表有 BBR 了
1 net.ipv4.tcp_available_congestion_control = bbr reno cubic highspeed
不論是怎樣還是先 update 一下 apt 吧
1 apt update
如果要快速測試,可以先安裝 V2Ray 比較快捷
V2Ray 可以作為多功能平台使用,使常用的 shadowsocks 也包含其中
這邊有關於 v2ray 的教程 https://toutyrater.github.io/v2ray-guide-pages/
可以把 SS 開起來使用
1
2
3 apt install curl zip unzip
bash <(curl -L -s https://install.direct/go.sh)
systemctl start v2ray
打開 /etc/v2ray/config.json ,很快就可以看到
"inbound": {
"port": 20722,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "b4b413e4-24b9-4bc9-95a6-93f4bef419bc",
"level": 1,
"alterId": 64
}
]
}
當中 20722 就是 port , id 是密碼
如果想要用 SSR 的話
那可能要耐心一點
把 python git 等等先安裝好
要離開的話 user-mode linux 的話
按 ctrl-a d
就可以離開了
要再進去的話就用
screen -r
這樣就會例出所有 Detached 的 screen
例如 :
1
2 There are several suitable screens on:
1007.pts-7.localhost (02/24/17 10:59:14) (Detached)
這時只要用
1 screen -r 1007.pts-7.localhost
就可以重新進入到離開的 screen 。如果想要關掉 user-mode linux 的話,建議還是用 screen 進入到 user-mode linux ,用 shutdown now 去關掉,不建議在 host 上用 kill 把 uml process 關閉,因為這等同於 hard shutdown
tips:
1. 暫時 user-mode linux 並沒有多核心支援,所以就算 host 有多於一個核心也不會對 user-mode linux 有影響
2. 利用
1 nohup ./vmlinux ubda=rootfs eth0=tuntap,tap0 mem=256m &disown
可以把 user-mode linux 放到背景,只要用
tail ./nohup.out
就可以看到 user-mode linux 的輸出
3. 沒錯 一台 VZ 可以開多台 user-mode linux ,不過如果本身機器不夠強,就不要亂試了。
4. 可以為 user-mode linux 安一個 openssh ,那麼就可以由 Host 上傳文件到 user-mode linux 了, user-mode linux 也可以連回去 host 拿文件
完成!作者另外给了几篇文章,对于折腾党,可以看看:
怎樣從零開始蓋 uml 不過只有 KVM 這種有 loop dev 的 才可以用!
https://github.com/PeterCxy/typeblog.net/blob/master/posts/how-did-i-share-aliyun.md
https://gist.github.com/gaoyifan/d38559fd50dd8a01ec8ed1fb4c0ab614
最后,再次感谢 91yun 电报群群友 @allient neko !
评论 (0)