前几天看了一本书,《藏地牛皮书》。

关于那本书,我一直在想,只是一个介绍,我就毫不犹豫买下了这本书,只是一个开头,我就一口气读完了这本书。可能只有一个原因吧,因为它让我知道,在这个世界,还存在着义无反顾的爱情,还有可以诠释“执子之手,与子成说”的感情,还有“人生若只如初见”的美好。

他们不约而同地在“非典”时期揣着一本《藏地牛皮书》背着行囊来到西藏,在拉萨的青年旅社不期而遇,他们对彼此的倾慕干净而透明,但他们的未来却显然通往不同的方向。

和菜头说:谁都有可能经历这种煎熬。你在一个美好的地方遇见一个美好的人,一切如此美好以至于你开始怀疑这不是真实的。每秒钟你的心念如同瀑流倾注,但是你闭紧了嘴,不肯泄露一个字。因为你不确信对方也是这么想,同时你觉得心里保有了一个秘密,只要一张嘴它就消失不见了。这种事情是无法用笔墨来形容的,我们可以讲述一个曲折动人的故事,但是哪怕用完了所有的中文技巧,也不能描摹内心风暴的一角。就好像是哑巴食蜜,蜂蜜的味道渗透了他的全身心,但是他不能告诉你那样是怎样一种感觉。

“花花世界,人山人海,他一点也不耀眼,扔进人堆里可能就找不着了,可是那一束温柔的光,刚好就是我最想要的。就好像大热天里人人都躲在空调房间,这时候我走出门去,遇见一阵穿堂风,这是只属于我一个人的偶遇和惊喜。”

很喜欢铭基那句:Trust me .we can be together ,no matter how difficult the road will be.

这是铭基在大理写给傅真的明信片上的话,很勇敢,而且铭基也做到了,无论是之后去英国还是后来回中国,始终是相随一起,不离不弃。为什么有人将婚姻比作围城,或多或少是因为婚姻改变了其中一个人对另一个人的需求吧。不然,感情中,或许更应该让对方一直做自己,而你也只要做好自己就可以了,因为爱的是最初的你也是最后的你。

“岁月会将你打磨,最初的激情则会慢慢沉淀,细水长流的安稳与幸福却更有一番天地清明的真实与美好。”

其实看着这本书,我觉得自己的内心也干净了很多,有时候真是嫉妒那些仰望星空的自由人,而我们好像在慢慢被这个社会改变着,之所以他们可以找到,我想还是因为他们还信仰着爱情这种事物吧。
记得电影《卧虎藏龙》里,大侠李慕白说,握紧拳头,里面什么都没有。张开双手,你就拥有了整个世界。
所以,老傅说:爱情亦是如此。

本站收集/制作的一键脚本

Openvz下BBR一键包(LKL+UML)

Linux一键增加虚拟内存 swap

AMH5.3破解&开心版本一键安装脚本

服务器一键测试包

Linux Debian 7 32/64bit Ubuntu 环境安装VNC/LXDE

Linux OpenVZ CentOS 6 64bit环境一键安装VNC桌面环境教程 wine专用

Linux OpenVZ Debian 7 32/64bit环境一键安装VNC桌面环境教程

Easypanel/kangle商业版一键安装(全家桶)


Google BBR 优化算法,实现TCP加速,一键安装脚本

Nginx 端口转发(TCP+UDP) 解决苹果IPV6审核

nginx在1.9版本之后可以充当端口转发的作用,即:访问该服务器的指定端口,nginx就可以充当端口转发的作用将流量导向另一个服务器,同时获取目标服务器的返回数据并返回给请求者。nginx的TCP代理功能跟nginx的反向代理不同的是:请求该端口的所有流量都会转发到目标服务器,而在反向代理中可以细化哪些请求分发给哪些服务器;另一个不同的是,nginx做TCP代理并不仅仅局限于WEB的URL请求,还可以转发如memcached、MySQL等点到点的请求

 

首先安装nginx 需要IPV6模块和stream模块

wget dl.rocky.hk/sh/nginx-stream.sh

