AWS上的免费Wireguard VPN服务
推理
专制政权对互联网的审查增加了对有用互联网资源的封锁,使得不可能使用WEB,实质上侵犯了“ 世界人权宣言”所规定的见解和言论自由的基本权利 。
第十九条
人人有权享有见解和言论自由; 这项权利包括享有不受干扰地持有意见的自由,以及通过任何媒体和不论国界寻求,接受和传播信息和思想的自由。
以下是详细的6步说明,供非IT人员在由Ubuntu Server运行的实例(虚拟机)上使用12个月免费帐户,在Amazon Web Services(AWS)云基础架构中的 Wireguard技术上部署免费* VPN服务 04/18 LTS。
我试图使本演练对远离IT的人们尽可能友好。 唯一需要做的就是重复下面描述的步骤。
注意事项
阶段
- 注册AWS账户。
- 创建一个AWS实例。
- 连接到AWS实例。
- 配置Wireguard服务器。
- 配置VPN客户端。
- 验证VPN连接。
有用的链接
作者
1.注册AWS Free帐户
要注册一个AWS账户,您需要提交一个有效的电话号码和一张银行卡(Visa或Mastercard)。 我建议使用Yandex.Money或Qiwi钱包免费提供的虚拟卡。
AWS通过在注册时扣除1美元然后退款来检查卡的有效性。
1.1。 打开AWS管理控制台
单击链接: https : //aws.amazon.com/ ,单击“ 创建AWS账户”按钮。

1.2。 AWS账户创建
填写数据,然后单击继续按钮。


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

1.5。 帐号验证
AWS会验证您的电话号码并从您的银行卡中扣除1美元。 然后,您应该在计算机屏幕上获得4位代码,并收到来自Amazon的电话。 在通话过程中,您需要拨打屏幕上显示的4位数字代码。

1.6。 选择一个AWS支持计划
选择一个基本计划(免费)。

登录到AWS管理控制台

1.8。 选择数据中心的位置

1.8.1。 互联网速度测试
我建议您在https://speedtest.net/上对最近的数据中心进行速度测试,并选择最佳的连接方式。
以下是我所在地的速度测试结果:
伦敦的数据中心显示出最佳的速度结果,因此我选择继续进行。
2.创建一个AWS实例
2.1创建虚拟机(实例)
2.1.0 遵循实例创建步骤
2.1.0.1。 转到“实例启动”页面,选择EC-2服务

2.1.0.2。 启动虚拟服务器,称为Amazon EC-2实例

2.1.0.3。 选择Amazon机器映像(操作系统)-Ubuntu Server 18.04 LTS

2.1.1。 选择实例类型
默认情况下设置了t2.micro
实例类型,它是t2.micro
实例类型。 单击下一步:配置实例详细信息按钮继续。

禁用公共IP的自动分配,因为您将为实例分配静态IP。 单击下一步:添加存储按钮。

2.1.3。 添加存储
指定驱动器的大小-16GB就足够了。
单击下一步:添加标签按钮。

如果您有多个实例,则可以按标签对它们进行分组,以实现更好的管理。 但是,此功能是多余的。 因此,我们通过单击 “ 下一步:配置安全组”按钮来跳过此操作。

2.1.5。 开启端口
通过分配开放端口来配置防火墙。 打开端口的集合称为“安全组”。 您需要创建一个新的“安全组”,为其提供名称,描述和UDP端口(自定义UDP规则)。
在“端口范围”字段中,指定动态端口范围为49152-65535的端口号 。 就我而言,我选择了54321端口号。
单击查看并启动按钮以完成此步骤。

2.1.6。 查看实例启动设置
复查并检查“实例启动”的所有设置,如果一切正常,请单击“ 启动”按钮。

2.1.7。 创建访问密钥
在将用于远程连接到实例的对话框中创建或添加现有的SSH密钥。
选择“创建新密钥对”以生成新密钥。 给它起个名字,然后单击“ 下载密钥对”按钮,将生成的密钥下载到PC驱动器。 单击启动实例按钮。

