linode科学上网加速手动编译hypla htcp模块

linode东京机房如果用来做科学上网速度对我们来说还是不错的,缺点是内核默认不加载hypla和htcp模块,但经过测试对比hypla或htcp模块对于加速效果还是比较明显的。

以下以我的系统Ubuntu 12.04.2 LTS为例说明如何编译加载htcp模块,其他Linux系统命令不会差别很大,请按自己的情况修改内核名称。
1. 查看你的机器内核版本:
uname -r
3.11.6-x86_64-linode35
2. 去 https://www.kernel.org/pub/linux/kernel/v3.0/ 下载相同版本的源码到任意目录,解压
mkdir /root/mykernel
cd /root/mykernel
wget https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.11.6.tar.gz
tar xzvf linux-3.11.6.tar.gz
3. 安装内核编译工具
apt-get update && apt-get install -y build-essential libncurses5-dev
4. 复制Linode原来的内核编译配置文件到源码根目录,在CONFIG_TCP_CONG_CUBIC=y下面增加一行 CONFIG_TCP_CONG_HYBLA=y,再生成编译模块需要的内核
cd linux-3.11.6
zcat /proc/config.gz > .config
vi .config
查找CONFIG_TCP_CONG_CUBIC=y,在下面增加一行 CONFIG_TCP_CONG_HYBLA=y,保存
make
5. 耐心等待编译内核完成,单核编译大约需15分钟,完成后,进入模块所在的目录,编写Makefile
cd net/ipv4/
mv Makefile Makefile.old
vi Makefile
以下是Makefle的内容,注意要把KDIR修改为你自己的源码路径,其他则照抄就可以了
# Makefile for tcp_hybla.ko
obj-m := tcp_hybla.o
KDIR := /root/mykernel/linux-3.11.6
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
# Makefile for tcp_htcp.ko
obj-m := tcp_htcp.o
KDIR := /root/kernel/linux-3.11.6
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
6.进入源码根目录,编译模块
cd /root/mykernel/linux-3.11.6/
make modules
7.进入到模块所在目录,复制生成的 tcp_hybla.ko 到加载目录,测试加载模块
cd /root/mykernel/linux-3.11.6/net/ipv4
cp tcp_hybla.ko /root/mykernel/
cd /root/mykernel/
加载前
sysctl net.ipv4.tcp_available_congestion_control

net.ipv4.tcp_available_congestion_control = cubic reno

insmod tcp_hybla.ko
加载后
sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = cubic reno hybla
设置hybal为优先
sysctl net.ipv4.tcp_congestion_control=hybla
8.设置开机自动加载模块,把tcp_hybla.ko 复制到 /lib/modules/3.11.6-x86_64-linode35/kernel/net/ipv4
cd /lib/modules/3.11.6-x86_64-linode35
mkdir -p kernel/net/ipv4
cd kernel/net/ipv4
cp /root/mykernel/tcp_hybla.ko ./
cd /lib/modules/3.11.6-x86_64-linode35
depmod -a
9.修改/etc/sysctl.conf 开机自动设置hybal为优先
vi /etc/sysctl.conf
net.ipv4.tcp_congestion_control = hybla
用这9步就可以了,只是动态加载模块,不用更换内核,不用停机重启,不影响网站正常运营,相当方便,值得尝试,参考这个方法可以为 Linode 动态加载任何需要的内核模块,如fastopen,htcp,highspeed 等
Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>