最近发现google上不去了,之前通过更改hosts文件科学上网已经不行了(hosts项目地址https://github.com/googlehosts/hosts)。于是上网查了一下,发现是临近十九大,GFW更新算法,加强了封锁。于是转战小蓝灯,才用了一天,小蓝灯也倒下了(lantern项目地址https://github.com/getlantern/lantern)。于是下定决定购买vps,搭建自己的vpn。

购买VPS

网上比较推荐的有两家,一家**Vultr,一家搬瓦工。据介绍搬瓦工便宜的有10美元一年的,让我很是心动,但看了下没货,只有贵的套餐。这些我都没有买过,所以不做评价,大家可以去试试,用推荐码还可以优惠,网上找下有很多。 我今天想介绍的是亚马逊AWS免费套餐**。简单说就是新用户可以免费试用AWS的云主机12个月,配置2核cpu,1G内存,8G的固态硬盘,每月带宽是15G上传,15G下载。流量比较少,只是查下资料还是够了。

创建实例

AWS的注册这里就不介绍了,唯一可能麻烦一点的是要配置信用卡或储蓄卡,缴纳1美元的押金。注册成功就可以创建实例了。 1、选择镜像,这里就用Amazon的(AMI) 2、后面默认设置就可以了 3、配置安全组,这里很重要,除了SSH的22端口,还需要开放一个TCP端口用于后期连接VPN,自己定义(0-65535). 4、审核启动,下载秘钥。

安装Shadowsocks

很简单,就是安装pip,然后用pip安装shadowsocks

sudo yum install epel-release   # AWS主机不需要
sudo yum update                 # AWS主机不需要
sudo yum install python-setuptools m2crypto supervisor
sudo easy_install pip
sudo pip install shadowsocks

还可以通过yum安装

配置yum源 vim /etc/yum.repos.d/shadowsocks.repo

[librehat-shadowsocks]
name=Copr repo for shadowsocks owned by librehat
baseurl=https://copr-be.cloud.fedoraproject.org/results/librehat/shadowsocks/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/librehat/shadowsocks/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1

然后更新,安装shadowsocks

yum update
yum install shadowsocks-libev

启动 systemctl restart shadowsocks-libev 配置文件 /etc/shadowsocks-libev

创建配置文件

在/etc下创建一个配置文件shadowsocks.json

{
    "server":"0.0.0.0",
    "server_port":8388,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":false
}

如果多用户端口访问,则

{
    "server":"0.0.0.0",
    "local_port":1080,
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"aes-256-cfb"
}

启动

因为不是root用户,所以要sudo,-d是后台启动 sudo /usr/local/bin/ssserver -c /etc/shadowsocks.json -d start 参数如下

General options:
  -h, --help             show this help message and exit
  -d start/stop/restart  daemon mode
  --pid-file PID_FILE    pid file for daemon mode
  --log-file LOG_FILE    log file for daemon mode
  --user USER            username to run as
  -v, -vv                verbose mode
  -q, -qq                quiet mode, only show warnings/errors
  --version              show version information

安装kcptun

wget https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh chmod +x kcptun.sh ./kcptun.sh 配合kcp的配置

[root@vultr ~]# cat /etc/shadowsocks-libev/config.json
{
    "server":"127.0.0.1",
    "server_port":8388,
    "local_port":1080,
    "password":"ahakingdom",
    "timeout":200,
    "method":"chacha20-ietf-poly1305"
}

[root@vultr ~]# cat /usr/local/kcptun/server-config.json
{
  "listen": ":10010",
  "target": "127.0.0.1:8388",
  "key": "XXXXXXX",
  "crypt": "aes-128",
  "mode": "fast2",
  "mtu": 1350,
  "sndwnd": 1024,
  "rcvwnd": 1024,
  "datashard": 10,
  "parityshard": 3,
  "dscp": 0,
  "nocomp": false,
  "quiet": false,
  "pprof": false
}

安装客户端

shadowsocks官网地址https://shadowsocks.org/en/index.html 可以在download页面跳转到对应os的客户端下载页面,其实全在github上。

加速

TCP BBR 是 Google 开源的 TCP 拥塞控制算法,可以在有一定丢包率的网络链路上充分利用物理带宽.可以非常显著的提高vpn的访问速度。

升级内核

BBR要求内核版本在4.9.X,所以老版本的系统需要升级内核。EC2 上的 Amazon Linux 虽然目前内核已经是 4.9,但是由于里面并没有 BBR 模块,所以无法直接使用,因此需要自己编译一个带 BBR 的内核来用。

cd /etc/yum.repos.d
wget -O alami.repo https://raw.githubusercontent.com/luckyrocketshipunderpants/centos7-repos/master/alami.repo      
yum -y install kernel*.mhe.amzn1
reboot

启用bbr

[ec2-user@ip-172-31-1-207 ~]$ uname -r
4.9.51-10.52.amzn1.x86_64
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

验证

[ec2-user@ip-172-31-1-207 ~]$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
[ec2-user@ip-172-31-1-207 ~]$ lsmod | grep bbr
tcp_bbr                 6299  11

一键脚本

其他系统可用一键脚本,一键安装最新内核并开启 BBR 脚本.

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh

推荐阅读

看到一篇博客,专门讲VPS上搭建SSR的,写的特别好,很全面。但作者介绍的是SSR,我个人还是建议安装原版SS。 博客地址如下https://jasper-1024.github.io/2016/06/26/VPS科学上网教程系列/.