最近发现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科学上网教程系列/.