sh nginx-stream.sh

 

修改nginx配置文件nginx.conf:

[root@tkde-iphone ~]# vim /usr/local/nginx/conf/nginx.conf
user  www www;
worker_processes  32; 
pid        logs/nginx.pid;

events {
    #use epoll;                            #Linux最常用支持大并发的事件触发机制
    worker_connections  65535;
}

stream {
    upstream zifangsky {
        hash $remote_addr consistent;
        server 10.10.100.31:8000;
    }
    server {
        listen 8080;
        proxy_connect_timeout 5s;
        proxy_timeout 5s;
        proxy_pass zifangsky;
    }
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       9000;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

}

在上面的配置文件中配置了在访问此服务器的8080端口时,会将流量相应转发到10.10.100.31这个服务器的8000端口上

 

可配合宝塔使用

 

魔改BBR算法的尝试

众所周知,这年头的机器不做一番“优化”,带宽利用率根本竞争不过邻居;



于是机智的MJJ都用上了比默认的cubic/reno更aggressive的TCP拥塞控制,而当中又以BBR和锐速为代表。



作为g粉自然是要选择BBR的,毕竟有google和整个linux社区做后台,长远下去肯定要比闭源又停止支持的锐速走得更远。



那么问题来了:在大中华区特殊的国情下,更顾及公平性的BBR比起锐速带宽竞争力还是有些疲软的。能否通过一些小改动,让BBR变得更有侵略性呢?



能!



初版BBR:

https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/plain/net/ipv4/tcp_bbr.c



魔改BBR:

https://gist.github.com/anonymous/ba338038e799eafbba173215153a7f3a/raw/55ff1e45c97b46f12261e07ca07633a9922ad55d/tcp_tsunami.c



编译时系统必须安装4.10以上版本的kernel及对应的linux-header,gcc版本应在4.9以上



以4.10.9为例,需先更换内核,再先后安装:

(http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.9/)

linux-headers-4.10.9-041009_4.10.9-041009.201704080516_all.deb

linux-headers-4.10.9-041009-generic_4.10.9-041009.201704080516_amd64.deb





以下步骤在debian 8及ubuntu 16上测试通过:


  1. apt-get install make gcc-4.9
  2. wget -O ./tcp_tsunami.c https://gist.github.com/anonymous/ba338038e799eafbba173215153a7f3a/raw/55ff1e45c97b46f12261e07ca07633a9922ad55d/tcp_tsunami.c
  3. echo “obj-m:=tcp_tsunami.o” > Makefile
  4. make -C /lib/modules/$(uname -r)/build M=`pwd` modules CC=/usr/bin/gcc-4.9
  5. install tcp_tsunami.ko /lib/modules/$(uname -r)/kernel
  6. depmod -a
  7. insmod tcp_tsunami.ko
  8. sysctl -w net.ipv4.tcp_congestion_control=tsunami

复制代码





关键参数:bbr_bw_rtts, bbr_min_rtt_win_sec, bbr_probe_rtt_mode_ms, bbr_cwnd_min_target, bbr_drain_gain



关键数组:bbr_pacing_gain



经过一个月的测试,魔改BBR比起正常版的BBR确实强上不少,最起码以前看y2b 4k断断续续的远东ss现在能流畅播放了



以上版本的BBR不保证普适性,建议自行修改参数测试





参考链接:

1. http://blog.csdn.net/dog250/article/details/52939004

2. http://blog.csdn.net/dog250/article/details/52879298

3. http://blog.csdn.net/dog250/article/details/52972502

4. https://patchwork.ozlabs.org/patch/671069/

 

 

