AWS 上的 Wireguard 免费 VPN 服务

为了什么?

随着威权政权对互联网的审查越来越严格,越来越多有用的互联网资源和网站被封锁。 包括技术资料。
因此,无法充分使用互联网并侵犯了言论自由的基本权利, 人权宣言.

19条
人人享有见解和言论自由的权利; 这项权利包括在不受干涉的情况下持有意见的自由,以及通过任何媒体和不分国界寻求、接收和传播信息和思想的自由

在本指南中,我们将分 6 个步骤部署我们自己的免费软件*。 VPN服务 基于技术 Wireguard, 在云基础设施中 亚马逊网络服务 (AWS),使用免费账户(12 个月),在由 Ubuntu 服务器 18.04 LTS.
我已尝试使本演练尽可能对非 IT 人员友好。 唯一需要的是坚持不懈地重复下面描述的步骤。

注意

阶段

  1. 注册一个免费的 AWS 账户
  2. 创建 AWS 实例
  3. 连接到 AWS 实例
  4. 线卫配置
  5. 配置 VPN 客户端
  6. 检查VPN安装的正确性

有用的链接

1.注册AWS账户

注册一个免费的 AWS 账户需要一个真实的电话号码和一张有效的 Visa 或 Mastercard 信用卡。 我建议使用免费提供的虚拟卡 Yandex的 или Qiwi钱包. 为检查卡的有效性,在注册时扣除 1 美元,稍后退还。

1.1. 打开 AWS 管理控制台

您需要打开浏览器并转到: https://aws.amazon.com/ru/
单击“注册”按钮

AWS 上的 Wireguard 免费 VPN 服务

1.2. 填写个人资料

填写数据并点击“继续”按钮

AWS 上的 Wireguard 免费 VPN 服务

1.3. 填写联系方式

填写联系方式。

AWS 上的 Wireguard 免费 VPN 服务

1.4. 指定付款信息。

卡号、有效期和持卡人姓名。

AWS 上的 Wireguard 免费 VPN 服务

1.5. 帐户验证

在此阶段,确认电话号码并直接从支付卡中扣除 1 美元。 电脑屏幕显示4位代码,指定手机接到亚马逊打来的电话。 在通话过程中,您必须拨打屏幕上显示的代码。

AWS 上的 Wireguard 免费 VPN 服务

1.6. 关税计划的选择。

选择 - 基本计划(免费)

AWS 上的 Wireguard 免费 VPN 服务

1.7. 登录管理控制台

AWS 上的 Wireguard 免费 VPN 服务

1.8. 选择数据中心的位置

AWS 上的 Wireguard 免费 VPN 服务

1.8.1. 速度测试

在选择数据中心之前,建议通过测试 https://speedtest.net 访问最近的数据中心的速度,在我所在的位置,结果如下:

  • 新加坡
    AWS 上的 Wireguard 免费 VPN 服务
  • 巴黎
    AWS 上的 Wireguard 免费 VPN 服务
  • 法兰克福
    AWS 上的 Wireguard 免费 VPN 服务
  • 斯德哥尔摩
    AWS 上的 Wireguard 免费 VPN 服务
  • 伦敦
    AWS 上的 Wireguard 免费 VPN 服务

伦敦的数据中心在速度方面表现最好。 所以我选择它进行进一步定制。

2.创建AWS实例

2.1 创建虚拟机

2.1.1. 选择实例类型

默认选择t2.micro实例,这是我们需要的,按下按钮即可 Next: 配置实例详细信息

AWS 上的 Wireguard 免费 VPN 服务

2.1.2. 设置实例选项

将来,我们将连接一个永久的公共 IP 到我们的实例,所以在这个阶段我们关闭公共 IP 的自动分配,然后按下按钮 下一步:添加存储

AWS 上的 Wireguard 免费 VPN 服务

2.1.3. 存储连接

指定“硬盘”的大小。 对于我们的目的,16 GB 就足够了,我们按下按钮 下一页:添加标签

AWS 上的 Wireguard 免费 VPN 服务

2.1.4. 设置标签

如果我们创建了多个实例,那么它们可以通过标签进行分组以方便管理。 在这种情况下,这个功能是多余的,立即按下按钮 下一步:配置安全组

AWS 上的 Wireguard 免费 VPN 服务

2.1.5. 开放端口

在此步骤中,我们通过打开所需的端口来配置防火墙。 开放端口集称为安全组。 我们必须创建一个新的安全组,给它一个名称,描述,添加一个 UDP 端口(自定义 UDP 规则),在 Rort Range 字段中,分配一个范围内的端口号 动态端口 49152-65535。 在本例中,我选择了端口号 54321。

AWS 上的 Wireguard 免费 VPN 服务

