0%

使用AWS EC2建立VPN教程

之前一直用的是买的的VPN,价格基本都是几十块一个月不等,其实想自己搭VPN很久了,就是一直懒,哈哈哈哈,前阵子抽空用AWS的EC2搭了一套VPN,粗略的加速了下,测试下来速度比买的Justmysocks速度快了一倍,看个Youtube 1080p完全不卡,进度条随意拖动,教程如下。

注册AWS账号

首先要注册一个AWS的账号,英文不好的童鞋可以把语言切换成中文。至于需要填什么,自己打开来看吧,因为我的账号注册了很久了,已经忘记了,应该要绑定一张支持全币种的Visa卡,Amazon会进行信用卡验证,刷取1刀的预授权来验证信用卡是否有效,不过后续会在账单上退回,不必担心。

选择服务,切换服务器地区

点击选择EC2服务,右上角切换服务器所在地区,我选择的是Tokyo(东京)

创建EC2实例

点击图中的“Launch Instance”创建实例

选择带Free tier eligible的机器,这里选的是Ubuntu Server 18.04 LTS这款

之后还是选择带Free tier eligible的机器,配置不高,但是搭建VPN还是可以的

在之后的页面中点击Launch按钮,会弹出这个框,需要设置密钥对,设置完后下载密钥对,之后再Launch Instances,密钥对在后面会用于登陆服务器

启动连接实例

到instance列表下,选中刚才创建的实例,点击connect

会弹出连接方式,教你怎么连接上你创建的实例,先用chomd给文件改变权限,然后用ssh方式登录服务器

至此,实例创建完成。

登录服务器,用Shadowsocks搭建VPN

1
2
3
4
5
6
sudo -s //获取root权限
apt-get update //更新apt-get
apt-get install python-pip //安装pip工具,用于安装shadowsocks
pip install shadowsocks //安装shadowsocks
cd ../../usr/local/bin/ //进入bin目录下
vim shadowsocks_conf.json //编辑shadowsocks配置

json文件内容如下:

1
2
3
4
5
6
7
8
9
10
{
"server":"0.0.0.0",
"server_port": 8838, #vpn端口号
"password": "qwertyuiop", #连接密码
"local_address": "127.0.0.1",
"local_port":1080,
"timeout":600,
"method":"aes-256-cfb",
"fast_open": false
}

如果想配置多个端口和密码给不同用户,则json文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"server":"0.0.0.0",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password":{
"9000":"123456",
"9001":"456",
"9002":"789",
},
"timeout":600,
"method":"aes-128-gcm",
"fast_open": false
}

启动shadowsocks:

1
ssserver -c shadowsocks_conf.json -d start

注:关闭和重启ss服务命令如下:

1
2
ssserver -c shadowsocks_conf.json -d stop     //关闭服务
ssserver -c shadowsocks_conf.json -d restart //重启服务

编辑EC2入站规则

找到对应security group的名字

进入security group面板,找到对面的组,然后点击编辑入站规则

自定义入站规则,把刚刚在json配置文件中的端口给加上去,我用的是8838,再加个22端口,ssh默认使用的是22端口,如果修改过,则换为修改后的端口

至此搭建工作完成。

配置shadowsocks客户端信息

本人用的是Mac,分享一个shadowsocks客户端的下载地址,其他版本的各位自行查找,github上也有。再贴上一个shadowsocks的官网,里面各种版本都有,自行选择下载。
点击下载

安装完后,在 服务器->服务器设定,填写配置信息,配置信息在刚刚的json文件中配置了,地址不要使用ifconfig显示的IP,在控制台页面中查看公网IP,还是在下方把滚动条向右滑

在这里查看IP
至此就可以科学上网了。

关于BBR优化

BBR是Google最新开发的TCP拥塞控制算法,目前有着较好的带宽提升效果。

升级Linux内核

BBR在Linux kernel 4.9引入。首先检查服务器kernel版本:

1
uname -r

如果其显示版本在4.9.0之下(选择了以上的EC2应该不会出现这种情况),则需要升级Linux内核,否则请忽略下文。
更新包管理器:

1
sudo apt update

查看可用的Linux内核版本:

1
sudo apt-cache showpkg linux-image

找到一个你想要升级的Linux内核版本,如“linux-image-4.10.0-22-generic”:

1
sudo apt install linux-image-4.10.0-22-generic

等待安装完成后重启服务器:

1
sudo reboot

删除老的Linux内核:

1
sudo purge-old-kernels

开启BBR

运行 lsmod | grep bbr,如果结果中没有tcp_bbr,则先运行:

1
2
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf

运行:

1
2
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

运行:

1
sysctl -p

保存生效。运行:

1
2
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

若均有bbr,则开启BBR成功。

以上就是使用AWS的EC2搭建VPN的过程,以及后续有BBR优化,有问题的小伙伴欢迎在评论区留言。