附上萌咖制作的一键脚本

  • 背景:
  • 原版的BBR对于我们来说,速度不太稳定.

    通过修改BBR源码,调整参数,使其更强劲.


    更新:

    [2017.07.15]

    自动检测gcc版本,如果gcc版本大于4.9的将不会再安装gcc.

    [2017.07.12]

    支持用户自行指定内核版本(需要与 -f 命令同时使用).


  • 准备:
  • 使用前,请确认能够开启BBR.

    可参考: Debian/Ubuntu 开启 TCP BBR 拥塞算法

    或者直接执行此命令进行开启.

    注意:执行此命令会自动重启.


  • 一键地址:
  • 指定内核版本(以v4.11.9内核版本为例):

  • 说明:
    • 执行过程中会重新编译模块.
    • 模块默认为开机自动加载.
    • 模块名称:tcp_bbr_powered
    • 可用 modprobe tcp_bbr_powered 命令进行加载模块.
    • 可执行 lsmod |grep 'bbr_powered' 

      结果不为空,则加载模块成功
    • 可执行 sysctl -w net.ipv4.tcp_congestion_control=bbr_powered 使用此模块.
    • 以上只是说明,直接使用一键脚本即可.


  • 完整代码:

  • 注意事项:
  • 如遇报错:Error! Header not be matched by Linux Kernel.

    请用使用本博客提供的脚本重新开启BBR,可直接参考本篇中的准备步骤.

    如遇报错:Error! Install gcc-4.9.

    首先尝试apt-get update,再次执行此脚本.

    如果未解决想办法自行安装gcc-4.9,或切换系统后再试.

    本脚本在Debian8,Ubuntu16.04上通过测试.


 

Openvz下BBR一键包(LKL+UML)

前提准备

请选择安装 64bit 的操作系统,目前还没做 32bit 的包
VPS 必须支持并开启 TUN/TAP

 

LKL一键包

LKL 要求 ldd 的版本至少在 2.14 ,建议使用安装 CentOS7 , Debian8 和 Ubuntu16
安装包只使用 64bit 的系统。
默认的端口转发只转发了 9000-9999 的端口,如果你不想费心修改,请把 ssr 等应用的端口设在这个范围

 

如果修改转发端口

    1. 修改 /root/lkl/run.sh ,查找 9000-9999 ,改成你想要的端口段
    2. 修改 /root/lkl/haproxy.cfg 查找 9000-9999 ,改成你想要的端口段
    3. 重启 vps安装 LKL 一键包命令
wget —no–check–certificate
https://github.com/91yun/uml/raw/master/lkl/install.sh && bash install.sh

如何判断是否安装成功

如果 10.0.0.2 能 ping 通说明成功, ping 不通说明失败

 

OpenVZ的UML+BBR+SSR加速一键包(Alpine linux+Centos)

 

一键运行脚本

Alpine linux 小内存版: UML 的系统是 Alpine linux ,需要 64M 内存启动,主机最低 128M 内存

wget –N —no–check–certificate https://raw.githubusercontent.com/91yun/uml/master/bbr/uml.sh

Centos 版: UML 的系统是 CentOS ,需要 256M 内存启动,主机建议最低 512M 内存

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 进程

bash run.sh stop

启动 uml

bash  run.sh start

如何把文件传入 UML

我已经在 root 目录下新建了个 umlshare 目录( /root/umlshare ) , 在 uml 里也做了挂载,位置同样是/root/umlshare, 只要把文件放进去就可以了

SSR 相关说明

默认配置

端口:9191
密码:www.91yun.org
加密:RC4–MD5
协议:auth_sha1_v4
混淆:tls1.2_ticket_auth

如何修改 SSR 配置

第一步

根据上面的教程进入 uml

第二步

修改 mudb.json 文件

vi /root/shadowsocksr/mudb.json

把相关的配置改成你自己需要的就可以了。需要说明的是,因为没有编译相关的依赖库,不支持 chacha20 的加密方法

第三步

重启 SSR 程序

bash /root/shadowsocksr/run.sh

最后一步

ctrl+a+d 退出 UML ,在母机的安装目录下(如果没做修改默认是 /root/uml-ssr-64/ )打开 run.sh 找到下面的代码,把 9191 改成你自己刚才修改的端口

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 添加多用户

python mujson_mgr.py –a –p 端口 –k 密码 –m 加密方式 –O 协议 –o 混淆

加完记得在母机增加 iptables 端口转发相关的代码

