February 7, 2016

使用net_speeder加速VPS

当使用国外服务器时,经常会发现,下载速度只有十几k。平时可能不太注意,认为服务器带宽不足,或者自己使用的宽带不给力,其实很有可能原因并不在此。 由于光速的局限性,延迟会比较高(即使光沿直线传播,太平洋一个往返也要一百多毫秒)。并且由于距离较远,途径路由跳数较多,并且网络拥堵的原因。经常会发生丢包的情况。 对于平时使用最广泛的TCP协议来讲,发送端发出包后,接收端会回复ACK,表示自己收到了。用这种机制来保证可靠性。但对于高延迟链路来讲,如果每发送一个包都等待应答,那么大部分时间都在等待数据包到达,而链路则空置了。为此一般会采用滑动窗口技术。即在窗口满之前,发送端一直发送包,然后收到应答后将确认收到的包从窗口中移除。这样可以提高链路利用率。 TCP还有一个特性则是拥塞控制。当发送端检测到链路发生丢包时,则会主动缩小窗口大小以减慢发送速度,避免拥塞。不过对于跳数较多的链路来讲,只要有一个路由不够稳定丢包,就会被发送端判断为拥塞,从而影响网络速度。 为了解决丢包问题,最简单粗暴的方法就是双倍发送,即同一份数据包发送两份。这样的话在服务器带宽充足情况下,丢包率会平方级降低。 这种方式下,直接优点是降低丢包率,直接缺点是耗费双倍流量。一些延伸影响是更容易触发快速恢复逻辑,避免了丢包时窗口缩减过快。一定程度也能提高网络速度。 最近比较忙,空闲时间做了一个最简单的程序,试用效果很好,在一台VPS上测试后发现,未开启时单线程下载、ssh管道速度在十几K级别。开启后可以达到平均300KB+的速度。效果非常明显。但对于不加速就可以跑满带宽的类型来讲(多线程下载),开启后反而由于多出来的无效流量,导致速度减半。所以对于多线程/高速链路,这个方案是不适合的。 目前版本是最简单的逻辑,未来会进行细化(主动触发快速恢复、快速重传等),降低流量浪费,提升加速效果。 目前程序起名net-speeder,相对于修改协议栈来讲,由于后者需要重新升级编译内核,使用用户态程序部署更方便,稳定性更高,兼容性更好。缺点则是性能开销稍大和自由度有损失。总体比较起来,个人使用还是使用用户态程序更合适一些,特别是在虚拟机中使用(OpenVZ,LXC等虚拟机无法自己定制内核)。 摘自http://www.snooda.com/read/324 net_speeder项目主页 https://github.com/snooda/net-speeder 安装net_speeder apt-get install libnet-dev libpcap-dev -y git clone https://github.com/snooda/net-speeder.git cd net-speeder sh build.sh mv net_speeder /usr/local/bin/ 使用net_speeder 使用ifconfig查看网卡端口,我的端口为venet0 nohup net_speeder venet0 "ip" >/dev/null 2>&1 & 添加到开机启动 echo 'nohup net_speeder venet0 "ip" >/dev/null 2>&1 &' >> /etc/rc.local

January 28, 2016

使用Google Authenticator两步验证加强SSH登录

Google Authenticator开源版主页 https://github.com/google/google-authenticator 安装Google Authenticator Ubuntu已经包含libpam-google-authenticator软件(Ubuntu 11.10以上版本),可以直接使用apt-get安装 apt-get install libpam-google-authenticator 其他系统可以通过源码编译安装 git clone https://github.com/google/google-authenticator-libpam.git cd google-authenticator-libpam/ ./bootstrap.sh ./configure make make install 注意:在Debian7中执行./configure时可能存在以下错误提示 configure: error: Unable to find the PAM library or the PAM header files 在此需要安装libpam0g-dev和libtool apt-get -y install libpam0g-dev libtool 设置Google Authenticator 在手机端搜索安装Google Authenticator google-authenticator Do you want authentication tokens to be time-based (y/n) y 然后出现二维码,使用手机端Google Authenticator扫码,接下来服务器端继续设置 如果没有出现二维码,可以将提示的以https://www.google.com/chart?开头的连接复制到浏览器中,就可以看到二维码了 Do you want me to update your "/root/. Read more

July 24, 2015

安装Nginx和ngx_pagespeed

VPS配置: Ubuntu 14.04 x86 RAM 512M SWAP 64M DISK 5G 准备工作 sudo apt-get update&&apt-get upgrade -y sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip libssl-dev -y 下载ngx_pagespeed cd NPS_VERSION=1.9.32.4 wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip unzip release-${NPS_VERSION}-beta.zip cd ngx_pagespeed-release-${NPS_VERSION}-beta/ wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz tar -xzvf ${NPS_VERSION}.tar.gz 安装Nginx cd groupadd www useradd -s /sbin/nologin -g www www NGINX_VERSION=1.8.0 wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz tar -xvzf nginx-${NGINX_VERSION}.tar.gz cd nginx-${NGINX_VERSION}/ ./configure \ --user=www \ --group=www \ --prefix=/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_spdy_module \ --with-http_gzip_static_module \ --with-http_sub_module \ --add-module=$HOME/ngx_pagespeed-release-${NPS_VERSION}-beta \ sudo make sudo make install sudo ln -sf /usr/local/nginx/sbin/nginx /usr/bin/nginx 配置/etc/init. Read more

July 21, 2015

将Nginx更换为H2O