填写所需数据后,点击按钮 审查并启动

2.1.6. 所有设置概览

在此页面上有我们实例的所有设置的概述,我们检查所有设置是否按顺序排列,然后按下按钮 实行

AWS 上的 Wireguard 免费 VPN 服务

2.1.7. 创建访问密钥

接下来是一个对话框,提供创建或添加现有 SSH 密钥,稍后我们将使用它远程连接到我们的实例。 我们选择“创建新密钥对”选项来创建新密钥。 给它起个名字,然后单击按钮 下载密钥对下载生成的密钥。 将它们保存到本地计算机上的安全位置。 下载后,单击按钮。 启动实例

AWS 上的 Wireguard 免费 VPN 服务

2.1.7.1. 保存访问密钥

这里显示的是保存上一步生成的密钥的步骤。 在我们按下按钮之后 下载密钥对,密钥将保存为扩展名为 *.pem 的证书文件。 在这种情况下,我给它起了个名字 wireguard-awskey.pem

AWS 上的 Wireguard 免费 VPN 服务

2.1.8. 实例创建结果概览

接下来,我们会看到一条关于成功启动我们刚刚创建的实例的消息。 我们可以通过单击按钮转到我们的实例列表 查看实例

AWS 上的 Wireguard 免费 VPN 服务

2.2. 创建外部 IP 地址

2.2.1. 开始创建外部 IP

接下来,我们需要创建一个永久的外部 IP 地址,我们将通过该地址连接到我们的 VPN 服务器。 为此,请在屏幕左侧的导航面板中选择项目 弹性IP 从类别 网络与安全 然后按下按钮 分配新地址

AWS 上的 Wireguard 免费 VPN 服务

2.2.2. 配置创建外部IP

在下一步中,我们需要启用该选项 亚马逊池 (默认启用),然后单击按钮 分配

AWS 上的 Wireguard 免费 VPN 服务

2.2.3. 创建外部IP地址的结果概览

下一个屏幕将显示我们收到的外部 IP 地址。 建议背下来,写下来更好。 在进一步设置和使用VPN服务器的过程中,它会不止一次派上用场。 在本指南中,我以 IP 地址为例。 4.3.2.1. 输入地址后,按下按钮 关闭

AWS 上的 Wireguard 免费 VPN 服务

2.2.4. 外部 IP 地址列表

接下来,我们将看到一份永久公共 IP 地址(弹性 IP)的列表。

AWS 上的 Wireguard 免费 VPN 服务

2.2.5. 为实例分配外部 IP

在这个列表中,我们选择我们接收到的 IP 地址,然后按下鼠标右键弹出一个下拉菜单。 在其中,选择项目 关联地址将其分配给我们之前创建的实例。

AWS 上的 Wireguard 免费 VPN 服务

2.2.6. 外部 IP 分配设置

在下一步中,从下拉列表中选择我们的实例,然后按下按钮 律师

AWS 上的 Wireguard 免费 VPN 服务

2.2.7. 外部 IP 分配结果概览

之后,我们可以看到我们的实例及其私有 IP 地址已绑定到我们的永久公共 IP 地址。

AWS 上的 Wireguard 免费 VPN 服务

现在我们可以通过 SSH 从我们的计算机从外部连接到我们新创建的实例。

3.连接到AWS实例

SSH的 是一种用于远程控制计算机设备的安全协议。

3.1. 从 Windows 计算机通过 SSH 连接

要连接到 Windows 计算机,您首先需要下载并安装程序 油灰.

3.1.1. 为 Putty 导入私钥

3.1.1.1. 安装 Putty 后,需要运行自带的 PuTTYgen 实用程序导入 PEM 格式的证书密钥,格式适合在 Putty 中使用。 为此,请选择顶部菜单中的项目 转换->导入密钥

AWS 上的 Wireguard 免费 VPN 服务

3.1.1.2。 选择 PEM 格式的 AWS 密钥

接下来,选择我们之前在步骤 2.1.7.1 中保存的密钥,在我们的例子中是它的名称 wireguard-awskey.pem

AWS 上的 Wireguard 免费 VPN 服务

3.1.1.3. 设置密钥导入选项

在这一步,我们需要为这个密钥指定注释(描述),并设置密码和确认以确保安全。 每次连接时都会请求它。 因此,我们使用密码保护密钥免遭不当使用。 您不必设置密码,但如果密钥落入坏人之手,则安全性会降低。 我们按下按钮后 保存私钥

AWS 上的 Wireguard 免费 VPN 服务

3.1.1.4。 保存导入的密钥

保存文件对话框打开,我们将私钥保存为扩展名为 .ppk适合在程序中使用 油灰.
指定密钥的名称(在我们的例子中 wireguard-awskey.ppk) 并按下按钮 确定提交.

