花5$/月搭建自己的 VPN Server

好风 发表于 2016-11-11T08:35:51.741227Z
引用地址:https://plus.ooclab.com/note/article/1291

简介

实际工作中,常常需要用到 VPN,本文以 OpenVPN 为例,学习下 VPS , Docker , OpenVPN 。

参考

步骤

本步骤实际可行

1. 购买 Digital Ocean VPS

DigitalOcean

购买 CentOS 7 / Ubuntu 16.04 x86_64 (2016年11月11日推荐)

2. 安装 Docker

进入系统:

curl -fsSl https://get.docker.com | bash

3. 下载 OpenVPN Image

docker pull kylemanna/openvpn

4. 配置 server

重要 假设你有一个域名 vpn.example.com , 并配置 DNS 指向刚刚买的 VPS 。

初始化

OVPN_DATA="ovpn-data"
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://vpn.example.com
docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki nopass

注意 是一条命令提示输入Common Name (eg: your user, host, or server name) [Easy-RSA CA], 请输入 vpn.example.com

启动 openvpn server :

docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

5. 创建 client 配置

docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

请将上面命令里的 CLIENTNAME 换成有意义的名字

6. 从客户端链接 openvpn 网络

将步骤5中创建的 CLIENTNAME.ovpn 拷贝出来,配置 openvpn 客户端即可。以命令行为例:

openvpn --config CLIENTNAME.ovpn

FAQ

如此搭建的 OpenVPN 实际使用中可能还有个问题:

如果流量出国,请使用 otunnel 将你的 DigitalOcean VPS 上的 1194 端口映射到国内某个服务器上使用。