墙里面的世界还是有点闷的,偶尔还是需要出去透透气的。虽说 vpn 网上也是一搜一大把,但是限制很多,稳定性也不容乐观,不如自己动手,丰衣足食。

Amazon Web Services,强大的亚马逊云服务,首年免费,功能齐全,值得拥有。

# AWS 篇

首先你得有一个 Amazon 账号,要是没有就先注册一个吧,戳我

注册

填写相关信息即可

注册

需要注意的只有一点,需要绑定信用卡,扣款一美元,然后电话验证,注册完毕。

# 创建实例

完成 Amazon 注册后,会自动进入控制台(初次注册的用户可能需要等待一小段时间,等系统初始化完毕),选择我们需要的 EC2 实例即可。此时需要注意的是,右上角可以选择虚拟机实例所在的位置,国内用户可以选择东京的节点,接入速度很快。确认了地区后,后面创建的实例都是该地区的。

控制台

点击左上角的 EC2 进入 EC2 控制面板,面板内会陈列你当前的实例资源,安全组资源,密钥对资源等。点击启动实例,创建一个新实例。

EC2控制面板

选择 AMI,也就是为实例选择操作系统的镜像,AWS 提供的镜像很多,横跨 Linux / Freebsd / Debian / SUSE / Windows 等多个发行版本。我选择了免费套餐中的 Ubuntu 14.04 LTS。

AMI

选择实例类型,AWS 提供多种实例类型以应对不同类型 / 负载的业务,现阶段还是选择了免费套餐的 t2.micro。

EC2类型

配置实例基本信息,没特殊要求的话默认即可。

实例信息

添加存储,免费套餐可支配的为 30GB,默认分配大小为 8GB。

存储

配置实例标签,主要用来做集群的资源管理,暂时用不到。

标签

配置安全组,这步比较重要。之后我们需要通过 ssh 连接这个实例,所以 22 端口需要打开,可以选择针对某个 IP 开放,默认 0.0.0.0 为对全网开放。另外后面的 Shadowsocks 也需要一个端口,我使用 8088,这个端口也需要对 (IP / 全网) 开放。

安全组

审核并启动实例。几分钟后,可以在实例列表中即可见到我们的新实例,状态为 running。至此,一个用于 VPN 的 EC2 实例创建完成。

启动实例

# 访问实例

访问实例,我们需要一组密码对。我们可以选择创建密钥对或导入密钥对,我们使用创建密钥对来创建一组新的密钥。 输入密钥对的名字,AWS 会生成公钥文件(xxx.pem)并提供下载,保存到一个安全的位置。
密钥必须不公开可见,SSH 才能工作。如果需要,请使用此命令:

chmod 400 xxx.pem

访问步骤如下:
1. 打开 SSH 客户端。
2. 查找您的私有密钥文件(xxx.pem),向导会自动检测您用于启动实例的密钥。
3. 通过其公有 IP 连接到您的实例:
如公有 IP:54.199.201.116,则:

ssh -i "xxx.pem" ubuntu@54.199.201.116

关于用户名,不同的 AMI,默认用户名也不相同,Ubuntu 默认用户名为 ubuntu。其它 AMI 的默认用户名可以在官方连接文档中找到。

# Shadowsocks 篇

Shadowsocks 是一个轻量级的 socket5 代理,用户可以选择工业级的加密算法来保护网络中传输的流量不被污染。开源且全平台支持。

# 服务端

Shadowsocks 的服务端有很多个版本的实现,基于 Python / C / Go / C++ 等多种语言。我选用了 Python 的实现,基于 pip 安装和管理都很方便。如果你想要选择其它版本,可以在这里找到。

登录实例后,首先安装 pip,之后安装 shadowsocks。

sudo apt-get install pip
sudo pip install shadowsocks

AWS 速度非常快,基本上几秒钟就安装完毕了。

服务端安装完成后,我们可以通过命令行来启动 server 端程序。

# 监听 8088 端口 密码为 password 加密方式为 aes-256-cfb
# 可以追加 -d start 使 server 作为守护进程执行
ssserver -p 8088  -k password -m aes-256-cfb

也可以通过创建配置文件 config.json 来进行配置

{
"server":"server_ip", #EC2 实例的 IP,注意这里我们不能填写公有 IP,需要填写私有 IP 或者 0.0.0.0
"server_port":8088, #server 端监听的端口,需要在 EC2 实例中开放此端口
"local_address": "127.0.0.1",
"local_port":1080,
"password":"password", #密码
"timeout":300,
"method":"aes-256-cfb", #加密方式
"fast_open": false #是否开启 fast open
}

如果想要把 VPN 分享给其它人而不泄露自己的密码,也可以在配置文件中设置多端口 + 多密码的模式,如:

{
"server":"server_ip", #EC2 实例的 IP,注意这里我们不能填写公有 IP,需要填写私有 IP 或者 0.0.0.0
"local_address": "127.0.0.1",
"local_port":1080,
"port_password":
{
"8088”: “password8088”,
"8089”: "password8089”
}
"timeout":300,
"method":"aes-256-cfb", #加密方式
"fast_open": false #是否开启 fast open
}

配置完成后,以守护进程的方式开启 / 停止 Shadowsocks

ssserver -c config.json -d start 
ssserver -c config.json -d stop

至此,服务端配置完成。

# 客户端

下载 ShadowsocksX 的最新版本,填写 EC2 的公有 IP,密码,即可完成配置。

ShadowsocksX

至此一个免费一年的 vpn 已搭建完毕,enjoy it~

此文章已被阅读次数:正在加载...更新于

请我喝杯咖啡吧☕️

木亦 微信支付

微信支付

木亦 支付宝

支付宝