以上来自91yun

Untitled

花开花落,又是一年。

谨以此结束不愿提及的前一年。

2016.3.25 周五,晚

Screenshot_2017-03-23-19-17-38-258_com.tencent.mo.png

犹能清晰地记着。

也许一开始便是错误的,也许听得武兵或老邱所说也不会耽误那么多。

然而自己的想法也没实现,也麻烦了聪爸聪妈。

或许他们都知道此行是无意义的,只是依着儿子罢了。

但是两个半月后,他们的期待却也落了空。

1.一切皆有因有果

2.在歌曲的间奏里,在城市的黄昏里,在四季的缝隙里,在无限的广阔中。脚步越来越远,河岸越来越近,最后发现那些时刻在记忆中闪烁的影子,其实都是自己。你千辛万苦地想去改变,但最终发现这片世界不属于你,毕竟不是所有的鱼都会生活在同一片海里,或许,你只是对自己无能为力。

3.一直都知道自己是容易为感情所羁绊,很多决定从一开始便是错误的,但却又是那么固执德选择向前摔得头破血流。

4.与其怀念,不如向往。难过的时候总是感觉天空都挂着泪水,后来发现正是因为如此,天空才格外明亮。

5.因为执意,因为舍不得,因为看到了太多的绝望,所以反而看出了希望。

6.聪爸是浙大毕业的

错过了高考,只能进取保研到浙大。

至少,你需要努力,为了聪爸聪妈,为了将来,也为了配得上心仪的人

——————————————————————————–

喜剧就是,悲剧再加上时间。

谨以2016.7.1–2017.3.23个人备忘录告诫自己

所谓擅长安慰人,只是自己度过了太多自己安慰自己的日子。

写给这新的一年,三月好运。

前端访问负载均衡

一直对浏览器到服务层这部分访问的负载均衡不是很清楚,今天看了一篇58到家shenjian的文章,觉得不错,这里大概说说自己的感想,文中的图都是借用人家的,特此说明

第一阶段(裸奔)

请求量很少,通过浏览器访问一个域名,经过DNS解析后,直接就到了 tomcat了

第二阶段(简单扩容)

第一个阶段很明显,如果tomcat挂了,那么系统就挂了,所以进行了简单的扩容,增加了web服务器

第三阶段(加了nginx的简单扩容)

第二个阶段很明显,首先对外暴露了过多的ip,其次DNS解析出来的服务器是否可用,无法保证,所以加了nginx

加了nginx之后,扩容就容易了,切换流量也容易,但如果nginx挂了怎么办呢

第四个阶段(使用keepalived)

使用keepalived使用管理两台nginx,如果一台nginx挂了,可以切换到另外一台nginx

这样也有两个问题:1.nginx的资源利用只有一半  2.如果请求超过nginx的单点性能极限,咋办

第五阶段(使用lvs和f5)

lvs和f5一个在操作系统层面,一个在硬件层面,它们的性能远超nginx,所以用它们管理一个nginx的集群再合适不过了

第六阶段(重新回到之前的DNS轮询)

第五个阶段基本已经可以抗住99.999%公司的访问了,但是如果请求确实超过了单点lvs和f5的性能极限呢。其实水平扩展是最好的解决办法

可以通过DNS轮询来接入多个lvs和f5,如果还不行,再继续水平加lvs和f5,现阶段只能这样了,谁如果有更好的办法,可以聊一下

本文主要是58到家沈剑文章的读后感,这里贴出链接,大家也可以看看http://mp.weixin.qq.com/s/4dzqbh2wfzbQzgFodP2_6Q,主要用于学习分享,非喜勿喷

OpenVZ VPS 安装 User-mode Linux 以实现 BBR 拥塞控制

 

安装 UML

先装工具链:

apt-get install build-essential libncurses5-dev 

因为需要 BBR, 先弄到超前版内核树 net-next,还有对应 UML 的内核配置

cd ~ 

git clone git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git  

cd net-next 

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 

make defconfig ARCH=um 

也可以 export ARCH=um,方便一些。