AWS 上的 Wireguard 免费 VPN 服务

3.1.2. 在 Putty 中创建和配置连接

3.1.2.1. 创建连接

打开Putty程序,选择一个类别 时间 (默认打开)和在现场 Host Name(主机名) 输入我们在步骤 2.2.3 中收到的服务器的公共 IP 地址。 在现场 保存的会话 为我们的连接输入一个任意名称(在我的例子中 wireguard-aws-伦敦), 然后按下按钮 保存 保存我们所做的更改。

AWS 上的 Wireguard 免费 VPN 服务

3.1.2.2. 设置用户自动登录

更多类别 连系 :, 选择一个子类别 时间 并在现场 自动登录用户名 输入用户名 Ubuntu的 是使用 Ubuntu 的 AWS 上实例的标准用户。

AWS 上的 Wireguard 免费 VPN 服务

3.1.2.3. 选择用于通过 SSH 连接的私钥

然后转到子类别 连接/SSH/授权 在田野旁边 认证专用密钥文件 按下按钮 浏览… 选择带有密钥证书的文件。

AWS 上的 Wireguard 免费 VPN 服务

3.1.2.4。 打开导入的密钥

指定我们之前在步骤 3.1.1.4 导入的密钥,在我们的例子中它是一个文件 wireguard-awskey.ppk, 然后按下按钮 开放.

AWS 上的 Wireguard 免费 VPN 服务

3.1.2.5。 保存设置并开始连接

返回分类页面 时间 再次按下按钮 保存, 以保存我们在前面的步骤 (3.1.2.2 - 3.1.2.4) 中所做的更改。 然后我们按下按钮 可选 打开我们创建和配置的远程 SSH 连接。

AWS 上的 Wireguard 免费 VPN 服务

3.1.2.7. 在主机之间建立信任

在下一步中,我们第一次尝试连接时,会得到一个警告,我们没有在两台计算机之间配置信任,并询问是否信任远程计算机。 我们将按下按钮 ,从而将其添加到受信任主机列表中。

AWS 上的 Wireguard 免费 VPN 服务

3.1.2.8。 输入密码以访问密钥

之后,将打开一个终端窗口,如果您之前在步骤 3.1.1.3 中设置了密钥密码,则会在其中要求您输入密钥密码。 输入密码时,屏幕上不会发生任何操作。 如果你犯了错误,你可以使用钥匙 Backspace键.

AWS 上的 Wireguard 免费 VPN 服务

3.1.2.9. 连接成功欢迎信息

成功输入密码后,我们会在终端中看到一个欢迎文本,告诉我们远程系统已准备好执行我们的命令。

AWS 上的 Wireguard 免费 VPN 服务

4. 配置 Wireguard 服务器

可以在存储库中找到使用下述脚本安装和使用 Wireguard 的最新说明: https://github.com/isystem-io/wireguard-aws

4.1. 安装 WireGuard

在终端中输入以下命令(可以复制到剪贴板,在终端中按鼠标右键粘贴):

4.1.1. 克隆存储库

使用 Wireguard 安装脚本克隆存储库

git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws

4.1.2. 使用脚本切换到目录

转到包含克隆存储库的目录

cd wireguard_aws

4.1.3 运行初始化脚本

以管理员身份(root 用户)运行 Wireguard 安装脚本

sudo ./initial.sh

安装过程将询问配置 Wireguard 所需的某些数据

4.1.3.1. 连接点输入

输入 Wireguard 服务器的外部 IP 地址和开放端口。 我们在2.2.3步骤中获取了服务器的外网IP地址,在2.1.5步骤中开放了端口。 我们将它们一起表示,例如用冒号分隔它们 4.3.2.1:54321然后按下键 输入
示例输出:

Enter the endpoint (external ip and port) in format [ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321

4.1.3.2. 输入内部 IP 地址

在安全的 VPN 子网上输入 Wireguard 服务器的 IP 地址,如果您不知道它是什么,只需按 Enter 键设置默认值(10.50.0.1)
示例输出:

Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):

4.1.3.3. 指定 DNS 服务器

输入DNS服务器的IP地址,或者直接按回车键设置默认值 1.1.1.1 (Cloudflare 公共 DNS)
示例输出:

Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):

4.1.3.4。 指定 WAN 接口

接下来,您需要输入将在 VPN 内部网络接口上侦听的外部网络接口的名称。 只需按 Enter 即可设置 AWS 的默认值 (eth0)
示例输出:

Enter the name of the WAN network interface ([ENTER] set to default: eth0):

4.1.3.5。 指定客户名称

输入 VPN 用户的名称。 事实上,在至少添加一个客户端之前,Wireguard VPN 服务器将无法启动。 在这种情况下,我输入了名称 Alex@mobile
示例输出:

