wppurking / ocserv-docker

用于初始化 ocserv 的 Dockfile 脚本
610 stars 187 forks source link
anyconnect ocserv ocserv-docker

用途

因为安装一个 Open Connect 的步骤实在太麻烦了, 特别对于新手, 所以特意参考了 jpetazzo 的 dockvpn 弄了一个 ocserv 的. 此项目的原因和一点点介绍可见 使用 ocserv-docker 享受自由网络

有啥问题可以直接 @wyatt_pan

简单部署

安装好 Docker 1.0+ 并且正常启动 Docker 后:

listening (TCP) on 0.0.0.0:443...
listening (TCP) on [::]:443...
listening (UDP) on 0.0.0.0:443...
listening (UDP) on [::]:443...

构建部署

构建自己本地的 images, 计算自己的 ssl key (自签名). 可以避免 N 多人使用一个证书的问题.

使用

自定义证书, 密钥

因为是构建一个独立的 box 进行分发, 方便快速部署一个 ocserv, 所以将证书, 密钥, 用户都集成在里面了, 此刻方便使用. 如果对于有担心的, 可以 docker run -t -i wppurking/ocserv bash 进入到 box 中使用 certtool 重新进行处理, 具体操作步骤参考 [原创]linode vps debian7.5安装配置ocserv(OpenConnect server)

证书是在 Docker Build 的过程中自动生成的, 其生成的目的地为 /opt/certs 成功更换 certs 的例子

TODO: 自签名客户端证书登陆

用户名

为了使新手能够最快的使用上 AnyConnect (也方便我自己同一设备能方便的链接多个不同地域的 VPS) 我预先设置了两个初始化的账号密码, 但同时将用于提供账号密码的 ocserv/ocpasswd 文件放在 Box 外面, 运行 Container 时使用 Volume 挂在进去, 这样方便熟悉 Docker 的用户能够方便的 使用 ocpasswd 命令修改或者重新生成自己的用户密码.

提供一个非常简单的更换密码操作, 复制命令就好了(建立在按照上面的操作基础上哈):

新添加用户

$> docker exec -it $(docker ps -a | grep vpn_run | awk '{print $1}') ocpasswd yourname
$> Enter password:
$> Re-enter password:

这个的原理是借用 docker 运行中的 container , 在其里面运行 ocpasswd 改变 Volumn 进去的 ./ocserv/ocpasswd 文件内容, 所以当你运行完这行命令, 本机(非 container 中)的 ./ocserv/ocpasswd 的文件内容会真实发生变化

清理掉预设的两个用户名

直接打开 ./ocserv/ocpasswd 删掉 wyatt/holly 开头的两行就好了.

信息

Refs

问题

大家最近连接上 ocserv 就断开, 我猜测因为有比较多的人使用同一个 Docker Image 使得太多人使用同一个证书, 然后我做了处理,

至少我的几台服务器已经正常, 不会断开了. 请大家 docker rmi wppurking/ocserv 然后再执行运行的命令下载最新的 image, 如果有条件自己 build 以下或者使用自己的证书即可.

关于限速, 我想应该是网络的干扰. 我部署的服务器 ( 1.5 MB/s 大概 12 Mbps) 如下:

AnyConnect

如果你网络好的话, 那么可以看到如下的情况 ( 7.1MB/s 的峰值, 56.8 Mbps) :

AnyConnect Speed