如何在实例上创建自己的VPN并通过此VPN路由其他实例?

时间:2013-11-13 17:57:38

标签: amazon-web-services amazon-ec2 vpn

据我所知,VPC亚马逊实例能够创建VPN连接,但每小时的成本为0.05美元。是否可以在实例上创建自己的VPN,然后通过此VPN路由其他实例?看起来它更具成本效益?有什么利弊?

2 个答案:

答案 0 :(得分:16)

  

据我所知,VPC亚马逊实例有能力......

为了澄清,您在Amazon VPC中的虚拟环境通常称为“VPC”,而不是“VPC实例”。 “VPC实例”通常是指在VPC内部配置的EC2实例。

固定的VPN连接可以从Amazon VPC配置到您所在位置的硬件设备,这会导致您提到的每小时0.05美元的费用(基本上是37.20美元/月)。这笔费用是for as long as the the connection is provisioned on the AWS side,无论是在您身边配置正确,还是在工作,都可以......因为您所支付的费用是使用亚马逊的硬件来容纳VPN。

对我来说,这似乎是一个非常好的交易,因为我的VPC VPN连接 - 一旦建立 - 几乎“只是工作”,如果底层硬件失败,似乎合理的假设,AWS的主动监控将检测这种情况和硬件将被替换,没有我需要的实际努力。

但是,是的,完全可以使用EC2实例配置VPN,但与使用本机解决方案时具有相似的弹性级别,您需要至少2个EC2实例才能进行故障转移。

Amazon article解释了如何使用EC2机器通过VPN将两个不同的VPC相互连接 - 因为这不是本机解决方案所支持的 - 但是理解如何完全不需要太多想象力您可以使用完全相同的逻辑将公司网络绑定到VPC,其设计与此处显示的设计非常相似。

但唯一的一点是0.05美元/小时比按需“m1.small”实例的价格便宜,每小时0.06美元,所以除非您想预付更多折扣或尝试使用将微型网络连接在一起的“微型”实例,VPC提供的本机解决方案似乎不费吹灰之力。

但要理解,本机解决方案(即AWS作为VPC的一部分提供的VPN服务)仅适用于固定的站点到站点(您的站点到AWS)连接......它具有与远程用户隧道进入您的VPC无关。对于为个人用户提供隧道进入VPC的临时按需连接,您需要推出自己的解决方案。

答案 1 :(得分:0)

可以在您的NAT实例上安装OpenVPN,例如查看文章:

创建Ubuntu实例

此实例将用作OpenVPN服务器。我正在使用Ubuntu 12.04 LTS

设置VPC安全组

在创建此实例之前,我需要为它创建一个新的VPC安全组。 从VPN控制台打开安全组,然后单击“创建安全组” 将其命名为openvpn并将其与您的VPC关联,然后单击“创建”。 选择Details选项卡,而不是组ID,在这种情况下是它 SG-cd7c94a2 选择“入站”选项卡,选择SSH规则,然后单击“添加规则”。 选择自定义UDP规则将OpenVPN的端口范围设置为1194。单击添加规则。 选择Custom TCP rule并输入943作为端口范围单击Add Rule。 选择“自定义TCP规则”并为端口范围输入946,然后单击“添加规则” 选择HTTPS,然后单击添加规则 单击应用规则更改。 这是安全规则 选择子网并复制公有子网的ID,在我的例子中是子网-4c657627

启动实例

现在启动实例 > ec2-run-instances ami-9c78c0f5 -b / dev / sda1 =:8:true -k pats-keypair -t t1.micro -s subnet-4c657627 -g sg-cd7c94a2 --private-ip-address 10.0.0.99 - -availability-zone us-east-1a

更改来源/目的地检查

从EC2控制台中选择新制作的实例并右键单击并选择“更改源/目标检查” 单击是,禁用

给它一个弹性IP

从VPC控制台中选择弹性IP,然后单击“分配新地址” 确保将其设置为VPC,然后单击是,分配 单击关联地址 选择刚刚创建的实例,然后单击Yes,Associate

SSH进入新实例

确认其启动并运行SSH到此框中 > ssh -i .ec2 / pats-keypair.pem ubuntu@107.23.79.220

安装OpenVPN

您需要从openvpn.net下载OpenVPN软件。这个版本的软件可以免费用于两个用户,否则每个用户每年花费5美元,但每年至少需要10个用户50美元,这并不是一件坏事。 https://openvpn.net/index.php/access-server/pricing.html [2] 从OpenVPN计算机运行以下命令 > wget https://swupdate.openvpn.org/as/openvpn-as-1.8.4-Ubuntu10.amd_64.deb > sudo dpkg -i openvpn-as-1.8.4-Ubuntu10.amd_64.deb 安装完成后,您将看到显示的管理Web界面地址 管理员需要密码才能为openvpn用户运行以下命令进行设置。 > sudo passwd openvpn 我只是将我的管理设置为测试目的。

配置OpenVPN

打开OpenVPN管理员网页 https:// 107.23.79.220:943 / admin

当然输入您的静态IP地址。 你会看到这样的东西,无论如何点击继续 现在将显示管理员登录页面。输入用户名openvpn和分配给该用户的密码,然后单击“登录” 单击“同意”以获取许可条款 单击“服务器网络设置” 在主机名字段中输入弹性IP地址 滚动到页面底部,然后点击保存设置

单击更新运行服务器

点击VPN设置

向下滚动到路由部分,将所有子网添加到此部分。我只有2个子网10.0.0.0/24和10.0.1.0/24

向下滚动并单击“保存设置” 单击“更新正在运行的服务器”

设置客户端计算机

在网络浏览器中打开https:// 107.23.79.220 /(更改您自己的IP地址。

以openvpn用户身份登录,然后单击go 单击“单击此处继续”这将下载您系统所需的软件以连接到此VPN

安装软件,在Windows机器上右键单击下载,然后单击“打开” 然后单击运行 应弹出此窗口,单击“是”以创建隧道。 该网站现在应该报告它已启动。 为了测试这一点,我将尝试ssh到我的实例 我有以下实例

10.0.0.20
10.0.1.30
10.0.0.25 NAT from aws
10.0.0.99

测试连接

从我的cygwing命令行:

ssh -i .ec2/pats-keypair.pem ubuntu@10.0.0.20