安装必须的软件 预备工具软件 #apt-get install autoconf automake m4 build-essential libssl-dev 必选 #apt-get install openssl libssl-dev 以下为可选包,可自行搜索安装 libuv libyaml wslay 安装H2O 下载安装最新版h2o https://github.com/h2o/h2o/releases #wget https://github.com/h2o/h2o/archive/v1.4.1.tar.gz #tar zxf v1.4.1.tar.gz #cd h2o-1.4.1 #cmake -DWITH_BUNDLED_SSL=on . #make #sudo make install 编辑H2O站点配置文件 以下是一个简单的http与https配置文件,可自行参考修改 hosts: "www.example.com": listen: port: 80 listen: port: 443 ssl: certificate-file: /path/to/server-certificate.crt key-file: /path/to/private-key.crt paths: "/": file.dir: /path/to/doc-root access-log: /path/to/the/access-log error-log: /path/to/the/error-log pid-file: /path/to/the/pid-file http2-reprioritize-blocking-assets: ON # performance tuning option 启动H2O Read more

July 20, 2015

将博客从Typcho转移至Gor

缘由 VPS快到期了,不想继续维护,太累,并且香港VPS价格也不菲。 于是打算选择一个静态博客平台,原来用过的不少:jekyll,hexo,gor,pelican,最后决定Gor 选择Gor的理由有两点 安装方便 执行效率高 安装Gor 参考Gor主页https://github.com/wendal/gor安装Gor 将Typecho文章导出为Markdown文件(.md) Github上有现成的工具typecho-exporter,主页为https://github.com/aneasystone/typecho-exporter 这个工具可以将所有的文章导出为Markdown文件,但是以文章标题为文件名,不利于后期处理,建议使用slug为文件名。 编辑下载的main.py,将75行的p.title = r[1]替换为`p.title = r[2]‘,如下: results = cur.fetchall() for r in results: p = Post() p.id = r[0] p.title = r[2] p.content = r[5] posts.append(p) 原来的r[1]对应typecho_contentsSQL表中的title列,我的r[2]对应slug列,可以根据实际情况更改。 编辑typecho-exporter的config.ini文件,设置数据库访问方式。 运行main.py,完成后会在typecho-exporter目录下生成files文件夹,里面就是导出的Markdown文件。 后期整理 导出后的Markdown没有Gor需要的文件头格式,需要手动整理 这里推荐使用Notepad++批量替换 查找目标: 替换为—\n title: title\ndate: 2015-07-20\ndescription: \npermalink: \ncategories: \ntags: \n—\n 记得将查找模式重的扩展打开。 经过以上替换,就大概有了个Gor的Markdown头格式,后面的手动工作就少了多了。

December 13, 2014

Linux VPS中安装Shadowsocks

VPS系统版本: Ubuntu 12.04 32bit 最简单的办法 #apt-get install python-pip #pip install shadowsocks 启动Shadowsock #ssserver -p 4000 -k sss4k -d start -p后定义端口号,-k后面设定密码,-d start代表以daemon方式启动 下面是另外一种方法: 安装shadowsocks-libev 先用aptitude show查看libssl-dev版本 aptitude show libssl-dev 然后根据版本执行以下修改: libssl > 1.0.1 在/etc/apt/sources.list添加下行: deb http://shadowsocks.org/debian wheezy main libssl > 0.9.8 但 < 1.0.0 在/etc/apt/sources.list添加下行: deb http://shadowsocks.org/debian squeeze main 添加GPG wget http://shadowsocks.org/debian/1D27208A.gpg sudo apt-key add 1D27208A.gpg 添加完成后更新软件源,然后安装shadowsocks sudo apt-get update sudo apt-get install python-m2crypto sudo apt-get install shadowsocks-libev 配置/管理shadowsocks服务 配置 Read more

February 1, 2014

VPS优化

pdksh替代bash $sudo apt-get install pdksh $sudo vi /etc/shells 添加/bin/pdksh到/etc/shells文件 $chsh -s /bin/pdksh 重新登录即可。 修改SSH端口 #vi /etc/ssh/sshd_config 将Port 22中的22改为自定义数字即可 # /etc/init.d/ssh restart dropbear替代openssh $sudo apt-get install dropbear $sudo /etc/init.d/ssh stop $sudo vi /etc/default/dropbear 修改NO_START=0,修改DROPBEAR_PORT为自定义端口号 $sudo /etc/init.d/dropbear start $sudo apt-get remove openssh-server $sudo apt-get autoremove 关闭多余的TTY Ubuntu 12.04 server如下操作 #cd /etc/init/ #mv tty2.conf tty2.conf.bak #mv tty3.conf tty2.conf.bak #mv tty4.conf tty2.conf.bak #mv tty5.conf tty2.conf.bak #mv tty6.conf tty2. Read more

January 13, 2014

VPS下自动备份文件和数据库

新建脚本,名为autoback.sh #vi autoback.sh 脚本(autoback.sh)内容如下: #!/bin/sh #备份网站目录/home/www/ tar zcvf /home/backup/www$(date + "%Y%m%d").tar.gz /home/www/* #备份数据库 www /usr/local/mysql/bin/mysqldump -uroot -ppassword dbname > /home/backup/dbname$(date +"%Y%m%d").sql #删除三天前的备份 cd /home/backup/ rm -f *$(date -d -3day +"%Y%m%d")* 将脚本(autoback.sh)添加到自动执行任务列表: #chmod +x autoback.sh #crontab -e 59 23 * * * /root/autoback.sh 推荐注册Dropbox,参考Linux下CLI模式使用Dropbox,将备份文件自动同步到Dropbox。

© unixetc.com 2012 - 2019
README