互联网用户在选择VPN服务时会选择很多,但他们要么需要按月订阅,要么不安全,要么速度很慢。幸运的是,确实存在替代方案。他们需要更多的技术知识,但是如果您想做对的事情,就必须自己做.
要了解如何制作自己的VPN,可以观看视频或阅读文章。请注意,本文包含一些有用的命令和配置文本,为方便起见,您可以将其复制和粘贴. 更新: 该视频使用的旧版本的easy-rsa不再可用。到达8分钟时,请参阅本文以了解easy-rsa 3的配置.
入门
如果您使用的带宽,时间和空间少于预定数量,Amazon Web Services将提供一年的免费虚拟服务器空间。即使您超过了该限制,在Amazon Elastic Compute Cloud上运行服务器映像的成本也可能比您为VPN订阅支付的费用还要少。.
在这里,我们将说明两种不同的方式来使用Amazon的Elastic Cloud服务(也称为EC2)来通过您选择的私有位置转移连接:SSH隧道和OpenVPN。每种都有优点和缺点,因此请使用一种更适合您需要的组件。无论您选择哪种方式,都需要满足以下条件:
- 一个Amazon Web Services帐户。这需要一张信用卡,但是您只需要为自己的使用付费,如果您对自己的工作谨慎的话,可能就什么都不用了.
- 抱歉,如果您使用的是Windows。通过Cygwin的OpenSSH是另一种选择,但我发现这很麻烦。 Linux和Mac计算机已经在其盒子和终端中内置了SSH提示符。您还需要PuTTy的姊妹密钥生成程序PuttyGen.
- WinSCP或等效的FTP客户端,用于在本地计算机和EC2实例之间移动文件.
- 如果某些事情不按计划进行,则对Unix命令的基本工作知识以及服务器如何与客户端一起使用将在故障排除方面大有帮助。.
- OpenVPN GUI,安装在默认位置并在PC上具有默认设置
设置AWS
注册Amazon Web Services帐户后,以下是启动用于VPN的服务器的方法:
- 登录您的Amazon Web Service帐户并转到EC2仪表板.
- 在右上角,您可以选择我们用来设置VPN的位置。单击启动实例.
- 选择任何列为“符合免费套餐资格”的Linux AMI。在撰写本文时,这就是Amazon Linux AMI。继续下一步.
- 在这里选择一个同时具有免费套餐资格的t2.micro实例。点击“查看并启动”。
- 在下一页上,单击 编辑安全组.
- 您需要编辑安全组,以仅允许来自计算机的流量访问VPN或代理。您应该已经有一条规则可以通过SSH连接到服务器,稍后我们将使用它。我们需要添加另一个以允许OpenVPN连接,默认情况下使用端口1194。为简单起见,在 入站 标签,点击 添加规则 按钮。设置 类型 至 自定义UDP, 的 端口范围 至 1194, 和来源 任何地方.
- 击中 保存.
- 点击“查看并启动”,然后在下一页上“启动”.
- 现在,您要创建一个密钥对,该密钥对的工作方式类似于密码,用于连接到您要创建的虚拟服务器。从下拉菜单中选择“创建新的密钥对”,然后随意命名。单击按钮下载密钥对。存放在安全的地方.
- 下一页应警告您实例正在启动。滚动到底部,然后点击“查看实例”。在这里,您会看到已启动的所有实例的列表,如果这是您首次使用EC2,则将只是一个实例.
使用PuTTy连接到服务器
我们可以使用PuTTy连接到我们的EC2实例,但是首先我们需要一个正确的密钥文件来进行连接。当您安装PuTTygen时,您还应该安装PuTTygen。继续并立即运行它。 PuTTy和PuTTygen都可以作为.exe文件直接使用,无需安装.
- 打开PuTTygen,单击“加载”.
- 导航到之前下载的.pem密钥对文件,并将其加载到Puttygen中。您必须选择显示所有文件类型的选项,.pem键才能显示。点击“保存私钥”。文件名必须与.pem密钥相同。您可以根据需要为私钥创建一个密码短语.
- 现在关闭PuTTygen,然后打开PuTTy。将您实例的公共IP从EC2控制台复制到PuTTy。输入会话名称,然后点击保存.
- 在左窗格中,导航到SSH下的“ Auth”。单击底部的浏览按钮,然后导航到您刚刚生成的私钥.
- 返回“会话”主页面,命名并保存会话配置文件,以便下次使用PuTTy时可以快速建立连接。然后点击打开.
- 出现提示,要求您输入用户名。这取决于您在一开始设置的服务器类型。对于Amazon Linux AMI,它是“ ec2用户”.
SSH隧道(可选)
首先,我们将通过使用SSH隧道和代理创建的实例重新路由网络流量。这是绕过防火墙或地理锁定的快速而肮脏的方法。它不是VPN,它最适合用于轻量级的Web流量,并且不能与所有功能一起使用,但它的设置要简单得多。然而, 设置SSH隧道是完全可选的, 请随时跳到下一部分.
打开PuTTy,然后在左侧疼痛中导航至“隧道”。添加端口8080,并选择“自动”和“动态”。返回“会话”页面,然后再次点击“保存”,因此您无需再次进行所有操作。然后点击打开.
现在,您已经连接到服务器,但是仍然需要通过它路由网络浏览器的流量。如果您使用Firefox,则可以在浏览器设置中完成。如果您使用的是Chrome,请下载Proxy Switchy扩展程序. 如果您想创建功能全面的VPN,而不仅仅是浏览器的代理,请立即跳至下一部分.
在Firefox中:
- 转到工具 > 选件 > 高级 > 网络 > 连接 > 设定值 > 手动代理配置
- 将SOCKS主机设置为127.0.0.1,将端口设置为8080(或将隧道端口设置为PuTTy上的任何设置).
- 单击确定保存
在Chrome Proxy Switchy中
- 安装扩展程序后,应该会出现一个设置页面,或者单击Chrome右上角的图标,然后单击“选项”。.
- 随心所欲命名个人资料。在“手动配置”下,将SOCKS主机设置为127.0.0.1,将端口设置为8080(或在PuTTy中将隧道端口设置为的任何设置。.
- 点击保存,然后再次单击图标以选择您的代理配置文件.
瞧!现在,您的浏览器流量正在通过EC2实例进行传输。这对于基本浏览而言效果很好,但是某些网站可能会出现问题,并且您的网络浏览器以外的应用仍将使用直接连接。要创建可重新路由所有互联网流量的完整VPN,请继续阅读.
在服务器和客户端上设置OpenVPN
OpenVPN是免费的开源工具,可让您通过Amazon EC2实例运行完整VPN。这意味着您所有的互联网流量都会经过它,而不仅仅是像上面的代理这样的Web浏览器流量。 Steam或Spotify之类的桌面程序可以通过这种方法更好地工作.
根据上面的说明,使用PuTTy连接到您的EC2实例。您前面应该有一个命令提示符,上面写着Amazon Linux AMI。运行以下命令(键入或复制/粘贴它们,然后按Enter键):
须藤yum install -y openvpn
须藤modprobe iptable_nat
回声1 |须藤tee / proc / sys / net / ipv4 / ip_forward
sudo iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j伪装
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j伪装
这里只是一个简短的说明。您可能已经在屏幕截图中注意到,我错误地尝试使用“ apt-get”命令而非“ yum”命令下载并安装OpenVPN。其他一些Linux版本仍使用apt-get,因此如果yum不适合您,请尝试使用以下命令:
须藤apt-get install -y openvpn
安装OpenVPN时,命令提示符下会闪烁一堆文本。其他三个命令设置IP转发,这对于VPN起作用是必需的.
方法1:使用easy-rsa设置PKI身份验证(推荐)
在本教程的原始版本中,我们使用静态加密和.ovpn文件设置了OpenVPN。尽管这种方法有效,但一次只能连接一台设备,而且您只使用一个密钥就意味着它的安全性较低。现在,我们建议读者使用easy-rsa设置身份验证,该身份验证更安全,并允许同时连接任意数量的设备。但是,如果要使用静态加密的旧版本,请单击此处跳到旧版本.
2023年5月更新:本文已更新,可与easy-rsa 3一起使用.
OpenVPN和Easyrsa服务器设置
理想情况下,您将在与VPN服务器不同的设备上生成所需的所有密钥和证书,以实现最大的安全性。但是,这可能非常乏味,因此我们将在服务器上同时生成客户端和服务器凭据,然后从那里将文件移到需要它们的位置.
- Easy-rsa在默认的yum软件包列表中不可用,因此我们需要启用EPEL repo进行安装。在PuTTy终端中输入以下内容,然后按Enter:
- sudo yum install easy-rsa -y –enablerepo = epel
- 在您的OpenVPN安装目录中创建一个easy-rsa目录。将文件从easy-rsa安装(截至撰写本文时最新版本为3.0.3)复制到新目录:
- 须藤mkdir / etc / openvpn / easy-rsa
cd / etc / openvpn / easy-rsa
须藤cp -Rv /usr/share/easy-rsa/3.0.3/*
- 须藤mkdir / etc / openvpn / easy-rsa
- 现在,我们准备设置我们的证书颁发机构。首先初始化新的PKI(公共密钥基础结构)目录,然后构建证书颁发机构密钥对.
- 须藤./easyrsa init-pki
须藤./easyrsa build-ca
- 须藤./easyrsa init-pki
- 输入PEM密码。这不是必需的,但建议这样做。如果某人以某种方式掌握了您的CA,则没有密码他们将无法创建密钥或签署证书.
- 系统会提示您输入一个通用名称。随便你打还是随便打 输入 将其保留为默认值.
- 接下来,我们将生成Diffie-Hellman密钥,该密钥可提供完美的前向保密性:
- 苏多./easyrsa gen-dh
- 此命令可能需要一段时间。它将生成一个名为 佩姆. 完成后,我们转到服务器凭据。为了方便起见,我们将不对这些密码进行密码保护,但是如果您想要更严格的安全性,当然欢迎您这样做.
- sudo ./easyrsa gen-req服务器nopass
- 击中 输入 保留通用名称为 服务器. 密钥对生成后,对证书签名:
- sudo ./easyrsa登录请求服务器服务器
- 类型 是 确认并输入您的CA密码(如果您设置的较早).
- 现在,我们将设置客户端。同样,我们不会为此设置密码,但是欢迎您。请注意,如果您想配置VPN自动启动,最好不要设置密码.
- ./ easyrsa gen-req客户nopass
- 击中 输入 保留通用名称为 客户. 现在签名:
- sudo ./easyrsa sign-req客户端客户端
- 类型 是 确认并输入您的CA密码(如果您设置了一个).
- 接下来,我们将生成TLS密钥,以在OpenVPN中实现完美的前向保密性,以确保即使攻击者掌握了我们的私钥,过去的会话数据也不会被解密.
- cd / etc / openvpn
openvpn –genkey –secret pfs.key
- cd / etc / openvpn
- 现在,我们已经生成了所需的所有凭证文件。接下来,我们将创建一个OpenVPN服务器配置文件。我们已经在下面为您撰写了一篇文章,因此,如果您从一开始就遵循的话,那么您要做的就是复制和粘贴。首先导航到OpenVPN目录并创建一个新文件:
- cd / etc / openvpn
须藤nano server.conf
- cd / etc / openvpn
- 您现在处于nano文本编辑器中。复制并粘贴以下配置,然后点击 CTRL + O 保存, 输入 确认,并 Ctrl + X 退出。 (提示:您可以通过右键单击将剪贴板中的文本粘贴到PuTTy中)
- 1194端口
原始udp
开发屯
ca /etc/openvpn/easy-rsa/pki/ca.crt
证书/etc/openvpn/easy-rsa/pki/issued/server.crt
密钥/etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
密码AES-256-CBC
身份验证SHA512
服务器10.8.0.0 255.255.255.0
推 "重定向网关def1旁路dhcp"
推 "dhcp选项DNS 8.8.8.8"
推 "dhcp选项DNS 8.8.4.4"
ifconfig-pool-persist ipp.txt
保持活动10120
康宝
持久键
坚持不懈
状态openvpn-status.log
日志附加openvpn.log
动词3
tls服务器
tls-auth /etc/openvpn/pfs.key
- 1194端口
- 现在已配置服务器。我们只需要启动OpenVPN。我们将其作为一项服务启动,以便即使您关闭PuTTy,它也将继续运行,直到服务器关闭或您手动终止该服务为止.
- sudo服务openvpn启动
编辑: 一些读者指出,服务器重启或维护后,其VPN服务器将停止工作。微型EC2实例偶尔会发生这种情况。为避免这种情况,我们将在评论部分中使用由Matt Doyle提供的命令和bash脚本。从以下命令开始:
sudo chkconfig openvpn开启
当您仍在etc / openvpn中时,请使用 纳米服务器 创建一个新的文本文件并将以下内容粘贴到其中:
#!/ bin / sh
回声1 |须藤tee / proc / sys / net / ipv4 / ip_forward
sudo iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j伪装
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j伪装
采用 CTRL + O 保存并 Ctrl + X 退出.
该命令将确保OpenVPN在服务器启动时启动,并且脚本将确保在iptables中设置了必要的路由以允许OpenVPN流量.
OpenVPN和Easyrsa客户端设置
现在已经配置了服务器,我们需要设置客户端。为此,我们必须将必要的证书和密钥文件从服务器移至客户端设备。在PuTTy仍然打开并以root用户身份运行的情况下,我们首先需要更改这些文件的权限,以便我们可以访问它们。我们还将它们全部放在一个地方,以使事情变得容易一些.
- 要访问其中一些文件,我们需要成为root用户。为此,请键入:
- 苏多苏
- 这将使您成为root用户并授予管理权限。现在输入以下命令。最后一个命令降低访问这些文件所需的权限。请注意,完成后将其改回很重要.
- cd / etc / openvpn
mkdir键
cp pfs.key键
cp /etc/openvpn/easy-rsa/pki/dh.pem键
cp /etc/openvpn/easy-rsa/pki/ca.crt密钥
cp /etc/openvpn/easy-rsa/pki/private/ca.key密钥
cp /etc/openvpn/easy-rsa/pki/private/client.key密钥
cp /etc/openvpn/easy-rsa/pki/issued/client.crt密钥
chmod 777 *
- cd / etc / openvpn
- 要将文件从服务器上移到PC上,我们将使用一个名为WinSCP的免费程序。只需使用默认安装选项即可。完成后,将弹出一个窗口,提示您从PuTTy导入服务器身份验证详细信息。选择我们上面所做的,然后继续.
- 选择myvpn(或任何您命名的名称),然后点击“编辑”按钮。输入 ec2用户 在用户名下。点击登录.
- 如果这不是您第一次使用WinSCP,可以通过单击来设置在PuTTy中使用的.ppk文件。 编辑 和 高级. 去 SSH协议 > 认证方式 > 私钥文件 并导航到您的PPK文件.
- 在主页上的主机名字段中,您可以输入EC2实例的IP地址或域。确保保存您的设置,然后点击 登录.
- 在右窗格中,导航到包含密钥文件的目录,在这种情况下 / etc / openvpn /密钥
- 突出显示您需要的六个文件: client.crt,client.key,ca.crt,dh.pem, pfs.key, 和 密钥 (由于文章更新而未显示)。打绿色 下载 按钮。只要您不需要管理员权限即可访问它们,它们在左窗格中的位置并不重要。为了简单起见,我们将文件放在桌面上。但是,您需要将ca.key文件存储在安全的地方,例如USB驱动器.
- 我们需要捆绑的最后一个松散端是 从服务器中删除ca.key文件. CA或证书颁发机构用于对客户端证书进行签名,并且如果该证书曾经被泄露,则永远不能再信任该CA颁发的证书。尽管这对于VPN来说不是必需的,但我们强烈建议您这样做, 特别是如果您没有为CA设置密码. 删除文件之前,请确保已拥有要连接的每个设备的所有密钥和证书。如果要在以后添加更多文件,则必须将ca.key文件移回到服务器上.
- 一旦将CA密钥安全地存储在服务器之外的其他位置,请进入PuTTy并删除原始ca.key和我们从服务器制作的副本:
- 须藤rm /etc/openvpn/easy-rsa/pki/private/ca.key
须藤rm /etc/openvpn/keys/ca.key
- 须藤rm /etc/openvpn/easy-rsa/pki/private/ca.key
- 下载文件后,我们需要在服务器上恢复其更严格的权限,以便不仅仅是任何人都可以访问它们。回到PuTTy:
- cd / etc / openvpn / keys
须藤chmod 600 *
- cd / etc / openvpn / keys
- 在您的PC上,从下载的任何位置剪切并将这五个文件粘贴到OpenVPN config文件夹中。在这种情况下 C://程序文件// OpenVPN // config.
- 最后,我们需要创建一个客户端配置文件。右键单击并选择打开您喜欢的纯文本编辑器(记事本可以正常使用) 以管理员身份运行 并粘贴以下配置,用您的EC2实例的IP地址替换YOUR.EC2.INSTANCE.IP:
- 客户
开发屯
原始udp
远程YOUR.EC2.INSTANCE.IP 1194
ca cart
cert client.crt
关键客户端
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 :TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
密码AES-256-CBC
身份验证SHA512
解析无限
验证重试无
Nobind
持久键
坚持不懈
ns-cert-type服务器
康宝
动词3
客户端
tls-auth pfs.key
- 客户
- 这是OpenVPN GUI的Windows配置文件,因此我们将其另存为 客户程序. 其他OpenVPN客户端可能改用.conf扩展名。无论如何,请确保您的文本编辑器在保存后没有添加.txt扩展名。将其保存到密钥和认证文件所在的位置: C:\\ Program Files \\ OpenVPN \\ config
- 现在运行 OpenVPN GUI 在管理员模式下,右键单击并选择 以管理员身份运行. 右键单击系统任务栏中的图标,然后连接到 客户 我们刚刚设置的配置。带有大量文本的状态屏幕将在屏幕上闪烁,然后该图标将变为绿色。.
恭喜你!您现在已连接到自制VPN.
方法2:静态加密(更简单,但不推荐)
通过这种方法,我们将创建一个用于身份验证的共享密钥。有点像充当密码的文件。设置起来比较容易,但一次只能将一个设备连接到VPN,并且安全性比上面的easy-rsa方法低.
- 在PuTTy中,键入以下命令,然后按Enter键:
- cd / etc / openvpn
须藤openvpn –genkey –secret ovpn.key
- cd / etc / openvpn
- 现在,我们将为VPN创建一个服务器配置文件。键入以下命令,以在终端内部的非常基本的文本编辑器中创建空白文本文件:
- 须藤nano openvpn.conf
- 输入以下配置。如果您想稍后再玩,可以在OpenVPN网站上找到更多选项,但请确保您先了解自己在做什么。.
- 1194端口
原型tcp-server dev tun1
ifconfig 10.4.0.1 10.4.0.2
状态服务器-tcp.log
动词3
秘密ovpn.key
- 1194端口
- 现在按CTRL + O(即字母“ O”不为零),然后按Enter保存文件。然后按CTRL + X退出文本编辑器。回到命令提示符,是时候启动OpenVPN了:
- sudo服务openvpn启动
- 接下来,我们需要从服务器到本地计算机获取共享密钥。首先,我们需要更改该文件的权限,以便可以使用以下命令对其进行访问:
- 须藤chmod 777 ovpn.key
- 如果在任何时候不小心关闭了PuTTy或只是突然退出,都可以使用以下命令在重新连接后导航回打开的VPN安装目录:
- cd / etc / openvpn
- 为了尽可能简单,下载并安装WinSCP这个免费的应用程序(Mac用户必须找到另一个FTP客户端。不用担心,其中有很多)。只需使用默认安装选项即可。完成后,将弹出一个窗口,提示您从PuTTy导入服务器身份验证详细信息。选择我们上面所做的,然后继续.
- 选择myvpn(或任何您命名的名称),然后点击“编辑”按钮。在用户名下键入“ ec2-user”。点击登录.
- 现在,您可以在EC2实例服务器和本地计算机之间移动文件。在右侧面板上,尽可能向上导航,然后转到etc / openvpn。在这里,您会找到我们需要的ovpn.key文件。点击并将其拖到您选择的文件夹中,但请记住将其放置在什么位置,因为稍后我们将对其进行移动.
- 现在您有了密钥,我们需要重新应用旧的权限,以便不仅仅是任何人都可以抓住它。返回您的PuTTy终端,输入:
- 须藤chmod 600 ovpn.key
- 现在该下载适用于本地计算机的OpenVPN客户端和GUI了。转到OpenVPN下载页面,然后为您的操作系统选择合适的版本。使用默认设置安装.
- 启动OpenVPN,它应在系统任务栏中显示为图标。打开文件浏览器,然后导航到OpenVPN的安装位置,可能在Program Files文件夹中。将我们从服务器下载的opvn.key文件移动到此处的config文件夹(C:/ Program Files / OpenVPN / config…,如果您使用Windows上的默认安装目录).
- 接下来,我们需要为本地计算机创建一个配置文件,以匹配我们在服务器上创建的配置文件。打开记事本并粘贴以下内容,将“远程”后的IP地址替换为EC2实例的IP(如果忘记了,请在AWS控制台的EC2实例下找到它)。另外,请仔细检查指向密钥的完整文件路径是否正确.
- 原始TCP客户端
远程
1194端口
开发屯
秘密 "C:\\ Program Files \\ OpenVPN \\ config \\ ovpn.key"
重定向网关def1
ifconfig 10.4.0.2 10.4.0.1
- 原始TCP客户端
- 将其另存为OpenVPN安装的config文件夹中的myconfig.ovpn(确保您的文本编辑器没有错误地将其附加为myconfig.ovpn.txt),与opvn.key文件相同.
- 右键单击系统任务栏中的OpenVPN图标,然后单击“退出”以退出。现在,从桌面快捷方式或从Program Files文件夹重新启动它,但是这次使用右键单击并单击“以管理员身份运行”。如果您未在Windows上以管理员身份运行OpenVPN,则可能无法正常运行.
- 右键单击系统任务栏图标,然后单击连接。应弹出OpenVPN GUI,显示连接状态。假设工作正常,系统任务栏图标将变为绿色。转到Google并输入“我的IP是什么?”,它应该返回您的Amazon EC2实例的IP地址。.
恭喜,您刚建立了自己的VPN!
补充说明
如果您想保护您的VPN免遭深度数据包检查(中国和叙利亚等地的审查制度用来阻止OpenVPN连接的一种技术),请查看有关设置Obfsproxy的教程。请注意,本教程是本文旧版本方法2的续篇,因此,如果您使用easy-rsa,则将需要一些其他配置.
请记住,将带宽保持在亚马逊的免费套餐限制之内。最简单的方法是在AWS控制台中右键单击您的实例,然后单击“添加/编辑警报”链接。您可以将服务器设置为在闲置数小时后停止甚至终止。免费套餐每月允许您使用750个小时(涵盖整个月),因此您无需这样做。这些用户超过了最初的免费使用年限或对服务器进行了更多使用后,可以避免不必要的服务器时间费用.
在本教程的某个地方,您可能会出错。如果您确实想要VPN,但又不愿进行大量故障排除,那么最好选择付费VPN服务。它们还允许您通过多个地理位置引导Internet通信,而EC2实例仅限于一个。在这里查看我们的VPN评论!
将DNS服务器硬编码到您的VPN中
如果您需要设置特定的DNS服务器以用于VPN,则有两种选择.
要将DNS服务器“推送”到客户端,请将此行添加到服务器配置中。这将影响连接到您的VPN的所有设备(包括引号):
推 "dhcp选项DNS 45.56.117.118"
或者,您可以使用以下方法在单个客户端配置中设置DNS:
dhcp选项DNS 45.56.117.118
在这些示例中,我使用了位于美国的带有匿名日志记录的OpenNIC公共DNS服务器。您可以在所选国家/地区中找到OpenNIC服务器,并在此处通过匿名日志记录和DNSCrypt等功能进行过滤.
特别感谢Dctr Watson的博客,我在撰写本文时将其作为参考资源.
乔恩·沃森(我认为没有关系)对本文做出了贡献.
这篇文章介绍了在选择VPN服务时可能会遇到的问题,以及如何使用Amazon Web Services的EC2服务来创建自己的VPN。文章提供了两种不同的方式来连接到私有位置:SSH隧道和OpenVPN。虽然SSH隧道是一种快速而肮脏的方法,但它不是VPN,不能与所有功能一起使用。因此,文章建议使用OpenVPN来创建功能全面的VPN。文章提供了详细的步骤和命令,以帮助读者在服务器和客户端上设置OpenVPN。此外,文章还提供了一些有用的提示和注意事项,以帮助读者更好地理解和使用这些工具。总的来说,这篇文章对于想要创建自己的VPN的互联网用户来说是非常有用的。