Enter VPN user name: Alex@mobile

之后,屏幕上会显示一个带有新添加客户端配置的二维码,必须使用 Android 或 iOS 上的 Wireguard 移动客户端读取该二维码以进行配置。 并且在二维码下方,如果手动配置客户端,将显示配置文件的文本。 如何做到这一点将在下面讨论。

AWS 上的 Wireguard 免费 VPN 服务

4.2. 添加新的 VPN 用户

添加新用户,需要在终端执行脚本 add-client.sh

sudo ./add-client.sh

该脚本要求输入用户名:
示例输出:

Enter VPN user name: 

此外,用户名可以作为脚本参数传递(在本例中 Alex@mobile):

sudo ./add-client.sh Alex@mobile

作为脚本执行的结果,在路径中带有客户端名称的目录中 /etc/wireguard/clients/{ИмяКлиента} 将创建客户端配置文件 /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf,终端屏幕会显示手机客户端设置二维码和配置文件内容。

4.2.1. 用户配置文件

您可以在屏幕上显示 .conf 文件的内容,用于客户端的手动配置,使用命令 cat

sudo cat /etc/wireguard/clients/Alex@mobile/[email protected]

执行结果:

[Interface]
PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit+jbzT5cshNUi8zlM=
Address = 10.50.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = mLnd+mul15U0EP6jCH5MRhIAjsfKYuIU/j5ml8Z2SEk=
PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 4.3.2.1:54321

客户端配置文件说明:

[Interface]
PrivateKey = Приватный ключ клиента
Address = IP адрес клиента
DNS = ДНС используемый клиентом

[Peer]
PublicKey = Публичный ключ сервера
PresharedKey = Общи ключ сервера и клиента
AllowedIPs = Разрешенные адреса для подключения (все -  0.0.0.0/0, ::/0)
Endpoint = IP адрес и порт для подключения

4.2.2. 客户端配置二维码

您可以使用以下命令在终端屏幕上显示先前创建的客户端的配置二维码 qrencode -t ansiutf8 (在此示例中,使用名为 Alex@mobile 的客户端):

sudo cat /etc/wireguard/clients/Alex@mobile/[email protected] | qrencode -t ansiutf8

5. 配置 VPN 客户端

5.1. 设置 Android 移动客户端

Android 的官方 Wireguard 客户端可以是 从官方 Google Play 商店安装

之后,您需要通过读取带有客户端配置的二维码来导入配置(请参阅第 4.2.2 段)并为其命名:

AWS 上的 Wireguard 免费 VPN 服务

导入配置成功后,即可启用VPN隧道。 Android 系统托盘中的密钥存储将指示成功连接

AWS 上的 Wireguard 免费 VPN 服务

5.2. Windows 客户端设置

首先你需要下载并安装程序 适用于 Windows 的 TunSafe 是 Windows 的 Wireguard 客户端。

5.2.1. 创建导入配置文件

右键单击以在桌面上创建一个文本文件。

AWS 上的 Wireguard 免费 VPN 服务

5.2.2. 从服务器复制配置文件的内容

然后我们返回 Putty 终端并显示所需用户的配置文件的内容,如步骤 4.2.1 所述。
接下来在Putty终端中右键配置文本,选择完成后会自动复制到剪贴板。

AWS 上的 Wireguard 免费 VPN 服务

5.2.3. 将配置复制到本地配置文件

在此字段中,我们返回到我们之前在桌面上创建的文本文件,并将配置文本从剪贴板粘贴到其中。

AWS 上的 Wireguard 免费 VPN 服务

5.2.4. 保存本地配置文件

以扩展名保存文件 .conf (在这种情况下名为 london.conf)

AWS 上的 Wireguard 免费 VPN 服务

5.2.5. 导入本地配置文件

接下来,您需要将配置文件导入到 TunSafe 程序中。

AWS 上的 Wireguard 免费 VPN 服务

5.2.6. 设置 VPN 连接

选择此配置文件并通过单击按钮进行连接 分享链接.
AWS 上的 Wireguard 免费 VPN 服务

6.检查是否连接成功

要通过 VPN 隧道检查连接是否成功,您需要打开浏览器并转到该站点 https://2ip.ua/ru/

AWS 上的 Wireguard 免费 VPN 服务

显示的 IP 地址必须与我们在步骤 2.2.3 中收到的 IP 地址相匹配。
如果是这样,则 VPN 隧道运行成功。

在 Linux 终端中,您可以通过键入以下内容来检查您的 IP 地址:

curl http://zx2c4.com/ip

或者如果你在哈萨克斯坦,你可以直接去 pornhub。

来源: habr.com

添加评论