配置内核使用 BBR:

make menuconfig ARCH=um 

进入配置菜单,进入 Networking support → Networking options → TCP: advanced congestion control 页面,移到 BBR TCP,按两下空格直到变成 <*> BBR TCP。下方 Default TCP congestion control 回车选 BBR。一路 Exit,保存。

make ARCH=um vmlinux -j2 编译。

在 UML 中安装 Arch Linux

基本与在 Ubuntu 下安装新 Arch 一样。

先装一个只读的 rootfs

因为 UML 对 hostfs 的限制,hostfs 一定是只读的,而 OpenVZ 也没有 loop 设备,无法直接挂载磁盘镜像,故我们要先装个只读的 rootfs 来启动 UML, 在 UML 中挂镜像。(Ref:PeterCxy 的 Blog)

# 先下载 Arch 最新的 Bootstrap 包:

cd ~ 

wget http://mirror.rackspace.com/archlinux/iso/latest/archlinux-bootstrap-2017.02.01-x86_64.tar.gz 

tar xzf archlinux-bootstrap-2017.02.01-x86_64.tar.gz 

mv root.x86_64 root 

vi root/etc/resolv.conf 

# 加上一行 nameserver 8.8.8.8,保存

mount –rbind /proc root/proc 

mount –rbind /sys root/sys 

mount –rbind /dev root/dev 

mount -t tmpfs tmpfs root/tmp 

mount –rbind /root root/root 

nano root/etc/pacman.d/mirrorlist 

# 搜索离你最近的国家镜像,去掉对应的注释

# 进入 chroot

root/bin/arch-chroot root /bin/bash 

# 此时已经进入 chroot 环境

pacman-key –init 

pacman-key –populate archlinux 

# 安装基础系统

pacman -Sy base 

# 改控制台,也可以不改,通过 screen 连接 pts

systemctl enable getty@tty0 

systemctl disable getty@tty1 

# 退出 chroot

exit 

# 解除 rbind

umount root/{dev,proc,sys,tmp} 

此时在 root 文件夹下就有了完整的 rootfs,可以启动 UML 了。

设置网络

首先在主机商的面板(SolusVM)打开 TUN/TAP 功能。一般能做 VPN(PPTP、L2TP等) 的 VPS 都有这个选项。

之后配置 TAP 设备:

ip tuntap add tap0 mode tap 

ip addr add10.0.0.1/24 dev tap0 

ip route add default via 10.0.0.1 dev venet0:0 

ip link set tap0 up 

iptables -P FORWARD ACCEPT 

iptables -t nat -A POSTROUTING -o venet0:0 -j MASQUERADE 

安装 Arch 到镜像

cd ~/net-next 

dd if=/dev/zero of=rootfs.img bs=1MB count=6000 # 创建一个 6GB 的镜像 

mount -o remount,size=2G/dev/shm # 改一下 tmpfs 大小,防止爆内存

# 启动到 UML

./vmlinux root=/dev/root rootfstype=hostfs hostfs=./root ubd0=rootfs.img eth0=tuntap,tap0 mem=128M 

mem 是内存大小,此处取 128M(可以根据你的内存情况修改)。 
此时已经有 UML 的 shell,可以开始安装系统了。用户名 root,没有密码。

ip link set eth0 up 

ip addr add10.0.0.2/24 dev eth0 

ip route add default via 10.0.0.1 dev eth0

# 制作文件系统

mkfs.ext4 /dev/ubda 

mount /dev/ubda /mnt 

mkdir -p /mnt/var/lib/pacman 

pacman -Sy base -r /mnt 

pacman -Sy havaged -r /mnt # entropy 生成器

mount –rbind /proc /mnt/proc 

mount –rbind /sys /mnt/sys 

mount –rbind /dev /mnt/dev 

mount -t tmpfs tmpfs /mnt/tmp 

mount –rbind /root /mnt/root

chroot /mnt /bin/bash 

vi /etc/pacman.d/mirrorlist # mirrorlist 

编辑网络配置:

vi /etc/systemd/network/50-static.network 

