在外面连接 wifi 的时候,我总是担心我的连接是不是安全的,会不会别人提供的 wifi 是被监听或者是钓鱼的 wifi。每当这个时候,我都想关掉 wifi,但是看一下 4G 的标志不免又蛋疼了一波,然后就不玩手机了——世界真美好。其实解决方案一直都知道,那就是连接别人 wifi 的时候连接一下 VPN,这样可以加密你的流量,本来 VPN 出现的初衷就是为了在外办公加密连接数据用的,但是搭建自己的 VPN 是很繁琐的,所以,Docker 的出现极大地简化了这个过程,本文将以个人的体验介绍一下使用 Docker 快速搭建 VPN 服务器。
声明和提醒
声明:本文的目的是为了在外安全使用 Wifi,请勿用于其他用途,本文仅作科普与个人经验记录,如读者使用其他用途,本人不承担各种责任。
这里再科普一条,除了 vpn,大家常听到的名词还有 ss,其实 ss 并不能保密你的数据,只能帮助你跨网络,所以当你在外面使用 wifi 的时候,连接 ss 也并不能帮助你加密网络流量,请注意!!!
使用 docker 搭建 VPN 服务器
在 docker hub 中,有一个叫做 “ipsec-vpn-server” 的 image, 使用这个 Docker 镜像可以让我们快速搭建 IPsec VPN 服务器,这个 Image 支持 IPsec/L2TP
和 IPsec/XAuth ("Cisco IPsec")
协议(Mac 系统上默认没有 PPTP)。
下面就从零开始介绍如何在 Ubuntu 14.04 上面安装这个镜像
安装 Docker
直接就是照着下面的命令一顿狂敲:
[root@liqiang.io]# echo deb http://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.lis
[root@liqiang.io]# apt-key adv --keyserver pgp.mit.edu --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
[root@liqiang.io]# sudo apt-get update
[root@liqiang.io]# apt-get -y upgrade
[root@liqiang.io]# apt-get install -y lxc-docker-1.3.3
[root@liqiang.io]# apt-get upgrade lxc-docker
完成之后 docker 就在你的机器上安装上了。
下载
预构建的可信任镜像可在 Docker Hub registry 下载:
[root@liqiang.io]# docker pull hwdsl2/ipsec-vpn-server
或者,你也可以自己从 GitHub 编译源代码。
启动镜像开启 VPN 服务器
运行 IPsec VPN 服务器
(重要) 首先你需要在 Docker 服务器上加载 IPsec NETKEY
内核模块:
[root@liqiang.io]# sudo modprobe af_key
使用以下命令创建并运行一个新的 Docker 容器:
[root@liqiang.io]# docker run \
--name ipsec-vpn-server \
-p 500:500/udp \
-p 4500:4500/udp \
-v /lib/modules:/lib/modules:ro \
-d --privileged \
--restart=always \
hwdsl2/ipsec-vpn-server
获取 VPN 登录信息
要获取 VPN 的登录信息,可以查看正在运行的 Docker 容器的日志:
[root@liqiang.io]# docker logs ipsec-vpn-server
在命令输出中查找这些行:
Connect to your new VPN with these details:
Server IP: <VPN Server IP>
IPsec PSK: <IPsec pre-shared key>
Username: <VPN Username>
Password: <VPN Password>
查看服务器状态
如需查看你的 IPsec VPN 服务器状态,可以在容器中运行 ipsec status
命令:
[root@liqiang.io]# docker exec -it ipsec-vpn-server ipsec status
配置客户端
这一步可以忽略,如果你知道如何连接 VPN 客户端的话,如果不知道,那么你可以参照下面的这些教程配置你的计算机或其它设备使用 VPN 。请参见:
如果在连接过程中遇到错误,请参见 故障排除。
Reference
Image 作者授权协议
版权所有 (C) 2016 Lin Song 基于 Thomas Sarlandie 的工作 (Copyright 2012) (版权所有 2012)
这个项目是以 知识共享署名-相同方式共享3.0 许可协议授权必须署名: 请包括我的名字在任何衍生产品,并且让我知道你是如何改善它的!