2.1.7.1。 保存私钥(.pem)
单击“ 下载密钥对”时 ,会将密钥另存为.pem文件。
为了更好地管理,我为文件分配了wireguard-awskey.pem名称。

2.1.8。 实例启动摘要
接下来,您应该看到有关成功启动所创建实例的消息。 您可以通过单击查看实例按钮来访问实例列表。

2.2。 创建一个外部IP地址
2.2.1。 创建一个外部IP
接下来是创建外部IP地址,您将使用该IP地址连接到VPN服务器。
在导航面板的“ 网络和安全性”类别中找到“ 弹性IP” 。 单击分配新地址按钮。

2.2.2。 外部IP设定
在下一步中,您需要启用Amazon池 (默认情况下),然后单击“ 分配”按钮

2.2.3。 IP地址概述
下一个窗口显示由Amazon池分配的外部IP地址。 记下它,因为在配置过程和VPN服务器设置中将需要它。 在本指南中,我以IP地址4.3.2.1为例。
完成此步骤后,单击“ 关闭”按钮。

2.2.4。 外部IP地址列表
接下来,您应该获得公共IP地址(弹性IP)的列表。

2.2.5。 为实例分配外部IP
从列表中选择IP地址(请参阅2.2.3),然后单击鼠标右键以选择下拉菜单。
在此菜单中,选择关联地址以将IP分配给创建的实例。

2.2.6。 将地址与实例相关联
在下拉菜单中,选择创建的实例,然后单击关联按钮。

2.2.7。 外部IP分配摘要
现在,您应该已经创建了一个具有分配的公共IP地址的实例。 这使您可以从外部(从PC)通过SSH与实例建立远程连接。

3.连接到AWS实例
SSH是用于管理远程计算机设备的安全协议。
3.1。 通过SSH从Windows PC连接
下载并安装腻子以从Windows PC建立连接。
3.1.1。 导入腻子专用密钥
3.1.1.1。 将AWS密钥导入Putty
启动PuTTYgen实用程序,以将.pem格式的AWS密钥与适用于Putty的.ppk格式进行匹配。
为此,从顶部菜单中选择Conversions-> Import Key 。

接下来,选择您在2.1.7.1中处理的密钥
就我而言,它是wireguard-awskey.pem 。

3.1.1.3。 设置密钥导入参数
在此步骤中,您需要指定Key的导入参数-key 注释和key passphrase 。 每个连接都需要这些。 此外,它还使用密码保护密钥本身,防止未经授权的访问。
您可以跳过密码分配。 但这会使您的连接安全性降低,以防密钥落入错误的人手中。
完成后,单击“ 保存私钥”按钮。

3.1.1.4。 保存导入的.ppk密钥
您可以从保存文件对话框中以适用于Putty的.ppk
格式保存私钥。
指定密钥名称(在我的情况下为wireguard-awskey.ppk
),然后单击“ 保存”按钮。

3.1.2.1。 建立连接
运行Putty程序,选择“ 会话”类别(默认情况下处于打开状态),然后在“ 主机名”字段中输入服务器的公共IP地址。 我提醒您在步骤2.2.3中获得了公共IP地址。
在“ 保存的会话”字段中为连接指定任何名称(对我来说,它是wireguard-aws-london
)。 单击保存按钮。

3.1.2.2。 设置用户自动登录
从“ 连接”类别中选择“ 数据”子类别。 在“ 自动登录用户名”字段中输入自动登录用户名ubuntu 。 ( ubuntu是具有Ubuntu的AWS上的标准实例用户)。

3.1.2.3。 使用私钥进行SSH连接
遵循路径Connection-> SSH-> Auth子类别,然后单击Browse按钮以选择私钥文件。

3.1.2.4。 打开私钥文件
指定您先前在步骤3.1.1.4中导入的密钥wireguard-awskey.ppk
,然后单击“ 打开”按钮。

3.1.2.5。 保存更改并启动SSH远程连接
在“腻子配置”窗口的“ 会话”类别中,按“ 保存”按钮以应用您在( 3.1.2.2-3.1.2.4 )中所做的所有更改。
单击“ 打开”按钮以启动现成的SSH远程连接。

