严正声明:本文旨在为技术爱好者提供基于AWS
环境的OpenVPN
搭建指南,只以技术交流为目的,请勿以任何方式转载或非法谋取利益。
注意:有朋友反映OpenVPN
今年不太稳定,所以我另外测试了一下Shadowsocks
,并讲解了以阿里云服务器为例搭建Shadowsocks
的教程,链接如下:
请大家根据个人需求进行选择。
今天我来给各位介绍一下如何使用Amazon
云服务器来搭建属于自己的免费VPN
服务器(免费期一年)。
文章原创,重要步骤全部干货,实践所得,
先给大家看一下完成效果图:
速度不错,主要根据你部署的服务器位置和你与服务器连接的速度而定,另外资源也是可以用迅雷下载的。
有几点需要注意的:
Amazon
的EC2
云服务免费使用一年,但是需要信用卡信息才能开通。另外每月限制了15GB的向外流量(基本不用担心会用完),超过了第1GB免费,以后每G会按很低的价格收费。 开通界面是全英文的,另外由于使用了Google的CAPTCHA,视你所在地区,可能有时无法正常显示。OpenVPN是目前最安全的VPN连接方式(PPTP最不安全,L2TP/IPSec其次,另外速度较OpenVPN慢),具体协议的不同可以参考这篇文章:
Which is the Best VPN Protocol? PPTP vs. OpenVPN vs. L2TP/IPsec vs. SSTPOpenVPN Access Server 免费许可允许2个用户同时在线。如果需要允许更多用户,可以购买相应的收费许可。
OpenVPN现在出了一款叫Private Tunnel的VPN,是按数据流量收费的,免费试用200MB,有几种数据套餐,一年无限流量是29.9美金,测试速度很快,有多个节点可以切换。
我们需要做的准备如下:
- 开通
Amazon EC2
云服务器t2.micro
级别并安装了Ubuntu 16.04
(老版本也可以,本文以16.04
为例)的 实例(instance
)。- 连接上述服务器的私钥及公共
ip
(public address
)OpenVPN Access Server
Ubuntu 64位版(以下简称OpenVPN AS
),链接我在后文中会给出
另外下文中我会用AWS
指代Amazon Web Service
,可以简单理解为指代Amazon
。
当然,只要是云服务器,操作都是类似的,如果你想使用阿里云,可以先在以下地址领取代金券再购买:
使用阿里云的朋友请购买香港或国外地理位置的ECS
,国内机房不可用。
话不多说,马上开始。首先我们远程连接上我们的AWS
主机:
$ ssh -i your-key.pem ubuntu@server-public-address
AWS
主机麻烦之处在于你需要下载你的私钥(.pem
后缀文件),然后在连接的时候使用。
注意:请将
server-public-address
替换成你服务器的公共ip
(public address
),这个地址可以在AWS
后台找到。
连接成功进入Ubuntu
系统后,输入:
ubuntu:~$ sudo wget http://swupdate.openvpn.org/as/openvpn-as-2.5-Ubuntu16.amd_64.deb
以上地址已于 2018-3-2 日更新至 2.5 版本
目前OpenVPN
官网已经找不到直接下载链接,但是仍然可以通过地址进行下载, 或者通过AWS
云服务器市场进行安装:AWS OpenVPN
如果下载不成功可以到以下百度网盘地址下载,手动上传至服务器(下载完解压出
.deb
格式的文件备用):
blog.sbot.io - ovpnas-2.5.tar
密码:4krz
输入以上命令后,系统会自动下载Ubuntu
环境下的OpenVPN AS 2.5 64
位版本。接着我们输入
ubuntu:~$ sudo dpkg -i openvpn-as-2.5-Ubuntu16.amd_64.deb
进行安装。如果你看到以下信息,说明安装成功:
Selecting previously unselected package openvpn-as-2.5-Ubuntu16.amd_64.deb
(Reading database ... 140897 files and directories currently installed.)
Preparing to unpack openvpn-as-2.5-Ubuntu16.amd_64.deb
Unpacking openvpn-as (2.5-Ubuntu16) ...
Setting up openvpn-as (2.5-Ubuntu16) ...
The Access Server has been successfully installed in /usr/local/openvpn_as
Configuration log file has been written to /usr/local/openvpn_as/init.log
Please enter "passwd openvpn" to set the initial
administrative password, then login as "openvpn" to continue
configuration here: https://your-ip-address:943/admin
Access Server web UIs are available here:
Admin UI: https://your-ip-address:943/admin
Client UI: https://your-ip-address:943/
但是实际上我们还需要手动再重新配置一遍:
ubuntu:~$ sudo /usr/local/openvpn_as/bin/ovpn-init --force
一开始显示的条款我们需要手动输入yes
,其他的选项除了以下这项,其他全部直接点击回车,保留默认值:
Please specify the network interface and IP address to be
used by the Admin Web UI:
(1) all interfaces: 0.0.0.0
(2) eth0: 192.168.1.112
Please enter the option number from the list above (1-3).
> Press Enter for default [2]:
注意,一定要输入1(阿拉伯数字1)并按回车确定以选择
all interfaces: 0.0.0.0
。
这个步骤非常重要,否则你将不能连接上你的VPN
服务器。
如果你全部按照我所说的步骤来做的话,那么完成后,我们就可以设置Admin UI
的密码了:
ubuntu:~$ sudo passwd openvpn
该命令是linux
系统下用于更改用户密码的。这里我们的用户名是openvpn
,按照提示更改密码即可。输入完密码,我们还有一项重要工作,那就是设置服务器的Security Group
来保证能通过TCP
连接443
和 943
端口以及UDP
连接1194
端口。
我们在AWS
服务器管理后台左侧面板中,选择Security Groups
,然后点击右侧的Edit
按钮,加入以下几条规则:
点击保存就可以了。
好了,现在我们可以开始连接我们的Admin UI
了。首先在Amazon
后台查询一下你服务器的公共IP
,然后在浏览器中输入:
https://server-public-ip-address:943/admin
注意,请用你的服务器的public ip
替换上面的server-public-ip-address
。回车后我们会看到显示ssl
连接不安全的提示,没关系,仔细看浏览器提示中间偏下,选择继续,然后会跳转到Admin UI
的界面:
在这里我们输入之前配置的用户名和密码(用户名为openvpn
)即可进入后台管理界面。
这个时候我们点击左侧界面的Server Network Settings
,然后在Hostname or IP Address
一栏,填写上我们服务器的public ip
。注意,这步非常非常非常重要(必须说三遍,否则连接不上服务器)。
注意保存一下刚才的设置。然后页面顶部会出现一个按钮,请点击Update Running Server来更新服务器状态:
完成之后,我们就可以去下载客户端了。
Windows用户操作步骤(Linux
用户请跳过此步先往后看)
1> 点击以下链接下载客户端(版本2.4.6-I602
):
blog.sbot.io - ovpn-install.tar
密码668t
openvpn-install-2.4.6-I602
以上地址于2018-5-22
更新最新版本百度网盘地址,第二个链接是官方下载地址。百度网盘地址下载后请解压出.exe
文件。官网链接由于众所周知的原因,请使用迅雷等下载工具下载。下载好之后安装,然后打开客户端,发现客户端提示我们还没有导入配置文件。没关系,接着看下一步。
2> 在浏览器输入
https://server-public-ip-address:943
请用自己的公共ip
替换上面的server-public-ip-address
。回车后,然后我们会进入到Client UI
中:
右下角下拉菜单里,选择login
,然后输入我们之前设置的用户名和密码(用户名openvpn
),登录,然后会跳转至以下界面:
点击最底下的Yourself (user-locked profile)
链接,会下载一个名为client.ovpn
的文件,将其保存在桌面。在桌面找到这个文件,将这个文件放入刚才安装的客户端的config
文件夹中(注意,需要管理员权限):
C:\Program Files\OpenVPN\config
感谢kehanpan@outlook.com提供的信息参考,我们可以在client.ovpn中添加google的DNS,具体操作如下:
打开client.ovpn
,添加
dhcp-option DNS 8.8.8.8
3> 切回到我们的客户端,发现弹出了输入用户名和密码的选项了:
输入我们的用户名和密码(用户名openvpn
),然后等待连接成功。
现在我们就可以上网了!
Windows
用户在这里就已经完成操作了,现在我们讲一下Linux
用户如何操作(这里以Ubuntu 16.04 LTS
为例)。
1> 请输入命令安装OpenVPN
:
$ sudo apt-get install openvpn
2> 按照Windows
用户步骤中提到的第2
步,将client.ovpn
下载至本地(文件夹无所谓,请记录好保存路径即可)。
接着我们需要在client.ovpn
中添加以下两行:
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
3> 输入以下命令来打开并连接openvpn
:
$ sudo openvpn --script-security 2 --config client.ovpn
注意以上client.ovpn
请使用你刚才下载的路径进行替换。
这样Linux
用户的配置步骤也完成了。
最后,我们看到在之前下载
client.ovpn
文件的页面,我们可以看到OpenVPN
支持安卓到苹果一系列系统。Android
亲测表现相当出色,连接方便而且速度很快,不过没带google play
的手机需要到网上自己寻找apk
下载,就不多说了。IOS
客户端需要美国区域的app store
账户才能下载到。
这样一来再也不用烦恼敏感信息被盗,或者连不上,网速慢的情况了。
一年,两个用户,对于个人使用绰绰有余。
注意:如果出现连接不上的情况,请检查每一步是否完全按照给出的步骤操作,操作是否正确,另外可以用文本编辑器打开
client.ovpn
查看在Admin UI
里对于Hostname or IP Address
的设置是否正确。
另外连接时候的错误代码也可以提供一些有用的参考信息。
但是就是输入不了任何东西,不输入直接按enter的话,出现下面的提示:
Retype new UNIX password:
Sorry, passwords do not match
请问博主应该如何解决呢?谢谢大神!