加入

[Match]

Name=eth0

[Network]

Address=10.0.0.2/24 

Gateway=10.0.0.1 

同上,enable 各项服务,配置 时区、locale 等:

vi root/etc/resolv.conf 

# 加上一行 nameserver8.8.8.8,保存

systemctl enable systemd-networkd 

systemctl enable getty@tty0 

systemctl disable getty@tty1

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

sed -i ‘s/#en_US.UTF/en_US.UTF/’ /etc/locale.gen 

locale-gen 

echo ‘LANG=en_US.UTF-8’ > /etc/locale.conf 

echo ‘umlarch’ > /etc/hostname # 配置主机名 

vi /etc/hosts # 加入 127.0.1.1 umlarch.localdomain umlarch 

mkinitcpio -p linux # 应该不需要,以防万一 

genfstab -U /mnt >> /mnt/etc/fstab # fstab 

shutdown -h 0 # 关闭 UML 

现在配置已经基本完成,改变一下命令行,从新建的镜像启动:

vi ./vmlinux root=/dev/ubda ubd0=rootfs.img eth0=tuntap,tap0 mem=256m 

pacman-key –init 

pacman-key –populate archlinux 

搞定。

配置端口转发

先给自己留下 SSH 端口~

iptables -t nat -A PREROUTING -p tcp –dport 22 -j RETURN 

然后其他的端口全转发走啦:

iptables -t nat -A PREROUTING -i venet0 -j DNAT –to-destination10.0.0.2 

yunBT 基于TP3.1的多用户离线下载

项目托管地址 https://github.com/maysrp/yunBT

 

测试系统

Debian7 X64

 

为了大家后期管理方便,这里推荐AMH面板

传送门

要求:PHP>5.3(可使用一键升级脚本,见AMH4.2原帖)

安装完毕LNMP后请到模板里面下载pathinfo,后台模板里直接搜索即可

 

然后ssh里运行 wget http://dl.rocky.hk/sh/yunbt.sh; sh yunbt.sh;

项目源码 http://dl.rocky.hk/sh/yunBT-master.zip 下载后上传到网站根目录

数据库

yunbt.sql导入数据库

/Bt/Conf/config.php 数据库配置

 

 

 

AMH5.3破解&开心版本一键安装脚本

云端Panel 极速安装:
极速免编译安装方式 (安装时间1至3分钟)

wget http://amh.ydidc.top/YD-panel.sh && bash YD-panel.sh 2>&1 | tee YD-panel.log

(备用)wget http://amh.janch.top/YD-panel.sh && bash YD-panel.sh 2>&1 | tee YD-panel.log

云端Panel 编译安装:编译安装方式 (安装时间5至15分钟)
wget http://amh.ydidc.top/YD-panel.sh && bash YD-panel.sh gcc 2>&1 | tee YD-panel.log
(备用)wget http://amh.janch.top/YD-panel.sh && bash YD-panel.sh gcc 2>&1 | tee YD-panel.log

懒人版:

懒人版说明:全自动安装php7.0\lnmp\pure-ftpd\amftp\phpmyadmin等建站必备的模块
懒人版 极速安装:

wget http://amh.ydidc.top/YD-panel2.sh && bash YD-panel2.sh 2>&1 | tee YD-panel.log

(备用)wget http://amh.janch.top/YD-panel2.sh && bash YD-panel2.sh 2>&1 | tee YD-panel.log

懒人版 编译安装:

wget http://amh.ydidc.top/YD-panel2.sh && bash YD-panel2.sh gcc 2>&1 | tee YD-panel.log

(备用)wget http://amh.janch.top/YD-panel2.sh && bash YD-panel2.sh gcc 2>&1 | tee YD-panel.log

AMH5.3 一键转换为云端Panel(安装过之前的二次开发版本或官方版的可转换为云端Panel版)

wget http://amh.ydidc.top/convert.sh && bash convert.sh

卸载
wget dl.rocky.hk/sh/amh-uninstall.sh;bash amh-uninstall.sh

本文参考自vpsps.com