3.1.2.7。 设置主机之间的信任
在第一次连接时,您应该收到有关两台计算机(主机)之间缺乏信任的警告。 系统询问您是否信任远程主机。 单击“ 是”将远程主机添加到信任列表。

3.1.2.8。 输入密码以激活密钥
在腻子终端窗口中,输入您在步骤中设置的密钥密码
3.1.1.3 。 输入密码时,它不会在屏幕上显示任何操作。 不用担心,如果您输入有误,可以使用Backspace键。

3.1.2.9。 连接成功
输入正确的密码后,您将收到欢迎文本。 它通知您远程系统已准备好执行命令。

以下是脚本驱动的Wireguard安装和管理的说明。
我将指令的最新版本保存在存储库中: https : //github.com/isystem-io/wireguard-aws
4.1。 安装线卫
在Putty终端中输入以下命令。
您可以将它们复制到剪贴板,然后通过按鼠标右键将其粘贴到终端中。
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。 设置连接端点(IP:端口)
输入Wireguard服务器的外部IP地址(请参阅2.2.3 )和开放端口(请参阅2.1.5 )。 使用以下格式IP:port ,例如4.3.2.1:54321
。 按Enter键确认。
Enter the endpoint (external ip and port) in format[ipv4:port] (eg 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地址,或按Enter键设置默认值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。 指定客户名称
只有添加至少一个客户端,Wireguard VPN服务器才能启动。 输入VPN用户名。
就我而言,我输入了Alex @ mobil名称。
Enter VPN user name: Alex@mobile
之后,您应该收到添加的客户端配置的QR码。 此QR将用户配置应用于Android或iOS上的Wireguard移动客户端。
配置文件的文本也显示为QR。 如下文所述,您将需要手动配置客户端。

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/{ClientName}/{ClientName}.conf
。
客户目录:
/etc/wireguard/clients/{ClientName}
4.2.1。 用户配置文件
执行cat命令以获取用于客户端手动配置的.conf
文件的内容。
sudo cat/etc/wireguard/clients/Alex@mobile/Alex@mobile.conf
命令执行的结果如下:
[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 = Client's private key Address = Client IP Address DNS = DNS used by the client [Peer] PublicKey = Public key server PresharedKey = Shared server and client key AllowedIPs = Allowed addresses for connection (all - 0.0.0.0/0, :: / 0) Endpoint = IP address and port for connection
4.2.2。 带有QR码的客户端配置
执行qrencode -t ansiutf8
命令以获取创建的客户端配置的QR。 (在我的情况下,新的客户名称为Alex @ mobile)。
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8
5.1。 Android移动客户端设置
从官方GooglePlay商店下载适用于Android的Wireguard移动客户端。
扫描QR码以导入客户端配置(请参阅4.2.2 )并为其分配名称。

导入配置后,您可以启用VPN隧道。 Android系统中的一个小钥匙符号可确认VPN连接。

5.2。 Windows客户端安装程序
下载并安装TunSafe ,这是Windows的Wireguard客户端。
5.2.1。 创建本地文本文件以导入配置
在PC桌面上创建一个虚拟文本文件。

5.2.2。 从服务器复制配置文件
从服务器复制配置文件的内容。
然后,返回到Putty终端并显示用户配置文件的内容(请参阅4.2.1 )。
使用鼠标右键单击以在Putty终端中复制配置文本。

5.2.3。 将配置文本粘贴到本地文本文件
将配置文本从剪贴板粘贴到我们先前在桌面上创建的虚拟文本文件中(请参阅5.2.1 )。

5.2.4。 保存本地配置文件
将文本文件另存为.conf格式(在我的情况下为london.conf
)

5.2.5。 导入本地配置文件
将配置文件导入TunSafe程序。

5.2.6。 建立VPN连接
在TunSafe程序中,选择导入的配置文件,然后单击“ 连接”按钮。

6.验证VPN连接
使用https://2ip.ua/en/资源来验证VPN隧道连接。 如果显示的IP地址与我们在2.2.3中获得的IP地址匹配,则VPN隧道已启动并正在运行。

在Linux终端中,可以通过执行以下命令来检查IP地址:
curl http://zx2c4.com/ip