Docker构建OpenVpn服务

全屏阅读
  • 基本信息

在生产环境中,有一些服务是不能对外提供访问权限的,例如Hadoop、Hbase等集群页面,当然可以使用Nginx转发并且配置仅公司网络可以访问,这个也是可以,但是页面一多或者需要跳转就很麻烦,并且还有在家办公就访问不了了,所以在对于这种需求,建议采用VPN方式访问。

一、Docker构建OpenVpn服务

部署OpenVpn服务的方式有很多,可以采用编译安装、二进制安装,也可以使用Docker安装,本次将基于Docker部署OpenVpn,具体操作步骤如下:

#创建OpenVpn数据持久化目录
mkdir /data/openvpn -p
#生成OpenVpn配置文件,走udp协议,其中IP为公网IP,生成的配置文件可以修改端口等参数
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:latest ovpn_genconfig -u udp://115.159.91.148
#生成密钥文件
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:latest ovpn_initpki
输入私钥密码(输入时是看不见的):
Enter PEM pass phrase:123456
再输入一遍
Verifying - Enter PEM pass phrase:123456
输入一个CA名称(我这里直接回车)
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
输入刚才设置的私钥密码(输入完成后会再让输入一次)
Enter pass phrase for /etc/openvpn/pki/private/ca.key:123456
#生成客户端证书,例如:likun
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:latest easyrsa build-client-full likun nopass
#导出客户端配置
mkdir -p /data/openvpn/conf
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:latest ovpn_getclient likun > /data/openvpn/conf/likun.ovpn
#启动OpenVpn服务程序
docker run --name openvpn -v /data/openvpn:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn:latest
#查看OpenVpn服务程序是否启动正常
docker ps |grep openvpn

将生成的客户端配置导入OpenVpn即可。至此,Docker构建OpenVpn服务程序完成!

二、OpenVpn全局代理问题

按照上述操作部署,并且使用OpenVpn客户端连接之后发现是全局代理,也就是出现如下图所示:

为了防止全局代理,可修改客户端配置,修改如下:

# 在remote ip port 这行后面加入
route 192.168.255.0 255.255.255.0

# 文件末尾注释掉,防止所有网络都走VPN服务器, 如果想全部流量通过VPN则添加这一行。
# redirect-gateway def1
# 添加下面一行,不从服务器拉取路由表
route-nopull

客户端配置修改完成,重新导入OpenVpn客户端之后,即可实现局部代理。

顶一下
(0)
0%
订阅 回复
踩一下
(1)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!