利用 AWS 的 EC2来搭建属于自己的 VPN 服务器(MAC平台)

其实网上有不少的教程了,但是我觉得没几篇是真的自己一步一步来的,即使有可能自己摸索出来了,遇到的坑也没说出来,其实还是有很多坑,我是一个追求完美的人。因为最近在利用 AWS 的 EC2来部署自己的 node项目,所以顺手搭建了一个 vpn。 这里假定你已经拥有了 AWS 的账户,没有的先去申请一个,AWS 的服务首年免费,次年如果不想付费可以继续申请一个新的账号

注意在申请新的账号的时候不要勾选额外的服务,否则你会被无端扣费,我之前就被扣了几百美元,不过国外平台就是服务不错,如果你真没有使用过这些服务,可以申诉回来的,找亚马逊客服,我的五百大洋就找回来了。


亚马逊的网站也支持中文简体,英文不好的童靴可以选择中文简体,页面左下方。 语言切换

EC2实例就相当于一个轻小型的服务器

1.选择区域

登录到 AWS 首页后,进入 AWS 服务,先选择右上角的地区,这里选择的地区说简单点就是你搭建的这个服务器所在的区域,我们选择亚太区域东京,可以检测各个区域的网络节点延迟,东京延迟是最低的 选择区域

2. 建立 EC2实例

  1. 选中所有服务->计算->EC2

  2. 点击启动实例 这里不需要管其他东西

这个截图中可以看到我的账户有两个正在运行的实例,分别绑定了两个 ip 地址,安全组以及秘钥对。后面会介绍

  1. 选择虚拟机,也就是要装在你的服务器的操作系统 勾选仅免费套餐,选中 Ubuntu Server, 点击选择进入下一步

  2. 选择实例类型 这里是默认的,因为只有这个是免费的,所以不需要改动,直接点击审核和启动

  3. 核查实例启动 然后就到了最后一步,中间的几部不需要管,有兴趣可以点进去看看,但是不需要做任何更改。点击启动

  4. 创建秘钥 这里需要创建一对秘钥,秘钥是用来远程登录服务器的,也就是接下来会在你自己的电脑上登录 AWS 的 EC2服务器,并在里面配置项目。

  • 点击创建新秘钥对
  • 填写秘钥名称,可以填 TXVPN
  • 下载秘钥对

    只有下载了秘钥对才能启动实例,一定要保存好这个秘钥对,很重要

  • 启动实例

接下来就可以看到实例已经启动了,这时候可以为实例设置一个名字方便好记

  1. 创建安全组,这个安全组可以指定访问的 ip,端口等等 点击网络与安全->安全组 会看到组名,刚才创建的实例默认是会创建一个安全组的,可以在实例界面拖到最后面查看默认生成的安全组名,然后在这个界面选中与刚才创建的实例相关联的安全组
  • 点击入站
  • 编辑

  • 编辑入站规则

  • 添加规则

    选择自定义 TCP 规则,在端口范围中填写1723,任何位置

  • 保存

  • 添加弹性 IP 点击网络与安全->弹性 ip->分配新地址 不添加了弹性ip,你的实例每次重新启动就会改变ip

10.关联弹性 ip 分配完之后 会回到分配新地址界面,这个时候选中已经分配的 ip 点击操作-> 关联地址

  • 选择实例

    这里会列出所有你创建的实例,所以前面的实例别名很重要,选中别名 TXVPN

  • 重新关联
  • 关联

3. 远程登录服务器,远程连接

点击实例->选择创建的 TXVPN 实例->连接

打开 mac 的终端或者 iTerm cd 到你之前下载秘钥的路径 复制点击关联弹出来的弹框上面的两个命令行,如果是一步一步下来的,不需要做任何更改。

第一次连接会出现一个提示,带有(yes/no)字样的,这里输入yes回车即可

如果出现

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-1041-aws x86_64)

说明已经等了到远程服务器了,只是这个服务器上什么也没有

4. 搭建 VPN 服务器

这里的步骤也是参考网络的文章,但是会备注几点坑 vim 的操作命令也要熟悉一点,至少知道增删改查

4.1. 配置 pptp

  1. 在刚才登录的终端输入
    sudo apt-get install pptpd
    
  2. 出现确认后输入 y回车
  3. 配置 pptp 在终端输入
    sudo vi /etc/pptpd.conf
    
    找到文件最后面,去掉下面两行的注释符号#,没有的在最后面加上这两行 localip 192.168.0.1 remoteip 192.168.0.234-238,192.168.0.245
  4. 按键盘上的ESC键,左下角的– INSERT —字样消失
  5. SHIFT键的同时按一下;键,光标跳转到左下角的:号后面,输入 wq 回车

    4.2. 添加 DNS 解析

  6. 在终端输入
    sudo vi /etc/ppp/pptpd-options
    
    找到带有ms-dns的两行,并修改 dns 为下面谷歌开放的,没有的可以在最后面加上下面两行 ms-dns 8.8.4.4 ms-dns 8.8.8.8
  7. 保存并退出 vim(命令操作同上4-5)步

    4.3. 添加 VPN 用户

    在终端输入
    sudo vim /etc/ppp/chap-secrets
    

    坑1,一定要注意这里的格式 与字段要一一对应

client server secret IP addresses
TXVPN pptpd ** *

其中,用户名(client)和密码(secret)可自行设置,服务名必须是pptpd,IP表明允许登录的ip列表,如果允许所有ip可以设置为*。 如果需要给朋友也加以账号,可以在这里填写,注意的是 AWS 免费的每个月都有流量限制的,慎用哦

4.4. 开启IPv4转发

  1. 在终端输入
    sudo vim /etc/sysctl.conf
    
  2. 找到
    #net.ipv4.ip_forward = 1
    
    并将注释符号#去掉
  3. 退出 vim 编辑器

4.4. 创建NAT规则

  1. 在终端输入
    sudo vim /etc/rc.local
    
  2. 在 exit 0 这一行的上面添加一行
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  # 将所有目标IP包转向eth0接口
    
  3. 退出 vim 编辑器

pptpd默认监听1723端口,所以需要开启相关端口

sudo iptables -I INPUT -p tcp --dport 1723 -j ACCEPT

是--dport哦

4.5. 更新配置

在终端输入

sysctl -p

4.6. 重启 pptpd 服务

在终端输入并回车

sudo /etc/init.d/pptpd restart

会出现 ok restarting pptpd:pptpd.servoce 在终端输入并回车

sudo netstat -ntpl

如果出现

tcp        0      0 0.0.0.0:1723            0.0.0.0:*               LISTEN      11779/pptpd

说明访问正常

连接 VPN

在mac 和 iphone 上现在都已经取消了 pptpd 服务,但是可以通过第三方来连接,这里推荐一个软件 shimo这个软件有破解版的,附赠下载地址: shimo 破解版下载地址 打开 shimo 选择 account 添加新账户,选中PPTP/L2TP 协议-> create

出现远程连接的弹框

  • 其中RemoteHost填写的是你之前创建的实例的共有 DNS,一定不能填错了
  • Username:填写你在步骤###4.3配置的 vpnname
  • password:填写你在步骤###4.3配置的 vpnpassword 然后 create 当你看到 说明 VPN 连接成功了 下次只需要打开shimo软件点击连接就 OK 了 到此就大功告成了!

results matching ""

    No results matching ""